Codigo buscar
Publicado por blas (143 intervenciones) el 08/09/2012 13:51:44
Hola a todos amigos.
Hace tiempo me pasaron el código que muestro mas abajo (ahora retocado) para utilizarlo como buscador en un pequeño programilla. El funcionamiento es muy sencillo, en un combox independiente se introduce el número de DNI de un cliente y busca datos en una tabla, mas abajo en una caja de texto me enseña el número de factura, y mas abajo aún en otra caja de texto mas grande me enseña varios datos mas de las misma tabla.
Pues funciona bien hasta que se encuentra con que hay 2 registros con el mismo DNI. Aunque el combo muestra los 2 DNI iguales al desplegarlo, en las cajas de datos solo me muestra los datos del primer registro. Alguien me puede ayudar. He probado muchas cosas, desde refrescar el combox, las cajas de texto con Me.Refresh, Me.Requery etc. a cambiar algo en el código, pero nada de nada. Alguien me puede ayudar. Muchas gracias.
El combo independiente donde ingreso los datos se llama: DNI
En el evento: Despues de actualizar esta el código que muestro completo mas abajo y en el origen de la fila esta consulta SQL
SELECT GENERAL.DNI, GENERAL.Factura
FROM [GENERAL]
ORDER BY GENERAL.DNI;
El campo donde muestra el numero de factura se llama: Factura
El campo donde muestra mas datos se llama: Post
La tabla se llama: GENERAL
Un botón que limpia las cajas de texto y combo
Hace tiempo me pasaron el código que muestro mas abajo (ahora retocado) para utilizarlo como buscador en un pequeño programilla. El funcionamiento es muy sencillo, en un combox independiente se introduce el número de DNI de un cliente y busca datos en una tabla, mas abajo en una caja de texto me enseña el número de factura, y mas abajo aún en otra caja de texto mas grande me enseña varios datos mas de las misma tabla.
Pues funciona bien hasta que se encuentra con que hay 2 registros con el mismo DNI. Aunque el combo muestra los 2 DNI iguales al desplegarlo, en las cajas de datos solo me muestra los datos del primer registro. Alguien me puede ayudar. He probado muchas cosas, desde refrescar el combox, las cajas de texto con Me.Refresh, Me.Requery etc. a cambiar algo en el código, pero nada de nada. Alguien me puede ayudar. Muchas gracias.
El combo independiente donde ingreso los datos se llama: DNI
En el evento: Despues de actualizar esta el código que muestro completo mas abajo y en el origen de la fila esta consulta SQL
SELECT GENERAL.DNI, GENERAL.Factura
FROM [GENERAL]
ORDER BY GENERAL.DNI;
El campo donde muestra el numero de factura se llama: Factura
El campo donde muestra mas datos se llama: Post
La tabla se llama: GENERAL
Un botón que limpia las cajas de texto y combo
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
36
37
38
39
40
Private Sub DNI_AfterUpdate()
On Error GoTo Err_Procedimiento
Dim strDNI As String
Dim strTabla As String
Dim strFiltro As Strin
'¿Hay datos válidos ingresados?
strDNI = Trim(Nz(Me.DNI, ""))
If strDNI = "" Then
'limpio los datos
Me.Factura = Null
Me.Post = Null
Else
'defino los datos para realizar la búsqueda de datos
strTabla = "GENERAL"
strFiltro = "DNI = '" & strDNI & "'"
'obtengo y asigno los datos que me interesan
'Me.Factura = Nz(DLookup("Factura", strTabla, strFiltro), "")
Me.Post = "Nº Acta: " & Nz(DLookup("DNI", strTabla, strFiltro), "") & vbCrLf & _
"Nom Cliente: " & Nz(DLookup("CLIENTENOMBRE", strTabla, strFiltro), "") & vbCrLf & _
"Apelli Cliente: " & Nz(DLookup("CLIENTEAPELLIDOS", strTabla, strFiltro), "") & rLf& _
"Direccion : " & Nz(DLookup("NOMBRECALLE", strTabla, strFiltro), "") & vbCrLf & _
"Agente 1: " & Nz(DLookup("NUMCALLE", strTabla, strFiltro), "")
End If
Exit_Procedimiento:
Exit Sub
Err_Procedimiento:
MsgBox Err.Description, vbCritical, "Error " & Err.Number
Resume Exit_Procedimiento
End Sub
Valora esta pregunta


0