Access - Gracias Nekkito. Especificación consulta

 
Vista:

Gracias Nekkito. Especificación consulta

Publicado por sera74 (2 intervenciones) el 24/09/2013 18:28:01
GRACIAS Nekkito

Te especifico mejor la consulta que expuse dias antes

Tengo una tabla en las que hay creado tres campos, la tabla se llama TARIFAS Curso, Horas, Mensualidad

CURSO | HORAS | MENSUALIDAD
Primaria 1º | 2 horas | 55 €

Esta tabla es un ejemplo pero mas o menos es así.

Decirte que para un mismo curso "Primaria 1º" existe un baremo de 2 a 10 horas con sus respectivos precios

Ejemplo: Primaria 1º 2 horas 55 €
" 3 horas x €
" 4 horas x €
" 5 horas x €
" 6 horas x €
" 7 horas x €
" 8 horas x €
" 9 horas x €
" 10 horas x €
ESO 1º 2 horas x € ...

Al crear el formulario, el campo CURSO se crea como cuadro combinado desplegable y el campo HORAS como numérico. Hay creado en formularios un cuadro numérico el cual se llama MENSUALIDAD; pues bien, necesito que el cuadro MENSUALIDAD me muestre la misma dependiendo del curso en el que actualmente se encuentre el alumno y las horas que contrate.

Decirte igualmente que el campo curso no se mostrará como tal en el formulario sino que se mostrará de la siguiente forma:

Curso oficial: Primaria 1º
Primaria 2º
Primaria 3º
Primaria 4º
y así sucesivamente mostrando todos los cursos existentes para la educacion

por lo cual indicarte que supongo que la Tabla TARIFA Curso, Horas, Mensualidad, tendré que relacionarla con la tabla Curso oficial para que ésta se muestre como tal en el formulario y poder hacer las consultas que te he indicado antes. Ahora que lo pienso no se como poder relacionarla. Aconséjame

MIL 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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Gracias Nekkito. Especificación consulta

Publicado por Neckkito (1157 intervenciones) el 24/09/2013 22:42:13
Hola!

Lo que haría yo sería:

- Crearte una tabla de CURSOS, con el nombre del curso. Evidentemente yo utilizaría identificadores, pero si no sabes mucho de Access quizá eso te líe. Supongamos que ahí creas un sólo campo llamado [NomCurso] de tipo texto.

- Crearte una tabla de TARIFAS, con los tres campos que mencionas. Sin embargo, en el campo [CURSO], al seleccionar su tipo, eliges "Asistente para búsquedas", y sigues el asistente diciendo que quieres los datos de la tabla CURSOS y del campo [NomCurso].

En esta tabla tendrás que dar de alta todas las tarifas existentes para cada curso en función de las horas.

- Finalmente, crearte una tabla para los datos que necesites para el alumno (supongo). Entre los campos de esta tabla deberás tener tres imprescindibles: [Curso] y [Horas] y [Mensualidad]. De nuevo, el tipo de datos de [Curso] será el "Asistente para búsquedas" y le dices que te busque los datos de la tabla CURSOS y del campo [NomCurso]

- Sobre esta última tabla te creas un formulario. En el evento "Después de actualizar" del campo [Horas] escribes este código:

...
Private Sub...
Dim miCurso as string
Dim misHoras as byte
Dim miMens as currency
miCurso=nz(me.CURSO.value,"")
misHoras=nz(me.Horas.value,0)
If miCurso="" then
msgbox "No se ha informado del curso",vbExclamation, "SIN CURSO"
Exit sub
End fi
If misHoras=0 then
msgbox "Debe indicar el número de horas",vbExclamation,"SIN HORAS"
Exit sub
End if
miMens=nz(dlookup("[MENSUALIDAD]","TARIFAS","[CURSO]='" & miCurso & "' AND" _
& " [HORAS]=" & misHoras),-1)
If miMens=-1 then
msgbox "No hay precio para el curso y horas que ha especificado",vbInformation,"SIN DATOS"
Exit sub
Else
me.MENSUALIDAD.value=miMens
End if
End sub
...

Como comentario te diré que lo anterior hace lo que pides (si no te he entendido mal). Ahora bien, con este sistema estás duplicando información. Si quieres guardar información histórica así está bien, pero si no lo quieres hacer deberías sacar la información a través de un sistema de consultas.

Como esta segunda opción es complicada sin ver cómo tienes estructurada la BD lo dejaremos así, guardando la información de la MENSUALIDAD en la tabla.

Saludos,


http://neckkito.siliconproject.com.ar
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