Access - diseño bbdd delegaciones (campos dependientes)

   
Vista:

diseño bbdd delegaciones (campos dependientes)

Publicado por PEDRO (2 intervenciones) el 22/01/2011 19:17:07
Hola, buenas soy novato en access, a ver si alguien me puede echar una mano.
Quiero hacer una bb.dd de acces de nuestras delegaciones.
Se supone que como voy a utilizar comunidades autonomas --> ZONAS, provincias y municipios para varias tablas (delegaciones, clientes, etc...):
1º) Me gustaria saber si la siguiente estructura de tablas seria la correcta:

DELEGACIONES
id_delegacion [autoincremental] [PK]
id_zona [numerico] [FK de ZONAS.id_zona]
id_provincia [numerico] [FK de PROVINCIAS.id_provincia]
id_municipio [numerico] [FK de MUNICIPIOS.id_provincia]
direccion [texto]

ZONAS --> (COMUNIDADES AUTONOMAS)
id_zona [PK] [autoincremental]
zona [texto]

PROVINCIAS
id_provincia [PK] [autoincremental]
id_ccaa [FK de ZONAS.id_zona [numerico]
provincia [texto]

MUNICIPIOS
id_municipio [PK] [autoincremental]
id_provincia [FK de PROVINCIAS.id_provincia] [numerico]
municipio [texto]

2º) Tambien estarian bien las siguientes relaciones?:
http://img339.imageshack.us/i/relacionesa.jpg/

3º) Como puedo hacer que:
Al introducir datos en la tabla DELEGACIONES
el campo id_delagacion - no problem
el campo id_zona -> realmente se guarde un id de zona, pero al introducir datos, salga un desplegable con las zonas (comunidades autonomas) de la tabla ZONAS
Por ejemplo que podamos seleccionar "Castilla y Leon" y realmente se guarde el id (8)
el campo id_provincia --> realmente se guarde un id de provincia, pero al introducir dato, solo salgan las provincias de la ZONA que he seleccionado en el campo anterior
Por ejemplo que al haber seleccionado "Castilla y Leon" en el campo zona aqui solo nos salgan las provincias de esa ZONA, y seleccionemos por ejemplo "Palencia" y se guarde el ID
el campo id_municipio --> realmente se guarde un id de municipio, pero al introducir datos, solo salgan las municipios de la PROVINCIA que he seleccionado en el campo anterior

Solo he conseguido que: por ejemplo
En la tabla DELEGACIONES en los campos:
id_zona --> me lo coja de ZONAS.id_zona y aparezcan los nombres de las zonas
en la definicion de la tabla, con la opcion: "busqueda/cuadro_combinado/origen de la fila:
SELECT ZONAS.zona, ZONAS.id_zona FROM ZONAS;
Columna dependiente: 2
Mostrar columnas: 1
id_provincia --> me lo coja de PROVINCIAS.id_provincia y aparezcan los nombres de las provincias.

En la definicion de la tabla, con la opcion: "busqueda/cuadro_combinado/origen de la fila:
SELECT PROVINCIAS.provincia, PROVINCIAS.id_provincia FROM PROVINCIAS;
Columna dependiente: 2
Mostrar columnas: 1
id_municipio--> me lo coja de MUNICIPIOS.id_municipio y aparezcan los nombres de los municipios

En la definicion de la tabla, con la opcion: "busqueda/cuadro_combinado/origen de la fila:
SELECT MUNICIPIOS.municipio, MUNICIPIOS.id_municipios FROM MUNICIPIOS;
Columna dependiente: 2
Mostrar columnas: 1

Todo esto esto es directamente en la definicion de las tablas. Si utilizar formularios. ¿Seria mejor controlar esto utilizando formularios, o como yo he echo directamente en la definicion de los campos?
Pero quiero como he comentado antes que solo se puedan seleccionar las provincias segun la zona elegida, y solo los municipios correspondientes a la provincia elegida.

Esta bien diseñada esta BB.DD o alguien me recomienda otra organizacion/diseño.

Gracias y Salu2.
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:diseño bbdd delegaciones (campos dependientes)

Publicado por PEDRO (2 intervenciones) el 22/01/2011 21:34:02
Creo que he encontrado exactamente lo que necesitaba en:
http://office.microsoft.com/es-es/access-help/basar-un-cuadro-combinado-en-otro-HA001173058.aspx?CTT=1&origin=EC001022701
En la seccion de esa pagina: Qué hacer al abrir el formulario

Esta el codigo de un evento de formulario que al cargar el formulario pone en la categoria el primer valor de la tabla categorias (si no, al cargar el formulario estaria vacia), pone tambien de forma predeterminada en el campo producto el 1er producto de esa primera categoria :
Private Sub categoria_AfterUpdate()
Me.producto = Null
Me.producto.Requery
Me.producto = Me.producto.ItemData(0)
End Sub

Private Sub Form_Load()
If IsNull(Category) Then
Me.categoria = Me.categoria.ItemData(0)
Call categoria_AfterUpdate
End If
End Sub

Me da error si dejo lo de (Cancel As Integer) de la segunda sub
¿que se supone que hace ese (Cancel As Integer)?
¿una variable llamada cancel? ¿para que?
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