Access

Hola JPaniagua
Mira tengo una duda con access que no soy capaz de solucionarla y es la siguiente: tengo una base de datos en access, en la cual e creado un formulario, en dicho formulario tengo un cuadro combinado en el cual tengo código postales, lo que quiero es que cuando elija un código postal automáticamente ma salga la localidad, lo e intentado con sentencias sql, pero no me sale, haber si me puedes exar una mano por favor, que estoy para salir loco.
Un saludo, espero tu respuesta.
Respuesta
1
Te propongo una solución simple (utilizando SQL "casero"), pero eficaz, supongo que la tabla que tiene los códigos postales tiene también las poblaciones si no es así te recomiendo que lo hagas.
Supón que tienes una estructura de tabla parecida a esta:
TCPostal
IdPostal (Clave Principal)
Codpostal
Población
En un formulario donde estés registrando la dirección tendrás un cuadro combinado con del Codpostal, ponle un nombre para asociarle, por ejemplo COMBOCORREOS, en las propiedades del mismo verás origen de la fila (¡FILA! NO CONTROL) abre el origen los tres puntos y selecciona, según mi ejemplo IdPostal, Codpostal, Población Cierra la consulta (botón cerrar) y dile que quieres actualizar la propiedad (Sí). Busca las siguientes propiedades en el cuadro combinado: Columna dependiente Nº Columnas Ancho de las Columnas Ancho de la lista y escribe: 1 3 0cm;3cm;0cm 3,5cm
Te explico: El valor que guarda el cuadro es el IdPostal, son tres columnas, sólo es visible la segunda (3 cms creo que es suficiente si no aumenta el número) y el ancho total de la lista es de 3,5 (lógicamente el ancho total no puede ser inferior si no te saldrá la barra de desplazamiento horizontal)
Una vez preparado el cuadro combinado viene el engaño (poner la población): crea un cuadro de texto independiente denominado población. Entra en las propiedades y pon como valor predeterminado = DBúsq("Poblacion";"TCPostal";"IdPostal=Forms![NOMBREFORMULARIO]![COMBOCORREOS] Debes sustituir nombre formulario por el nombre del formulario donde está el combo. ¿Qué ocurre si te equivocas y seleccionas por error un código postal?: Por defecto no actualiza el cuadro de texto población si no que tendrás que poner un procedimiento de evento en el combo que lo haga es muy simple. En el procedimiento de evento Al Actualizar de COMBOCORREOS entre Private Sub y End Sub pones:
Me. Poblacion. Requery
Te escribo otro post (no cabe aquí) con otra solución más simple todavía con código vb
Como te comenté continuo el post anterior:
Partimos de que ya está preparado el combo y el cuadro de texto población.
Mediante Código es más simple aún:
Crea un procedimiento de evento Al Actualizar de COMBOCORREOS y entre Private Sub y End Sub coloca:
Me.poblacion.value = Me.COMBOCORREOS.Column(2)
¡ YA ESTÁ ! Te lo explico por si no estás familiarizado con los procedimientos:
Le indico que cuando cambie el dato de COMBOCORREOS tiene que poner como valor en el cuadro población la tercera columna del cuadro combinado. Ya se que que pone dos en vez de tres pero es que es "muy especial" y empieza a contar las columnas desde cero por eso la primera (ID) es Cero y la tercera (Población) es dos
Hola JPaniagua, perdona que no te haya contestado antes es que he estado de viaje y no he podido, espero que no te hayas cabreado
Muchas gracias por tu respuesta, yo también soy informático si tienes alguna duda ya sabes donde me tiene, ah se puede hacer lo del código postal de una manera más fácil, con una sentencia sql y con un INNER JOIN si quieres que te lo explique estaré encantado, muchas gracias y un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas