Access - Problema con codigos postales

 
Vista:

Problema con codigos postales

Publicado por Jose Luis (136 intervenciones) el 08/03/2010 23:08:14
Saludos a todos.
Vamos a ver si me explico.
Tengo una BD con 60.000 Códigos postales de Municipios de España. En mi form al evento 'al salir' del cuadro de texto CodigoPostal cuento los registros de una consulta de codigos postales (en algunos CP hay mas de 400 municipios) y si hay mas de 1 abro un form donde muestro esa consulta para seleccionar el municipio que quiero, una vez seleccionado con Dobleclick paso los datos al cuadro de texto del formulario primero.
Hasta aqui todo bien, pero mi problema viene ahora que en el primer formulario tengo otro campo CP y desde el segundo form no se desde donde lo llaman, he pensado mediante una variable publica distinguir la llamada, pero me parece una chapuza.
Lo correcto seria hacer una funcion que en el cuadro de texto CP al evento 'al entrar' la llamaramos pasandole como argumento el CP y que la funcion
buscara el municipio, abriera el segundo form. si fuera necesario seleccionar mas de un municipio y devolviera el municipio seleccionado.
Vaya rollo, espero vuestras sugerencias. Un saludo desde Albacete. SP.
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

RE:Problema con codigos postales

Publicado por mi menda (1111 intervenciones) el 13/03/2010 07:30:14
Hola:
No sé sí habré entendido bién.
Cuando abres el 2º formulario para buscar el código postal (supongo que lo harás mediante DoCmd.OpenForm), puedes pasar como argumento el nombre del control al que tiene que pasar el dato, es decir desde el evento al salir del campo CodPostal1:
DoCmd.OpenForm "NombreForm",,,,,,"CodPostal1"

Desde el evento al salir del campo CodPostal2:
DoCmd.OpenForm "NombreForm",,,,,,"CodPostal2"

Para pasar el código postal al formulario principal

Forms("NombreFormPrincipal").Controls(Me.OpenArgs)

Un saludo
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

RE:Problema con codigos postales

Publicado por jose luis (136 intervenciones) el 14/03/2010 20:52:28
Gracias mi menda, me pondre con ello, aunque lo veo complicado.
Una consulta mas si no te importa, como pudeo desde un formulario agregar un nuevo registro en un subformulario y colocarme en el, muchas gracias de antemano.
un saludo
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

RE:Problema con codigos postales

Publicado por mi menda (1111 intervenciones) el 15/03/2010 02:37:56
Hola:
¡¡¡Complicado!!!; solo tienes que mirarte en la ayuda el argumento OpenArgs de
DoCmd.OpenForm (el último argumento), puedes pasar una cadena al abrir un formulario y luego utilizarla en el otro formulario mediante variable = Me.OpenArgs o directamente, es algo verdaderamente útil.
En cuanto a lo 2º:

Me.NombreControlSubformulario.SetFocus
DoCmd.GoToRecord , , acNewRec

Un saludo
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

RE:Problema con codigos postales

Publicado por jOSE lUIS (136 intervenciones) el 18/03/2010 16:29:04
Gracias mimenda, perdona por el retraso, aunque no he hecho la dichosa funcion, si que estoy usando el argumento OpenArgs, y es muy util.
Una ultima pregunta, se pasa una variable o se pueden pasar varias.
Muchas gracias.
Un saludo desde Albacete-España
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

RE:Problema con codigos postales

Publicado por mi menda (1111 intervenciones) el 12/05/2010 01:55:26
Hola:
He visto este último post de chiripa, solo hay que ver la fecha.
Puedes pasar tantos argumentos como quieras, lo normal es separarlos por una coma ",".

DoCmd.OpenForm "NombreForm",,,,,,"Argumento1,Argumento2,Argumento3"

En el formulario abierto al que hemos pasado los argumentos:

Dim x As Variant
Dim str0 as String
Dim str1 As String
Dim str2 As String

x = Split(OpenArgs,",")
str0 = x(0)
str1 = x(1)
str2 = x(2)

Un saludo
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