Access - Formularios y registros.

 
Vista:

Formularios y registros.

Publicado por Roser (7 intervenciones) el 10/02/2007 18:11:31
Hola,
Tengo una BD para gestionar una tienda de motos. En una de las tablas, tengo marca moto, modelo moto, color, etc. Mi pregunta es: Si yo elijo una marca de moto en el formulario mediante un cuadro combinado. Se puede conseguir que en modelo, solo me aparezcan los modelos de la marca de moto que yo he seleccionado antes?
No se si me he explicado bien.
Muchísimas gracias.
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:Formularios y registros.

Publicado por Pepe (766 intervenciones) el 10/02/2007 19:55:56
Hola,
Solo tienes que poner en diseño el cuadro combinado de los modelos, y en la solapa de datos--->en origen de la fila pincha en los tres puntitos (...) de la derecha.

Te aparecerá la ventana del origen como si fuera una consulta, baja el campo marca moto, y en la fila de criterios identifica el cuadro combinado de la marca que tienes en el formulrio.

Formularios!["nombre de tu formulario"]!["nombre del cuadro combinado"]

Tendrás que refrescar la pantalla después de seleccionar la marca de la moto. Para eso deberas de ejecutar el comando "Actualizar pagina" en el evento de después de actualizar del cuadro combinado.

Lo puedes conseguir con una macro, que tenga como acción "ejecutar comando" y en comando: seleccionas actualizar pagina.

Suerte Pepe
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:Formularios y registros.

Publicado por salo (152 intervenciones) el 10/02/2007 19:56:59
Hola Roser: Debes hacer lo siguiente:
En el evento AfterUpdate del campo MarcaMoto debes poner
Private sub MarcaMoto_AfterUpdate()
me!ModeloMoto.rowSource="SELECT ModeloMoto FROM Modeloss WHERE MarcaMoto=" & me!MaracaMoto
me!ModeloMoto.Requery
end sub

aunque la construccion de la linea rowsource dependerá que como hayas creado las distintas tablas.
Si tienes algun problema, mandame un email y me indicas que campos tienes en cada tabla.
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:Formularios y registros.

Publicado por Roser (7 intervenciones) el 10/02/2007 21:33:27
Hola salo: tengo entre otras estas dos tablas:
Tb_moto_cliente
dni texto
nºbastidor texto y clave principal
matricula texto
marca cuadro combinado (tb_catalogo_moto[marca])
modelo cuadro combinado (tb_catalogo_moto[modelo])
codigo_color texto
color1 texto
color2 texto

Tb_catalogo_moto
Marca texto y clave principal
Modelo texto

Luego tengo un formulario con los datos del cliente (es otra tb que no he comentado) y un subformulario con Tb_moto_cliente.
En marca y modelo tengo un procedimiento de eventos (que en su día, Mi menda, me ayudo y me dijo lo que tenia que poner… ;-) y es el siguiente:

al no estar en lista (este en marca)
Private Sub marca_NotInList(NewData As String, Response As Integer)
Dim NuevoRegistro As String
Dim conn As ADODB.Connection
Set conn = CurrentProject.Connection
Response = acDataErrAdded
NuevoRegistro = NewData
conn.Execute "Insert Into" & "[TB_marca](marca)Values('" & NuevoRegistro & "')"
End Sub

al no estar en lista (este en modelo)
Private Sub modelo_NotInList(NewData As String, Response As Integer)
Dim NuevoRegistro As String
Dim conn As ADODB.Connection
Set conn = CurrentProject.Connection
Response = acDataErrAdded
NuevoRegistro = NewData
conn.Execute "Insert Into" & "[TB_catalogo_moto](modelo)Values('" & NuevoRegistro & "')"
End Sub

Ahora yo he añadido el que tu me has dado con algunos cambios. Pero no me funciona. Lo he puesto de la siguiente manera:

Después de actualizar (lo he puesto en marca)

Private Sub marca_AfterUpdate()
Me!modelo.RowSource = "SELECT Modelo FROM Modelo WHERE Marca=" & Me!marca
Me!modelo.Requery
End Sub

Pero me da error. No se si te he dado todos los datos que necesitas. Y no se que es lo que hago mal. Gracias

Muchas gracias a Pepe pero con su respuesta me he liado un poco y no he querido intentarlo. Creo que no la he entendido muy bien.
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:Formularios y registros.

Publicado por mi menda (1111 intervenciones) el 13/02/2007 01:00:53
Como mejor te vas a enterar es como lo dice Pepe.

En origen de la fila del cuadro combinado modelo, pincha los tres puntitos (...), para acceder al diseño de la consulta. Sí no tienes el campo marca moto, lo añades a la consulta, y en la fila criterios de ese campo pones:
Form!NombreFormulario!NombreCuadroCombinadoMarcaMoto, aunque con solo poner el nombre del cuadro combinado deberia bastar.
Con esto estamos diciendo, que solo se nos muestren los registros que le pasemos como filtro del cuadro combinado marcaMoto.

Sí hubieras añadido a la consulta el campo marcaMoto, ahora hay una columna más, entonces vas a la ficha formato y en la propiedad "Numero de columnas " tendrías que poner una más de las que tienes. y en la propiedad "Ancho de columnas", pondrías a cero la nueva columna para que no se viera en combo.

Ahora solo nos queda actualizar el control de modelos, es decir, que cuando seleccionemos un nuevo valor del cuadro marcaMotos, automaticamente la consulta origen del cuadro modelos se actualice con el nuevo filtro, y solo nos muestre los modelos correspondiente a la marca.

Para esto en el evento después de actualizar del cuadro combinado marcaMotos ponemos:

Me.NombreCuadroCombinadoModelos.Requery

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:Formularios y registros.

Publicado por Roser (7 intervenciones) el 13/02/2007 21:41:34
Hola

Muchas gracias a todos.
Al fin lo he conseguido.
Miles de gracias
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