Access - Duda sobre Recordset

 
Vista:

Duda sobre Recordset

Publicado por Jesús (3 intervenciones) el 12/06/2007 09:37:43
Hola a todos:

Tengo una duda sobre el funcionamiento de un Recordset

Cuando no tengo la instrucción Option Explicit y defino un recordset en el que alguno de los campos tienen “alias” (en el ejemplo “U” y “N”), puedo utilizar estos alias para referirme a los campos.

Option Compare Database

Private Sub Comando0_Click()
Set rs = CurrentDb.OpenRecordset("SELECT Bancos.NUMBAN AS U, " _
& "Bancos.NOMBAN AS N " _
& "FROM Bancos;")
Do While Not rs.EOF
MsgBox rs.U & "/" & rs.N
rs.MoveNext
Loop
End Sub

Sin embargo si utilizo la instrucción Option Explicit, además de tener que definir la variable como recordset, no me permite referirme a los campos por el alias y hay que utilizar la propiedad fields indicando el número de orden del campo, lo que me parece más confuso a la hora de programar.

Option Compare Database
Option Explicit
Dim rs As Recordset

Private Sub Comando0_Click()
Set rs = CurrentDb.OpenRecordset("SELECT Bancos.NUMBAN AS U, " _
& "Bancos.NOMBAN AS N " _
& "FROM Bancos;")
Do While Not rs.EOF
MsgBox rs.Fields(0) & "/" & rs.Fields(1)
rs.MoveNext
Loop
End Sub

¿Alguno sabe porque es esto?
¿Hay algo que no sepa y este haciendo mal?

Agradeceré vuestros comentarios
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda sobre Recordset

Publicado por Enrique (1299 intervenciones) el 12/06/2007 19:10:45
Hola Jesús:
Option Explicit se utiliza para obligar la declaración de variables, por eso cuando la pones, se supone que estás obligado a declarar esos Alias, ejemplo:

Dim rs As DAO.Recordset
Dim U, N '<---- Así declaras los dos como Variant
o
Dim U As Integer, N As String

Digo "se supone" porque yo esto de los Alias no lo he usado nunca en un Recordset, aunque me pregunto ¿Que necesidad hay de usar Alias, si puedes referirte directamente a los nombre de los campos en la Tabla/Consulta Bancos???

Set rs = CurrentDb.OpenRecordset("Select NUMBAN, NOMBAN From Bancos")
Do While Not rs.EOF
MsgBox rs!NUMBAN & "/" & rs!NOMBAN
..............
..............

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar