Imprimir página | Cerrar ventana

Creación de BD con selecciones alternativas

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=87048
Fecha de impresión: 26/Marzo/2026 a las 15:29


Tema: Creación de BD con selecciones alternativas
Publicado por: Hedera
Asunto: Creación de BD con selecciones alternativas
Fecha de publicación: 19/Marzo/2025 a las 19:28
Buenas tardes,

Mi duda seguramente es bastante básica para el nivel que hay en este foro, acabo de registrarme aunque hace tiempo que lo consulto.

Pretendo crear una base de datos para distintos tipos de expedientes (por ejemplo 'Altas', 'Bajas', 'Modificaciones'). Cada uno de esos tipos de expedientes tiene unos trámites asociados, me invento algún ejemplo:

En 'Altas': 'Informe existencia empresa', 'Requerimiento alta AEAT'
En 'Bajas': 'Resolución baja CNAE', 'Baja en el censo de empresarios'

Tengo una tabla (núm. 1) con el listado de expedientes y en esta tabla el campo 'Tipo de expedientes' estaría vinculada con una segunda tabla (núm. 2) con los tres tipos de expedientes.

Luego tengo otra tabla (núm. 3) con una lista de trámites para cada tipo de expediente.

En una cuarta tabla (núm. 4) quiero incluir los trámites que van ocurriendo en cada uno de los expedientes, de manera que el expediente se va repitiendo asociado a cada trámite. Pretendo que al escribir el expediente en esta cuarta tabla reconozca que ya es un expediente de 'Alta' en la tabla núm. 1 y que solo me deje seleccionar los tipos de trámites que están especificados en la tabla 3 para ese tipo de expedientes.

Muchas gracias de antemano por la ayuda.

Un saludo 



Respuestas:
Publicado por: Plinio Montano
Fecha de publicación: 19/Marzo/2025 a las 23:40
Hola Hedera, imagino que ante todo tengas un diseño de BD que establezca realaciones e integridad referncial entre estas tabal.

Tabla #1: (Es el catálogo de Tipos de Expediente)
Nombre: Tipos de Expedientes
- Tipo_de_Expediente, (Texto) llave
- IdTipoExp (id Autonúmerico, Indexasado sin duplicados)
... puede tener otros campos según tu interés

Tabla #2: (Es el catálogo de Tramites)
Nombre: Trámites
- Descripción del Trámite, (Texto) llave
- IdTramite (id Autonúmerico, Indexasado sin duplicados)

Tabla #3: (Es la tabla que relaciona los Tipos de Expediente con los tramites que abarcan, permite que un mismo trámite se pueda ralizar para diferentes tipos de expediente)
Nombre: Trámites x Tipo de Expediente
- IdTipoExp  (Entero Lago, Indexasado con duplicados) llave
- IdTramite (Entero Lago, Indexasado con duplicados) llave

Tabla #1 (IdTipoExp) 1 -----> ∞  (IdTipoExp)  Tabla #3 (IdTramite)  <-----1 (IdTramite) Tabla #2

Tabla #4: (Es el control de los expedientes, donde le decimos a cada expediente de que tipo es)
Nombre: Expedientes 
- NroExp, (Texto) llave
IdTipoExp  (Entero Lago, Indexasado con duplicados) llave

Tabla #1 (IdTipoExp) 1 -----> ∞  (IdTipoExp)  Tabla #4

Le propongo una tabla para catálogo de tramites (Tabla #2) pensando en que un mismo tramite puede estar en más de un tipo de expediente.

Luego de haber captado los datos en cada tabla, si ejecuta la siguiente consulta podrá obtener la lista de tramites por expediente.

SELECT Expedientes.NroExp, Trámites.[Descripción del Trámite]
FROM ((Expedientes INNER JOIN [Tipos de Expedientes] ON Expedientes.IdTipoExp = [Tipos de Expedientes].IdTipoExp) INNER JOIN [Trámites x Tipo de Expediente] ON [Tipos de Expedientes].IdTipoExp = [Trámites x Tipo de Expediente].IdTipoExp) INNER JOIN Trámites ON [Trámites x Tipo de Expediente].IdTramite = Trámites.IdTramite;





-------------
pmv


Publicado por: Plinio Montano
Fecha de publicación: 19/Marzo/2025 a las 23:43
El campo IdTipoExp en la Tabla #4 no tiene que ser un campo llave

-------------
pmv


Publicado por: Hedera
Fecha de publicación: 20/Marzo/2025 a las 22:09
Hola!!

Muchas gracias por tu ayuda!! Me resulta un poco complejo para el nivel que tengo, pero más o menos puedo seguir las explicaciones, así que lo probaré con detenimiento.

Gracias de nuevo!! Thumbs Up



Imprimir página | Cerrar ventana