Hola, ¿Se puede programar en access para que al llenar un campo del formulario se llenen otros?

He tratado con este código para llenar mis campos del formulario, pero la verdad no me sale ni error ni el dato, ¿alguien puede ayudarme?, gracias, en mi base tblfolio tengo id (numérico), folio(numérico), adscripción(txt), puesto(txt), tblaltas, folio(numérico), nombre (txt), adscripción, puesto, la tabla alta se alimenta de la de folios y en el formulario quisiera que al poner el folio, se llenaran los campos adscripción y el de puesto, ¿me podrían ayudar?, muchas gracias, he utilizado este código en el evento después de actualizar y no funciona, ni me manda error, ¿podrían decirme cual es mi error?

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "id=" & Me.Adscripción), "")

1 respuesta

Respuesta
1

Si el dato que metes es folio, es ese el que tienes que poner en la fórmula:

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "id=" & Me.Folio), "")

Esto te funcionará sin problemas si el número de folio( el campo folio) no se repite en la tabla "tblFolios". En otro caso te dará resultados inesperados.

hola, muchísimas gracias por contestar, hice lo que me pediste en el evento después de actualizar, del cuadro de texto folio, pero me mando este mensaje:

Error de compilación

no se encontró el método o el dato miembro

y en el código me sombrea adscripción, que podrá ser????

nuevamente muchísimas gracias.

saludos

Por lo que comentas, parece ser un error con los nombres de los campos. Te explico la fórmula, para que veas si se rata de eso:

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "id=" & Me.Folio), "")

Me. Adscripción -> Es el nombre del cuadro de texto del formulario, que supongo irá relacionado con el campo adscripción de la tabla. Fíjate que el nombre es el correcto (con acento o sin el), para eso, en vista diseño, saca las propiedades de ese cuadro y mira la fila Nombre de la pestaña Eventos. Ese es el nombre que tienes que poner.

"adscripción" -> es el nombre del campo que quieres buscar en la tabla. Aquí lo mismo, fíjate bien en el nombre, que coincida exactamente con la tabla. También lo puedes poner entre corchetes, así [adscripción], a ver si por culpa del acento te da el error

"TblFolios" -> es el nombre de la tabla donde vas a buscar

"id=" & Me.Folio -> es la condición de filtro que le pones a la búsqueda.

Acabo de caer en la cuenta de que la fórmula tiene un error, pues debería ser así:

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "[Folio]=" & Me.Folio), "")

Pues estás buscando por Folio, no por id.

A ver si es algo de esto.

muchas gracias por responder tan rapido, el resultado es el esperado, muchas gracias, pero como marcaste en la primer respuesta, efectivamente tengo 3 categorías donde busca el folio, pero cada categoría tiene un consecutivo de folio, así que si hay triplicidad de folios en algunos casos, aunque los datos los jala del primer registro que encuentra, osea si hay tres folios "1", el valor que trae es el del primer "1", hay manera de solucionarlo, los categorías son programa 1, programa 2 y programa 3, esa seria la diferencia entre folios, por lo demás jala muy bien, ahora del mismo modo y cambiando los nombres de los campos, quise jalar información de una consulta, pero no me da el mismo resultado, me sale: "se ha producido error '3075' en tiempo de ejecución:

error de sintaxis (falta operador en la expresión de consulta 'nombre completo', podrías explicarme este error???, gracias

Para el error que te da, supongo que será porque la consulta tiene algún parámetro que se pide para que se ejecute... pero sin más detalles no lo sé.

Para solucionar lo de los folios, le puedes añadir a la fórmula otra condición, algo así:

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "[Folio]=" & Me.Folio & " AND [Categoría]=" Me.Categoría), "")

Esto suponiendo que tu tabla tblFolios tenga un campo llamado Categoría que sea de tipo numérico. Si fuera de texto, serías así:

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "[Folio]=" & Me.Folio & " AND [Categoría]='" Me.Categoría & "'"), "")

Fíjate que después del signo = de categoría hay una comilla simple, y lo mismo entre las dos comillas dobles en negrita del final.

hola, nuevamente gracias por las respuestas, sabes me marca error de compilación: error de sintaxis, mi pregunta es no debería llevar un "&" en el ultimo me.categoría???

por otro lado sustituí solo el de categoría por el campo que se llama programa y hay 3 tipos de programa, en solo campo de la tabla, puede haber folio 1, programa 1, folio 1 programa 2, folio 1 programa 3, el campo se llama programa, así que puse en categoría "programa", pero me marca el error, le puse un "&" y no me marca el error, pero no se que debería de darme, alguna opción??? ya que no da nada, je je, lo siento soy muy nuevo en esto de la programación y el manejo de access, pero ahora es como un reto y debe salir, muchas gracias por tu ayuda, de verdad lo aprecio, gracias.

este es el código que puse:

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "[Folio]=" & Me.FOLIO & " AND [Programa]='" Me.Programa & "'"), "")

da error, con este otro no da error pero no hace nada, jajaja:

Me.Adscripción = Nz(DLookup("adscripción", "TblFolios", "[Folio]=" & Me.FOLIO & " AND [Programa]='" & Me.Programa & "'"), "")

nuevamente gracias por tu ayuda, ya tengo avance por lo menos.

Me faltaba un & en la fórmula.

Haz una cosa, pásame una copia de la BD y miro a ver por que está fallando. Si tiene datos confidenciales, bórralos y pon un par de registros inventados para que pueda ver el funcionamiento de la misma. Para pasármela, súbela a www.filebig.net u otra web similar, y me pegas aquí el enlace de descarga.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas