Ms access 2003 buscando 2 campos en un registro

Necesito como hacer una búsqueda de dos campos en un registro solo puedo encontrar un registro

Pongo el código: quiero buscar el usuario, y escuela en este código pero solo se como buscar un campo. Agradecería su comentario y apoyo. Esto es en MS Access 2003.

Set db = DBEngine.Workspaces(0).Databases(0)
Set TB = db.OpenRecordset("info")
Dim stDocName As String
Dim stLinkCriteria, Nivel As String

'Comienza
TB.MoveFirst
With TB
.Index = "user"
esvar = .Bookmark
.Seek "=", [xUser]
If .NoMatch Then
MsgBox ("Sorry This User does not exist")
Cancel = True
Else
xschool = !School
xLevel = !Level
'Me.Refresh
End If
End With

End Sub

1 Respuesta

Respuesta

Me parece un código sumamente complicado para buscar un registro.

Imaginemos una tabla/consulta que devuelve, entre otros campos, usuario y escuela. Esa tabla/consulta se llamará "datos"

Imaginemos también que esos dos campos son de tipo texto.

Imaginemos que tenemos 2 cuadros de texto dónde preguntar esos datos

Si deseamos solo recuperar todos los datos DEL REGISTRO, yo abriría un recordset ya filtrado:

Dim rst As DAO.Recordset

Set rst = CurrenDb.OpenRecordset("SELECT * FROM datos WHERE Usuario ='" & Me!txtUsuario & "' AND Escuela = '" & Me!txtEscuela & "'")

If rst.EOF Then

  MsgBox "Combinación no existe.", vbCritical

 Else

  MsgBox "Combinación encontrada!", vbInformation

End If

rst.Close

Set rst = Nothing

Si deseamos abrir todos los registros y posicionarnos en el que cumple con el criterio:

Dim rst As DAO.Recordset

Dim strCriteria As String

Set rst = CurrenDb.OpenRecordset("SELECT * FROM datos")

strCriteria = "Usuario ='" & Me!txtUsuario & "' AND Escuela = '" & Me!txtEscuela & "'"

rst.FindFirst strCriteria

If rst.NoMatch Then

  MsgBox "Combinación no existe.", vbCritical

 Else

  MsgBox "Combinación encontrada!", vbInformation

End If

rst.Close

Set rst = Nothing

Un saludo

Xavi

www-mvp-access.com

www.aesoft-databases.com

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas