Función dbusq

Hola!
Tengo un problema con un formulario de access.
Hice una tabla llamada captura con la cual hice un formulario con el mismo nombre.
En ese formulario puse unos campos independientes con funciones DBúsq, como era de esperarse esta información que es extraída de otras tablas no me aparece en la tabla principal (captura), hay alguna manera para que esta información la copie del formulario a la tabla.
Esta es la función que utilice
=DBúsq("[NOMBRE]","[ALTAS]","[RESPONSABLE]='" & [RESPONSABLE] & "'")
Espero puedas ayudarme, gracias, te dejo mi correo creo que sería más fácil tener comunciación por correo, gracias, (xxxxxx)...

1 Respuesta

Respuesta
1
La función Dbusq es útil para una búsqueda de un dato puntual, pero me parece que Ud necesita algo distinto que por lo que entiendo es llenar un formulario de captura y luego pasar los datos a una tabla.
A continuación copio una respuesta muy parecida que conteste a otro usuario al respecto.
Si no es el caso por favor explíqueme un poco más y ojala con un ejemplo cual seria el problema exacto que se le presenta.
===============================
Una forma donde no requiere mucho código es creando un formulario con Textbox para cada campo que quiere manipular de la base de datos, una vez el usuario termina de digitar la información debe presionar un botón que traslade el contenido de esos textbox a la base de datos. Este método se usa también cuando se quiere validar la información digitada antes de crear un registro en la base.
El código seria algo como:
Option Compare Database
Dim Db As Database
Dim Rs As Recordset
Private Sub Agrega_Click()
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("PROVEEDOR")
Rs.AddNew
Texto01.SetFocus
Rs("NOMBRE") = Texto01.Text
Texto02.SetFocus
Rs("DIRECCION") = Texto02.Text
Texto03.SetFocus
Rs("TELEFONOS") = Texto03.Text
Rs.Update
Close
End Sub
---------------------
Para este ejemplo, hay una tabla llamada proveedor que tiene los campos Nombre, Dirección y Teléfonos.
Un formulario con tres textbox (Texto01, Texto02 y Texto03) que reciben los datos que luego ingresarán a la Tabla
Y un botón para confirmar la grabación de los datos que se llama "Agrega" el procedimiento se incorpora al evento click de ese botón
Suerte y
Hola!
Te explico lo que me sucede.
Cree dos tablas y dos formularios, que son Captura y Altasrfc, las tablas y los formularios tiene los mismos nombres.
En el formulario Captura tengo varios campos entre ellos rfc y Nombre del Responsable, en cuanto al formulario Altasrfc contiene sólo dos campos el rfc y el Nombre del Responsable, en este están todos los rfcs que tengo hasta el momento, pongamos un ejemplo de este ultimo formulario:
RFC Nombre del Responsable
ABC12345            ABC Farmacia
Lo que yo necesito es que cuando yo teclee el rfc ABC12345 en el formulario de captura, me aparezca automáticamente en el campo siguiente (nombre del responsable) ABC Farmacia, y así con todos los demás rfc, y que cada vez que yo de alta un nuevo rfc que no este contenido en el formulario de Altasrfc haga el mismo procedimiento.
Con la función DBúsq se soluciono este problema pero ahora lo que no logro es que toda esa información, en especial la del campo "nombre del responsable" aparezca en la tabla principal de "captura".
Espero me haya explicado, por cierto no sé casi nada de este programa te pido un poco de paciencia por favor y sobre todo que me expliques con un poco de detalle, te lo agradecería muchísimo.
No hay problema. Veamos que tal nos va con esta opción
1.- En el formulario de Captura, el cuadro de texto donde se recibe el RFC, cámbielo por Cuadro combinado. En vista de diseño, Click derecho sobre el cuadro y escoger la opción - Cambiar a - Cuadro combinado
2.- En las propiedades de datos de ese cuadro combinado se escoge Origen de control=RFC, Origen de la fila = AltasRFC. Si desea, en las propiedades de formato se puede colocar Numero de columnas=2 para que muestre el código y el responsable simultáneamente.
3.- En las propiedades de evento de ese mismo cuadro combinado agregar un [Procedimiento de Evento] en el evento Al Cambiar al dar clic sobre los puntos suspensivos lo envía al código de visual donde debe quedar lo siguiente:
Private Sub Campo1_Change()
[Nombre] = DLookup("[Responsable]", "AltasRFC", "[Id]=[RFC]")
Refresh
End Sub
Ojo, los nombres que subraye deben coincidir con los nombres exactos de sus tablas y del formulario. No omitir ningún paréntesis ni comillas (Tal cual)
Campo1 es el cuadro de texto que convertimos ha combinado
Nombre es el cuadro de texto en el form Captura donde quiere que aparezca el nombre del responsable
Responsable es el nombre del campo en la tabla AltasRFC
Id es el nombre del campo que almacena el código RFC en la tabla AltasRFC
RFC es el nombre del campor que almacena el código RFC en la tabla Captura
Notese que en codigo VB la funcion Dbusq toma el nombre en ingles (Dlookup)
Suerte y me informa como le fue
Hola!
Muchas gracias por tu ayuda fue una respuesta que soluciono todos los inconvenientes que tenía, gracias por la atención y por la brevedad en responder.
Cuídate
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas