Un botón de búsqueda que funcione bien por favor

Pues eso como indico en el titulo, necesitaría un botón que al pinchar en el busque de una base de datos solo el registro que se haya colocado en un cuadro de texto. Me explico algo más extendido:
Tengo una base de datos, en la cual hay una tabla llamada TOTAL JUGADORES DEL CLUB. Asimismo tengo un formulario creado con el mismo nombre, ya que se accede a el a través de una página principal, con un botón que le lleva hasta ese formulario. Bien hasta ahí todo correcto, pero ahora quiero poner un cuadro de texto, en el cual al colocar el NÚMERO DE DNI/NIE de un jugador, y al pulsar el botón, me busque solamente los datos de ese jugador, para así yo verlos por pantalla o imprimirlos.
Decirles que he probadop con estos códigos que encuentro en la www, pero no me funcionan, estos son:
Este dado aquí en todoexpertos:
bus="DNI=" & me.buscaDNI:Me.form.Recordset.FindFirst bus
que al no funcionar el experto me indico que pusiera esto:
bus = "NÚMERO DE DNI/NIE='" & Me.BuscaDNI &"'": Me.Form.Recordset.FindFirst bus
pero tampoco funciono,
y este otro tambien:
Private Sub Bus_Click()
Dim BUSCAR As String
Dim CriterioBusqueda As String
                        '*********************************************
                        'Codigo Simple Cortesia de Jefferson Jimenez *
                        '*********************************************
If IsNull(Nif) Then
MsgBox "No ha ingresado nada" & vbCrLf & _
"vuelva a intentarlo", vbCritical, "Campo Nulo"
Nif.SetFocus
Exit Sub
End If
BUSCAR = Me.Nif.Value
CriterioBusqueda = "[Nif]=" & "'" & Nif & "'"
    'Comprobamos si existe el Nif del Usuario
    If DCount("Nif", "Usuarios", CriterioBusqueda) > 0 Then
        'Abrimos una caja de mensajes indicamos que lo encontramos
        MsgBox "Vamos a abrir el Form Usuarios Orienta" & vbCrLf & _
        "cuyo Nif pertenece a :" & vbCrLf & _
         Nif, vbExclamation, "Nif Encontrado"
        'Y abrimos
            DoCmd.OpenForm "Usuarios Orienta", acNormal, "", "", acEdit, acNormal
            DoCmd.GoToControl "Nif" 'Rem cuadro de texto donde introducimos el Nif
            DoCmd.FindRecord Forms![Abrir por nif]!Nif, acEntire, False, , False, acCurrent, True
            DoCmd.Close acForm, "Abrir por nif"
    Else
    'De no existir lanzamos un Mensaje
    MsgBox "El Usuario solicitado :  " & Nif & vbCrLf & _
    "no existe, por favor refine la búsqueda", vbCritical, "No Encontrado"
    Nif.SetFocus
End If
End Sub
Pero ninguno me sirve.
¿Podría algún experto ayudarme para que esto funcione correctamente?
NOTA: En las tablas no hay ninguna clave principal pues creo que no es necesaria, ya que se puede dar el caso de que algún número de DNI no le conozcamos, y ese campo tendría que estar en blanco o por lo menos permitírselo. De VB entiendo lo justo y poco más.

1 Respuesta

Respuesta
1
Me gustaría saber que otros controles, tienes en el formulario. Para así poder brindarte mejor información, con la cuestión del id, creo que es importante tenerlo, podrías dejar un id autonumérico como yu campo llave para llevar un mejor control, o para hacer relaciones con otras tablas.
Le envío una imagen del formulario TOTAL DE JUGADORES DEL CLUB, por si le vale para algo:
http://webs.ono.com/martgall4/imagen.jpg
Si necesitase algo más solo ha de solicitarlo, gracias por su atención y si estuviera repetido el mensaje perdón.
            Atentamente:
                                       Óscar
Parece que el link de la imagen del form esta roto.
Le envío este otro enlace, desde la página del Club:
http://www.donboscoesguay.com.es/imagen.jpg
Unas preguntas antes de intentar solucionar tu problema
¿En la parte del detalle del formulario lo que tienes allí es un subform o me equivoco?
Tienes algún origen de registro en subform o el form.
No le entiendo lo que me quiere decir, si es tan amable me lo explica y se lo comunico. Gracias.
                                                         Óscar
Lo que quiero sabes es si la propiedad origen del registro del formulario tienes asignado algún valor(consulta o tabla) de ser así el código es más simple.
Si no probemos con este:
dim rs as recordset
dim qdf as string
qdf="SELECT * FROM TOTAL JUGADORES DEL CLUBWhere DNI='"& txtDNI &"'" 
set rs=currentdb.openrecordset(qdf,0)
if rs.recordcount>0 then
<span style="white-space: pre;"> </span>me.nombre=rs!nombre
<span style="white-space: pre;"> </span>me.primerapellido=rs!primerapellido
<span style="white-space: pre;"> </span>'y asi con todos los campos<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>....
<span style="white-space: pre;"> </span>'importante tomar en cuenta los que llevan me.algo son los controles del formulario
<span style="white-space: pre;"> </span>'que deseas muestren el valor del campo que se lo das con rs!campo a asignar
end if
set rs=nothing
El origen del o de los registros, esta enlazado por lo que veo en las propiedades del formulario, con la tabla TOTAL JUGADORES DEL CLUB, que esta creada a tal efecto.
De todas formas le hago otra pregunta pues a lo mejor así me entiende mejor. Yo lo que quiero es hacer lo mismo que hace el comando buscar y reemplazar, que puede ver en la foto en la parte derecha, pero que solo busque por un número de DNI. Es decir le pongo una etiqueta o cuadro de texto donde se pondría el DNI, y un botón con el código necesario, que al pulsar solo busque el DNI que introduje en el cuadrode texto.
No se si ahora me he explicado bien, de todas formas voy a ver que sale con el código que me ha aportado. Gracias.
                                               Óscar
Ok
Ya ksi me tengo que ir así que si no funciona con este código sera hasta la próxima como el martes aproximadamente
Me.Filter = "DNI = '" & Me.txtDNI & "'"
Me.FilterOn = True
Donde txtDNI es el nombre del textbox(cuadro de texto) donde ingresaras el valor a buskr
De acuerdo estaré esperándole, como se suele decir aquí como agua en mayo, pues no doy con la solución a este asunto. Gracias.
                                         Óscar
Quería saber si te sirvió el código si no me aviasas para saber en que puedo ayudarte.
Para desilusión mía decirle que no, esto no funciona. He estado dándole vueltas y he llegado a pensar que aver si es que tengo creada hasta mal la estructura, no se o algo similar. He probado con el cuadro combinado, pero cuando pulso ENTER no me presenta ningún registro. Con el código unas veces no hace nada y otras me dice que se esperaba una instrucción. En fin que soy un desastre y no logro dar con ello.
Por eso ahora le vuelvo a preguntar, como sería el código y donde tendría que colocarlo, bien mediante botón y o cuadro de texto, y aunque sea utilizando código VB, para hacer lo mismo que hace la opción del botón buscar y reemplazar, ya que esa en un momento dado me valdría pues si que me presenta los datos de un determinado jugador por su número de dni. Lo único que encontré como fallo, es que si hay varios con el mismo nombre, al ver el formulario te saca todos, pero de eso ya se darán cuenta los entrenadores.
Quedo en espera de:
                                                          Óscar
Ok, hagamos lo siguiente.
Te enviaré un ejemplo para que podas revisarlo, y adaptarlo a tu formulario.
Lo que usted diga pues para eso es más experto que yo, y si cree que con ello me puede ayudar encantado.
Te cuento que ya tengo un ejemplo que puede servirte dame tu correo y te lo envío.
Muy buenas, la dirección de correo es:
[email protected]
Espero impaciente su ayuda, pues yo por más que he puesto todos los códigos que he visto por la red, no hago funcionar esto. Ya pienso que me va a ser imposible.
Atentamente y gracias:
                                    Óscar
Ya la envíe
Bueno como veo que ya no hay más contestaciones, que las presentadas por el experto byleto, al cual le agradezco todo lo que ha echo en ayudarme, aunque no haya conseguido dar con el problema, y solo por el interés mostrado en el tema, se merece un excelente ya que a mi como digo aunque no me haya servido, me ha echo saber algo más de código.
Muchas gracias experto byleto desde la ciudad de Valladolid de parte de Óscar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas