Access - Rellenar un campo a partir de otro

   
Vista:
Imágen de perfil de jose luis

Rellenar un campo a partir de otro

Publicado por jose luis (39 intervenciones) el 19/02/2015 11:45:55
Hola.Tengo un formulario con los campos Código Postal y Población. Quisiera saber como hacer para que al poner el código postal si ya está dado de alta me rellene el campo población automaticamente y si no está dado de alta me deje rellenarlo manúal.
Como siempre muchas gracías.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito

Rellenar un campo a partir de otro

Publicado por Neckkito (1104 intervenciones) el 19/02/2015 20:38:48
En el evento "Después de actualizar" del CP:

1
2
3
4
5
6
7
Dim pobl as variant
If isnull(me.[CP].value) then exit sub
pobl=dlookup("Poblacion","NombreTabla","CP='" & me.[CP].value & "'")
If not isnull pobl then
me.[Poblacion].value=pobl
End if
End sub
...

El código presupone que el campo del código postal es un campo tipo texto. Si fuera numérico tienes que cambiar la línea del dlookup por esta otra:

1
pobl=dlookup("Poblacion","NombreTabla","CP=" & me.[CP].value)

Aunque lo más óptimo sería tener una tabla auxiliar de códigos postales y poblaciones, y coger los valores de ahí.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose luis

Rellenar un campo a partir de otro

Publicado por jose luis (39 intervenciones) el 21/02/2015 09:04:10
Hola neckkito, gracías por la respuesta pero no me funciona.En la línea "if not isnull pobl then"me salta el error de VB " Se esperaba: Then o GoTo".
Con respecto a crear una tabla especifica tendria que meter todos los datos manualmente no?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

Rellenar un campo a partir de otro

Publicado por Neckkito (1104 intervenciones) el 21/02/2015 09:54:34
Hola!

El error te salta porque yo la he pifiado

Cambia tu línea del if por

If not isnull(pobl) then

Sobre el tema de crear una tabla específica y meterle los datos manualmente, ¿acaso no le estás metiendo los datos manualmente ahora cuando introduces un código postal que no existe?

Puedes hacer que, cuando el código postal no exista en esa tabla específica, te lo diga y te obligue a meter la información. Eso puede hacerse por código, pero una manera sencilla es aprovechar la característica de los cuadros combinados para indicar qué formulario se te debe abrir para añadir nuevos datos.

Te explico con algo muy sencillo cómo hacerlo, por si quieres probarlo:

1.- Créate una tabla simple TColor con un solo campo, por ejemplo, [Color]
2.- Créate un formulario sobre esa tabla y llámalo FColor
3.- Créate un formulario en blanco (que sería el representante de un formulario de trabajo) y añádele un cuadro combinado.
4.- Cuando te salga el asistente dile que quieres coger los datos de la tabla TColor
5.- En las propiedades del combo, pestaña Datos, cambia el valor de la propiedad "Formulario de edición de elementos" y selecciona FColor.
6.- Asegúrate que la propiedad "Limitar a la lista" está en NO y la propiedad "Permitir ediciones de lista" está en Sí
7.- Pon el formulario en blanco en vista formulario y despliégalo. Verás que te aparecerá un pequeño icono de edición. Si haces click sobre él te llevará al formulario FColor, donde podrás dar de alta el nuevo valor.

Lo dicho, es un sistema "resultón" que, si te es de utilidad, puedes utilizar. Si no ya tendrías que recurrir a programación.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose luis

Rellenar un campo a partir de otro

Publicado por jose luis (39 intervenciones) el 22/02/2015 18:09:57
Muchas gracías, me funciona a la perfección.
Voy a hacer el ejemplo que me pones para poder ver bien la diferencía
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar