Access - subpartidas

   
Vista:

subpartidas

Publicado por ANTONIO (78 intervenciones) el 04/03/2013 14:31:55
hola a todos,

Estoy atascado en algo que será una tontería pero no sé como hacer el diseño de mi problema

Tengo una tabla proyecto.
tabla gastos
tabla actividad.

Cada proyecto está dividido en distintas actividades que a su vez este está dividido en varios gastos.
Sabría alguien decirme como tengo que diseñar las tablas?
Ahora mismo he creado una tabla intermedia.Proyecto-Gasto-Actividad, pero creo que lo más lógico sería hacer esto en dos pasos una Proyecto-Actividad y otra Gasto-Actividad.

Perdonad que no me explique bien y muchas gracias por vuestro tiempo.

saludos
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

subpartidas

Publicado por 2pl (461 intervenciones) el 04/03/2013 18:03:48
En las tres tablas debes tener un IDProyecto
En la tabla actividad y tabla gastos un IDActividad
Con eso podrás ligar las tres tablas
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

subpartidas

Publicado por antonio (78 intervenciones) el 04/03/2013 21:46:20
Muchas gracias
una vez que hago esto como sería la mejor forma de meter datos y mostrarlos
¿como me aconsejas que haga los subformulario?

Gracias de nuevo
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
Imágen de perfil de Norberto

subpartidas

Publicado por Norberto (432 intervenciones) el 05/03/2013 09:34:26
Hola.

Si como entiendo, un proyecto está dividido en actividades y una actividad en gastos (sin que un mismo gasto pueda estar en dos actividades de proyectos distintos) yo pondría un IdProyecto autonumérico en la tabla proyectos; un IdActividad autonumérico y un IdProyecto numérico, relacionado con el anterior, en la tabla actividades; y un IdGasto Autonumérico y un IdActividad numérico relacionado con el de la otra tabla en la tabla de gastos.

En cuanto al formulario haría un formulario único con todos los datos de la tabla Proyectos y sendos subformularios continuos para actividades y gastos insertados en el primero. El diseño quedaría así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
+------------------------------------------------------------------------------+
|   Campos tabla Proyectos                                                     |
|   XXXXXXXX   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx                                |
|   XXXXXX     xxxxxxxxxxxxxxxxxxxxxxx                                         |
|   XXXXXXX    xxxxxxxxxxxxxxxxxxxxxxxxxxxxx                                   |
|   XXXXXXXX   xxxxxxxxxxxx                                                    |
|                                                                              |
|   +--------------------------------------+  +-----------------------------+  |
|   | Campos tabla actividades             |  | Campos tabla Gastos         |  |
|   | XXXXXXXXX   XXXXXXX XXXXXXXXXXX XX   |  | XXXXXXXXXXXXXX  XXXXXXXXX   |  |
|   | ------------------------------------ |  | --------------------------  |  |
|   | xxxxxxxx    xxx     xxxxxxxx    x    |  | xxxxxxxxxxxxx      xxxxxx   |  |
|   | xxxxx       xxxxxx  xxx         xx   |  | xxxxxxxxx             xxx   |  |
|   | xxxxxxxx    xxxxxxx xxxxxxx     xx   |  | xxxxxxxxxxx         xxxxx   |  |
|   | xxxxxxx     xxxx    xxxxx       xx   |  | xxxxxxxxxxxxxx    xxxxxxx   |  |
|   | xxxxxx      xxxxx   xxxxxxx     x    |  | xxxxxxxxxxxxx         xxx   |  |
|   |                                      |  | xxxxxxxxxx          xxxxx   |  |
|   |                                      |  | xxxxxxxxxxxxx      xxxxxx   |  |
|   |                                      |  |                             |  |
|   +--|< < > >| >*------------------------+  +--|< < > >| >*---------------+  |
|                                                                              |
+--|< < > >| >*----------------------------------------------------------------+


La relación en cuanto a los formularios sería algo así:

El primero:
Campos principales: IdProyecto
Campos secundarios: IdProyecto

El segundo (ésta no la tengo tan segura, pero prueba y nos dices):
Campos principales: SubFormulario_Actividades.Form!IdActividad
Campos secundarios: IdActividad

Por cierto, a no ser que sea muy significativo para algo, no incluyas los campos Idxxxxxx en los formularios, ya que los autonuméricos se alimentans solos y los dependientes toman el valor según la relación.

Es posible que tengas algún problema con el segundo. Hace mucho que hice algo parecido y ya no tengo esa base de datos (cosas de cambiar de curro) pero te ayudaré encantado.

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

subpartidas

Publicado por ANTONIO (78 intervenciones) el 05/03/2013 14:31:10
Esto si que es una respuesta, muchas gracias.

Pero el caso es que si hay gastos que están en actividades distintas de distintos proyectos
Es algo como así.

Proyecto 1: Actividad 1 (gasto 1, gasto 6) Actvidad 2 (gasto 1, gasto 2 gasto 6)
Proyecto 2 Activdad 1 (gasto1) Actividad 2 (gasto 3)

Es decir un proyecto puede tener hasta 8 actividades y una actividad puede estar en distintos proyectos. A su vez las actividades tienen distintos gastos y estos gastos pueden estar en distintos proyectos UF!!

Te agradezco mucho tu tiempo

Saludos desde Sevilla
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
Imágen de perfil de Norberto

subpartidas

Publicado por Norberto (432 intervenciones) el 05/03/2013 15:44:40
Hola de nuevo.

En este caso se complica un poco. Si un proyecto puede tener varias actividades y una actividad estar en varios proyectos, eso es una relación de varios a varios que "no están permitidas" en Access. Para solucionarlo hay que echar mano de una tabla puente.

Para ello tendríamos, por un lado, las tres tablas principales cada una sólo con su IdXxxxxxx autonumérico y sin el IdXxxxxxx dependiente y por el otro, una tabla ActividadesPorProyecto con sendos campos numéricos IdProyecto e IdActividad, siendo el conjunto de los dos la clave principal*, y otra GastosPorActividad con IdActividad e IdGasto, ambos numéricos y clave principal*.

Si estos campos los defines con el Asistente para búsquedas, en vez de ser unos insustanciales números serán combos con lo que es más fácil asignar las relaciones.

* Para hacer que dos campos sean clave principal se seleccionan ambos y se pulsa la llave.

Una vez hecho ésto, podemos usar el formulario anterior para hacer el mantenimiento de los proyectos y definir las relaciones con las actividades y los gastos (que ya deberán haber sido dadas/dados de alta), pero no para realizar el mantenimiento de ésas y éstos ya que la relación de la tabla Proyectos es con ActividadesPorProyecto y ya debe de existir la Actividad para relacionarla.

De igual manera pasa con los gastos y las actividades.

La cosa se puede mejorar si los subformularios están basados en consultas que relacionen la tabla ActividadesPorProyecto con Actividades y GastosPorActividad con Gastos, de manera que una vez asignada la actividad al proyecto con el combo, tengamos acceso al detalle de la misma.

Para realizar altas de actividades y gastos se pueden poner sendos botones que nos abran sus formularios, etc.

Ésta es sólo mi idea de cómo resolverlo, a partir de ahí... ¡a currar!

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

subpartidas

Publicado por ANTONIO (78 intervenciones) el 06/03/2013 12:15:06
FUNCIONA...

MUCHAS GRACIAS

a costado muchísimo pero vale la pena
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
Imágen de perfil de Norberto

subpartidas

Publicado por Norberto (432 intervenciones) el 06/03/2013 14:26:43
Me alegro.
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