Base de datos que muestre los mismos al colocar un código interno

Tengo un problema se me ha pedido realizar una base de datos, en la cual estos son los campos, codinterno, cedula y nombre, el objetivo es que cuando yo coloque el código interno me aparezca de inmediato la cedula y el nombre de la persona que tiene dicho código interno, sino se entenderá que es un registro nuevo, he hecho una tabla con esos campos y un formulario con esa tabla pero cuando repito el código interno de un registro no me muestra nada sino un error al final como hago para que me aparezca la información.
Respuesta
1
Lo que haas hecho ess simplemente un formulario para ver o cargar datos en la tabla que creaste pero lo que necesitas ess buscar un determinado registro. Lo que puedes hacer en ese mismo formulario es, estando ubicado en el campo CODINTERNO, utilizar la herramienta dee búsqueda (binocular) e ingresar el código correspondiente temiendo en cuenta las opciones que aparecen en la ventana de búsqueda. Esto hará que el formulario muestre el registro correspondiente si existe o mostrar un mensaje en caso contrario, en cuyo caso podrás cargar el nuevo registro ubicándote al final de los registros con los botones de navegación.
Suerte.

2 respuestas más de otros expertos

Respuesta
1
Para lo que quieres realizar, Access te proporciona cuadros combinados que buscan registros en el formulario que coinciden con un valor de la lista que nos muestran.
1º Muestra el formulario en la vista diseño.
2º De la caja de herramientas selecciona el botón del cuadro combinado y colócalo en el formulario
3º De las tres opciones que te muestra, selecciona la 3ª que te permitirá buscar registros en el formulario y sigue sus indicaciones.
Este cuadro te habrá creado más o menos estas líneas de código (se accede desde las propiedades del cuadro combionado/ficha eventos/ después de actualizar):
'-----------
Private Sub
Cuadro_combinado49_AfterUpdate()
' Buscar el registro que coincida con el control.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[IDCLIENTE] = " & Str(Me![Cuadro combinado49])
Me.Bookmark = rs.Bookmark
End Sub
'-----------
A estas líneas si le haces unos pocos cambios te servirán para tus propósitos.
Private Sub Cuadro_combinado46_AfterUpdate()
' Buscar el registro que coincida con el control.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[IDCLIENTE] = " & Str(Me![Cuadro combinado46])
' Trozo que tienes que cambiar
If rs.NoMatch Then
DoCmd.GoToRecord , , acNewRec
Else
Me.Bookmark = rs.Bookmark
End If
End Sub
'-------------
Si lo que pretendes es que se realicen las búsquedas desde el mismo campo 'CODINTERNO', necesitarás utilizar algunas líneas en VB.
Aunque por lo que me cuentas, te recomiendo que no utilices el mismo cuadro de texto que nos muestra el valor de un campo para desplazarte hasta otro, puesto que antes de desplazarse actualizaría el valor del actual en la tabla.
Respuesta
1
Vamos a ver si me explico, parece más complicado de lo que realmente es:
Supongamos que la tabla donde guardas los datos se llama Clientes. En el formulario, supongamos que el cuadro de texto donde escribes el Código Interno se llama CodInterno. En propiedades de ese cuadro, en Eventos-Después de actualizar-Procedimiento de evento, pulsa Generar(...) y escribe
Dim filtro as string
Filtro="CodInterno="&Me.codinterno
Me.cédula=Dlookup("Cédula","Clientes",filtro)
Me.Nombre=Dlookup("Nombre","Clientes",filtro)
Cuando introduzcas un valor en CodInterno y pulses Enter se actualizarán los otros datos
Querido amigo tu ayuda no me soluciono el problema por que siempre me esta arrojando el mismo numero de cedula así cambie el código interno y el objetivo es que muestre el numero de cedula y nombre con su respetivo código interno de esa persona.
Muchas gracias
No lo tomes como soberbia, pero si te digo que funciona es porque lo he probado muchas veces. Si te es posible mándame una copia de la base, con pocos datos y comprimida para que no ocupe mucho, a [email protected], o bien me dices la tuya y te envío algún ejemplo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas