El formulario no muestra el resultado

Experto, tengo el siguiente código asociado a un botón de mi formulario:
Dim db As DAO.Database, rs As DAO.Recordset
Dim Buscar As String
DNItc = dnicaso
Buscar = "SELECT DNI, Apellido, Nombre FROM ParaAltaConsulta WHERE DNI ='" & DNItc & "'"
Set db = CurrentDb()
Set rs = db.OpenRecordset(Buscar)
If rs.RecordCount > 0 Then
Me.APELLIDOS = Apellido
Me.NOMBRES = Nombre
Else
MsgBox "No existe esta persona", vbOKOnly + vbCritical, "Aviso"
End If
rs.Close
También tengo en el formulario los controles:
DNICaso donde incorporo el dato buscado y los controles APELLIDOS y NOMBRES, donde deberían aparecerme el resultado de la selección.
Me podrías decir, lo más rápido que puedas, donde me equivoco porque si bien cuando pongo un ejemplo que no esta en la tabla el código funciona, ¿si pongo un caso que si esta no aparecen los nombres ni los apellidos en el formulario?
Espero haber sido clara y muchas gracias

1 Respuesta

Respuesta
1
Sustituye tu rutina por esta otra:
DIM db As Database
DIM rs As Recordset
set db = currentdb
set rs = base.openrecordset ("ParaAltaConsulta",dbopendynaset)
rs.findfirst "dni = '" & me.dnicaso & "'"
if rs.nomatch then
MsgBox "No existe esta persona", vbOKOnly + vbCritical, "Aviso"
else
Me.APELLIDOS = rs!Apellido
Me.NOMBRES = rs!Nombre
end if
Me. Apellidos. Requery
Me. NOMBRES. Requery
'''''''''''''''''''''''''''''''''''''''''''''''
Si se te dificulta entender la rutina anterior escríbeme a mi correo:
[email protected]
Una observación:
rs.findfirst "dni = '" & me.dnicaso & "'" ojo en esta instrucción hay comilla sencilla ('), las identificas? rs.findfirst "dni = comilla sencilla " & " comilla sencilla " es decir la comilla sencilla va entre comillas dobles, similar al WHERE de tu rutina.
ahora que si quieres usar tu rutina creo que te faltó un with:
Dim db As DAO.Database, rs As DAO.Recordset
Dim Buscar As String
DNItc = dnicaso
Buscar = "SELECT DNI, Apellido, Nombre FROM ParaAltaConsulta WHERE DNI ='" & DNItc & "'"
Set db = CurrentDb()
Set rs = db.OpenRecordset(Buscar)
If rs.RecordCount > 0 Then
with rs '''''''''''''''''''''''' te falto este with
Me.APELLIDOS = !Apellido '''''''''''' Apellido debe iniciar con este caracter !
Me.NOMBRES = !Nombre ''''''''''''' Apellido debe iniciar con este caracter !
end with '''''''''''''''''''''''''' te falto este end with
Else
MsgBox "No existe esta persona", vbOKOnly + vbCritical, "Aviso"
End If
Rs. Close
Te explico las variables dentro de with deben inicrar con ! Para indicarle al sistema que las tome del record set, si no le pones ! la toma como variable del formulario o como dim

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas