Forms con cuadros combinados

Hola,
Tengo un form principal lamado ?monedas? Con los campos
? Cód_moneda?----Clave principal--texto
? ¿País?--Cuadro combinado, depende de su tabla y en la propiedad al cambiar tiene
private sub país_change()
epoca.setfocus
epoca.text=""
época.requery
nombre.setfocus
nombre.text=""
nombre.requery
end sub
?km?--cuadro de texto
?epoca?--cuadro combinado,SELECT epocas.epoca FROM epocas WHERE (((epocas.país)=forms!monedas.país));
?nombre?--cuadro combinado,SELECT nombres.nombre FROM nombres WHERE (((nombres.país)=forms!monedas.país));
La primera pregunta es la siguiente, ¿el? Cód_moneda? ¿Tiene qué ser la concatenación de? ¿País? ¿Más? ¿Km? Con lo que me daría una clave única y fácil de recordar y que también pondría en el nombre de las fotos de las monedas con su extensión ej:alemania32a.jpg.
Luego tengo un subform dentro del form monedas llamado? ¿Complementos? Con los campos siguientes
?cód_moneda?--relación con form monedas
?cód_complemento?--clave principal
?año?--texto
?ceca?--cuadro combinado,SELECT cecas.ceca FROM cecas WHERE (((cecas.país)=forms!monedas.país));
Este es el campo que no me funciona de ninguna manera su comportamiento debe ser que al seleccionar un país en el form principal me muestre en el cuadro combinado solo las cecas relacionadas con ese país.
Te comentare que en las tablas de procedencia de época, nombre y ceca tengo primero país y luego ceca... Y los dos campos de cada tabla son claves principales.
Agradeciendo tú pronta respuesta que seguro sera satisfactoria.
Un saludo,
Ximo Pascual
1

1 Respuesta

84.325 pts. Experto en Microsoft Access y SQL Server
A tu primera pregunta: Crea un subprocedimiento en el form monedas, digamos concatenar, así:
Private Sub concatenar()
Me.CodMoneda = Nz(Me.Pais) & Nz(Me.Km)
End Sub
En los eventos después de actualizar de los controles país y km llamas al subprocedimiento,
por ejemplo el de país quedará, al generar evento,
Private Sub Pais_BeforeUpdate(Cancel As Integer)
End Sub
Escribes dentro la llamada y te debe quedar
Private Sub Pais_BeforeUpdate(Cancel As Integer)
concatenar
End Sub
A tu segunda pregunta te responderé cuando cierres y valores esta primera,
que estoy casi seguro que habrá quedado de tu gusto porque la he probado y funciona...
Una vez hecho eso,
Para que vuelva a estar activa, vuélvela a formular,
eliminando lógicamente la cuestión de la concatenación.
Gracias por la rapidez, todo funciona bien menos km que no se une a país no se porque, el procedimiento de evento se me pone en antes de actualizar poro no se si es normal .
Saludos
ximo Pascual
He copiado también el código que tienes en 'país change' para ver si interfiere con la solución que te propuse pero me extraña que sea como tu expones, pues entonces a cada letra que escribieses en 'Pais' el cursor saltaría a 'Nombre' con lo que para escribir la siguiente letra tendrías que volver a hacer clic en 'Pais' etc
Maravilloso ya me funciona, gracias
No es antes de actualizar, es después de actualizar, insisto.
Al generar procedimiento de evento haciendo clic derecho desde el control, lo predeterminado es 'Antes',
Pero no hay que hacerlo así,
Sino
Hacer clic al control,
Ver,
Propiedades,
Eventos,
Y hacer clic a
'despues de actualizar'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas