¿Campo buscar en Formulario de Access?

Tengo un formulario que actúa sobre una tabla de Access. ¿Cómo puedo añadir un cuadro donde al poner el número de teléfono me muestre el registro al que corresponde?

1 respuesta

Respuesta
2

Sergi: Añade el Cuadro de texto que vamos a llamar TxtBuscaPorTel

En el evento After Update (Después de Actualizar), programa algo así:

Me.RecordsetClone.FindFirst "[Telefono] = '" & Me.TxtBuscaPorTel & "'"
If Not Me.RecordsetClone.EOF Then
        Me.Bookmark = Me.RecordsetClone.Bookmark
End If

Si tu campo de Teléfono se llama de otra manera, lo cambias. Lo he escrito sobre la marcha, por lo que si tienes algún inconveniente, me comentas. Saludos >> Jacinto

Jacinto; Tengo un nivel bajito de estos temas pero voy a intentar seguirte...

Estoy viendo donde pone evento "después de actualizar" sobre el cuadro de texto pero no veo donde puedo meterle el código que me indicas...

Me muero de ganas de verlo funcionar...

Sergi: Con el Formulario en vista de diseño, señala el Cuadro de Texta que hemos llamado y que tu le has de poner el Nombre TxtBuscaPorTel.

En las Propiedades, señala la pestaña Eventos, y en tercera posición verás >> Después de Actualizar.

Marcando ahí verás a la derecha un pequeño botón con puntos.

Haces click y se te desplega un a ventana emergente con tras opciones. Señala Generador de código, y te saldrá de forma automática 2 lineas con:

Private Sub TxtBuscaPorTel_AfterUpdate()

End Sub

Entre esas dos líneas pegas el código que te he envíado. Ya con el Formulario en vista de Idem, rellena el cuadro de texto con un teléfono, y cuando termines le pulsas al Tabulador. Saludos >> Jacinto

Hola de nuevo Jacinto

No me funciona. No hace nada

Al cuadro de texto le llamo TxtBuscaPorTel pero me dice que le llama Etiqueta77 y en el cuadro donde le introduces el dato, aparece en la Vista diseño "Independiente" y en las propiedades Texto76

Este es el codigo del evento afterupdate que tengo:

Option Compare Database
Private Sub TxtBuscaPorTel_AfterUpdate()
Me.RecordsetClone.FindFirst "[Movil] = '" & Me.TxtBuscaPorTel & "'"
If Not Me.RecordsetClone.EOF Then
        Me.Bookmark = Me.RecordsetClone.Bookmark
End If
End Sub
Private Sub Texto76_AfterUpdate()
End Sub

Ya he encontrado como cambiar el nombre. Estaba en la pestaña "Otras" pero ahora me da un error : No coinciden los tipos de datos en la expresión de criterios

Seguí: Vamos a ir paso a paso.

1 .- Tu campo Móvil es un Número o es Texto

2.- ¿Estás en un Formulario Continuo? Si es así hemos de elegir otro camino.

Lo que si has de cambiar es el "Nombre" de Texto 76 `por el que te comento

A partir de ésto seguimos >> Mis saludos >> Jacinto

El campo Móvil es número

¿Formulario continuo? Si te refieres a que si vas pulsando enter te va saltando de registro pues SI.

De hecho es el Formulario que te crea automáticamente sobre una tabla simple al decirle "Crear" Formulario . Lo del Texto76 ya lo tengo solucionado

Sergi: Partiendo de la base de que ya has cambiado el nombre del cuadro de Texto, vamos a cambiar de método

Private Sub TxtBuscaPorTel_AfterUpdate()
Me.Filter = "[Movil] = " & Me.TxtBuscaPorTel
Me.FilterOn = True
End Sub

Veamos si así te funciona. Mis saludos >> Jacinto

Vale Si funciona. Aunque me acabo de dar cuenta que es lo mismo que usar el cuadro buscar que aparece abajo del formulario al lado de "sin filtrar"... aix...

Vale. Todo esto viene porque estoy registrando cliente y me gustaría que me detectara si el cliente ya existe. La clave primaria la tengo con el id autonumérico. Me gustaría que al poner el móvil o el fijo, me avisara que ya existe si es el caso y si no, que me deje continuar llenando campos...

Seguí: Misugerencia es que sobre éste último tema que mencionas, generes otra pregunta y así te puedes beneficiar de más de una respuesta. Este texto ya es muy largo y es poco probable de que sea leído. Laredacción de la pregunta, la haces bastante clara. ... Al poner el móvil,,,,

Si vas dea acuerdo con la solución a ésta que nos ocupa, la valoras. Un saludo >> Jacinto

Disculpa Sergi: se me han ido los dedos arriba con lo de Seguí. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas