Relacionar un formulario con una consulta

Espero me puedas echar una mano.
Quiero comparar un apellido y fecha de nacimiento introducidas en una tabla mediante formulario, con los campos ídem. En una consulta, y que me salga un mensaje de duplicidad.
Por favor mira si me puedes poner un ejemplo del código puesto que estoy un poco verdito en esto.

1 respuesta

Respuesta
1
Seria algo así: imaginemos que la tabla se llama Clientes los campos serian:
ApeClie :apellido del cliente
FecNac: fecha de nacimiento
Ahora después de ingresar la fecha de nacimiento en un campo del formulario que llamaremos TxtfecNac programaremos en el evento al salir (exit) del control TxtFecNac...
**********************
Private sub TxtFecNac_Exit(Cancel as Integer)
Dim BuscarDupli as Object
if not IsNull(txtFecNac) and Not IsNull(TxtApeClie) then
sql = "select * from Clientes where Apeclie = '" & txtApeClie & "' and FecNac = #" & Format(TxtfecNac,"MM/dd/yyyy") & "#;"
set BuscarDupli = CurrentDb.OpenRecordset(sql)
if BuscarDupli.RecordCount > 0 then
msgbox "Duplicidad de datos"
cancel = true
TxtFecNac = Null
end if
end if
end Sub
********************
La idea es utilizar un objeto tipo recordset, que hará la consulta de buscar "duplicados"... como ves es una consulta sencilla con un where, la fecha se debe formatear como Mes/dia/Año...ya que las consultas utilizan el formato iunternacional y si igualas la consulta a la fecha normal... no te daría los valores esperados...
Si existe el registro la propiedad RecordCount me devolverá mayor a 0 (cero), y es aquí donde preunto y muestro el mensaje...
Att:telemaco
Telemaco tengo unas dudas.
La consulta ejem. "moroso", cuyos campos apellido y fecha nacimiento quiero comparar con los de la tabla "clientes" ¿no figura en el evento?.
¿Exite algún problema que el campo de texto del formulario y el nombre de registro de la tabla se llamen igual ("Apellidos")?
Gracias por tu ayuda.
Telemaco.
Perdona pero me he explicado mal... lo que hace la ignorancia.
No quiero buscar duplicados puesto que existen clientes que pueden repetirse y no son morosos, lo que intento es que los campos Apellidos y FechaNacimiento de la tabla "Clientes", se comparen con los campos llamados también Apellidos y FechaNacimiento de una consulta "morosos" ya creada a partir de "clientes".
Espero que me entiendas ahora.
Gracias.
Te respondo tus dos preguntas:
1. No se necesita porque reeplace la consulta con una propia, osea no necesitas invocarla, ya que la idea es que la hagas desde código y no la que tienes
2.NO HAY PROBLEMA SE PUEDEN LLAMAR IGUAL solo no te confundas cuando estés nombrando el campo y nombrando el control del formulario, ya que como ves tienen sintaxis diferente.
Att:telemaco
Disculpe la demora en contestar... he estado super ocupado..
Listo te entendí... NO HAY PROBLEMA.. el código que te di, te sirve..
**********************
Private sub TxtFecNac_Exit(Cancel as Integer)
Dim BuscarDupli as Object
if not IsNull(txtFecNac) and Not IsNull(TxtApeClie) then
sql = "select * from MiConsulta where Apeclie = '" & txtApeClie & "' and FecNac = #" & Format(TxtfecNac,"MM/dd/yyyy") & "#;"
set BuscarDupli = CurrentDb.OpenRecordset(sql)
if BuscarDupli.RecordCount > 0 then
msgbox "Duplicidad de datos"
cancel = true
TxtFecNac = Null
end if
end if
end Sub
********************
Como te puedes dar cuanta en la consulta sql, cambie el nombre de la tabla, por el nombre Mi consulta, aquí colocaras el nombre de tu consulta, y en where colocaras los campos por los que se filtrara...
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas