Access - Busqueda con Recordset con resultados multiples

 
Vista:
sin imagen de perfil

Busqueda con Recordset con resultados multiples

Publicado por Gabriel (7 intervenciones) el 01/11/2021 13:14:02
Buenas... estoy con un pequeño inconveniente... resulta que hago busqueda con recordset y hasta ahora venia todo bien hasta que me tope con algunos valores repetidos y pense en que me compruebe si son mas de uno que me abra un cuadro de lista en otro formulario para elegir el que quiero ver perosolo me muestra uno de los registros y no me abre el cuadro de lista.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Sub Busca_BASE()
Dim RS As DAO.Recordset, sql As String, db As DAO.Database
Set RS = Recordset
Set db = CurrentDb()
 
sql = "select * from BASE where REF = " & Me.TXTSearching & " or N_CAUSA LIKE '" & Me.TXTSearching & "'"
Set RS = db.OpenRecordset(sql, dbOpenForwardOnly)
 
If RS.RecordCount = 1 Then
With RS
    Me.REF01 = !REF
    Me.JF_INT02 = !JF_INT
    Me.AREA02 = !AREA
    Me.N_CAUSA02 = !N_CAUSA
    Me.F_IN02 = !F_IN
    Me.ESTADO02 = !ESTADO
    Me.MATERIAL02 = !MATERIAL
    Me.CARATULA02 = !CARATULA
    Me.F_OUT01 = !F_OUT
    Me.TXT_OUT01 = !TXT_OUT
    Me.DEP_INT01 = !DEP_INT
    Me.INFO02 = !INFO
    End With
 
    ElseIf RS.RecordCount > 1 Then
 
DoCmd.OpenForm "Rep_Causa", , , , , acDialog
 
    Else
 
MsgBox ("Numero NO se encuentra en la Base. " & Chr(13) & "Seleccione la casilla Informáticos e intente nuevamente.")
 
End If
 
End Sub

gracias
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

Busqueda con Recordset con resultados multiples

Publicado por Anonimo (2573 intervenciones) el 01/11/2021 21:29:37
Las opciones son:

A.- No hay registros

B.- Si los hay:
B1.- Hay un registro
B2.- Hay mas de un registro

Un DCount es adecuado para obtener ese valor y en función de el actuar

.- ¿No hay registros? ... el mensaje y a otra alternativa (abortando el procedimiento)

Si hay registros para conocer la cantidad con precisión, lo adecuado es enviarlo al final y de nuevo al inicio (agitarlo), tras ello la propiedad RecordCount será totalmente fiel y se puede aplicar la alternativa correcta.

Nota: si no hay registros no se puede 'agitar el recordset', se producirá un error en tiempo de ejecución (los pasos siempre en el orden correcto).
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
sin imagen de perfil

Busqueda con Recordset con resultados multiples

Publicado por Gabriel (7 intervenciones) el 03/11/2021 19:20:23
ok... gracias... ya logre que funcione...

dejo aca por si alguien lo necesita
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Busca_BASE()
Dim RS As DAO.Recordset, sql As String, db As DAO.Database
Set RS = Recordset
Set db = CurrentDb()
 
sql = "select * from BASE where REF = " & Me.TXTSearching & " or N_CAUSA LIKE '" & Me.TXTSearching & "'"
Set RS = db.OpenRecordset(sql, dbOpenDynaset)
 
    If RS.RecordCount > 0 Then
 
RS.MoveLast
RS.MoveFirst
 
DoCmd.OpenForm "Rep_Causa", , , , , acDialog
 
    Else
RS.Close: Set RS = Nothing
 
MsgBox ("Numero NO se encuentra.")
 
End If
 
End Sub

al abrir el otro fortmulario me muesta los registros encontrados... sea 1 o mas en un cuadro de lista... esto tambien con un recordset pero al cargar.

nuevamente gracias por la mano.
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