Como Busco un registro en una tabla.

necesito una instruccion para buscar un registro en una tabla con condicion en este codigo cuento los registros que cumplan con la condicion intx = DCount("*", "[p1]", "[nro_identificacion]= '" & nro & "'")pero quisiera sustituirla por la de busqueda y me indique si la encontro o no  agradeceria ayuda. Este es el codigo:

DoCmd.SetWarnings False
Dim nom As String
Dim nro As String
Dim str As String
nro = nro_identificacion
If nro = Empty Then
   Exit Sub
End If
vacia = DCount("*", "[p1]")
intx = DCount("*", "[p1]", "[nro_identificacion]= '" & nro & "'")
If intx = 0 Then
    'If op = Empty Then
    'Exit Sub
    'End If
   Dim op As String
   op = InputBox("Desea introducirlo s/n?", "NO ENCONTRADO", "")
   If op = "s" Or op = "S" Then
      nom = ""
      Do While nom = ""
         nom = InputBox("Nombre", "Paciente")
      Loop
     str = " DELETE * FROM Tabla1"
     DoCmd.RunSQL str
      Dim sql As String
      sql = "INSERT INTO p1(nro_identificacion,nombre) VALUES ('" & nro & "','" & nom & "')"
      sql2 = "INSERT INTO tabla1 (nro_identificacion,nombre) VALUES ('" & nro & "','" & nom & "')"
      DoCmd.RunSQL sql
      DoCmd.RunSQL sql2
      DoCmd.OpenForm "afp01", , , "nro_identificacion= '" & nro & "'"
   End If
Else
   str = " DELETE * FROM Tabla1"
   DoCmd.RunSQL str
   sql2 = "INSERT INTO tabla1 (nro_identificacion,nombre) VALUES ('" & nro & "','" & nom & "')"
   DoCmd.RunSQL sql2
   'DoCmd.OpenForm "afp01", , , "nro_identificacion= '" & nro & "'"
End If
End Sub

1 respuesta

Respuesta
1

No acabo de ver claro lo que pides, porque el código que tienes, entre otras cosas, ya te hace esa búsqueda: si el DCount devuelve 0 es que no hay coincidencias, y si da culaquier otro valor te los muestra en el formulario que abres.

Si quieres añadirle mensajes, tan solo has de añadir instrucciones Msgbox para informar, por ejemplo:

If intX=0 Then

MsgBox "No se ha encontrado el registro"

'aquí el resto de código

Else

Msgbox "Se ha/n encontrado " & intx & " registro/s coincidente/s"

'Aquí el resto de tu código

Otra opción sería usar recodsets, si la búsqueda la haces en el propio formulario en el que quieres mostrar los registros coincidentes, sería algo así:

Dim rst As DAO.Recordset

Set rst=Me.RecordsetClone

rst.FindFirst "nro_identificacion=" & Me.nro_identificacion   'Supondré que son números y los trato como tales

If rst.NoMatch Then

Msgbox "No se han encontrado coincidencias"

Else

Msgbox "Se ha encontrado una coincidencia"

Me.BookMark=rst.BookMark

End If

set rst=Nothing

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas