Como buscar varios registros con un dato en común access

Tengo un cuadro de texto donde pongo un numero de oficio

Tengo 5 cuadros de texto que muestran los registros relacionados con ese numero de oficio

sCodigo = Me.No1
Me.PLAZA1 = DLookup("CLAVE", "LIBRETA", "NOOFICIO=" & sCodigo & "")

Me.PLAZA2 = DLookup("CLAVE", "LIBRETA", "NOOFICIO=" & sCodigo & "")

Me.PLAZA3 = DLookup("CLAVE", "LIBRETA", "NOOFICIO=" & sCodigo & "")

Me.PLAZA4 = DLookup("CLAVE", "LIBRETA", "NOOFICIO=" & sCodigo & "")

Me.PLAZA5 = DLookup("CLAVE", "LIBRETA", "NOOFICIO=" & sCodigo & "")

Pero no se como hacer para que me muestre esos 5 registros, así como esta mi consulta solo muestra el mismo registro en los cuadros de texto

2 Respuestas

Respuesta
1

La función DLookup() siempre va a devolver la primera coincidencia que encuentre, por eso siempre te muestra el mismo registro.

Una solución (tu verás si es posible en tu BD) es añadir un segundo criterio para limitar la búsqueda y que en cada caso te devuelva el registro correcto.

Otra forma sería hacerlo por medio de un recordset, algo así:

Dim rst As DAO.Recordset
Dim i As Byte
Set rst=CurrentDb.Openrecordset("SELECT CLAVE FROM LIBRETA WHERE NOOFICIO=" & Me.No1 & "")
If rst.Recordcount=0 Then Goto Salida
rst.MoveLast: rst.MoveFirst
If rst.RecordCount<=5 Then
   i=1
   Do Until rst.EOF
      Me.Controls("PLAZA" & i)=rst("PLAZA")
      rst.MoveNext
      i=i+1
   Loop
Else
   For i=1 To 5
      Me.Controls("PLAZA" & i)=rst("PLAZA")
      rst.MoveNext
   Next i
End If
Salida:
   rst.close
   Set rst=Nothing

Un saludo.


Me da error 3665 no se encontró el elemento de esta colección

en esta parte 

Me.Controls("PLAZA" & i)=rst("PLAZA")

Si, me lié con los nombres. Cámbialo por rst("CLAVE")

Si me funciono muchas gracias,

otra pregunta cada CLAVE tiene un status, como agrego ese estatus al momento de mostrar la clave ??

clave    status

10a            1

11a            2

Para eso puedes usar DLookup()

Respuesta
1

Sile dices que te busque lo mismo para cada cuadro de Texto eso es lo que hace.

En todos buscas la "CLAVE". Tu mejor que nadie sabes el Nombre de los otros campos que quieres mostrar en PLAZA2... Solo has de sustituir CLAVE por en Nombre de campo adecuado. Un saludo >> Jacinto

es que en un solo oficio hay 5 claves 

como hago para pedir las 5??

Mis disculpas, porque no lo había entendido tal como citas.

Siendo así, Sveinbjorn (mis saludos maestro), ya te da una respuesta y te explica la anomalía.

Además con buen criterio, está previendo la eventualidad de que haya menos de 5 Cedulas.

Mis saludos a los dos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas