Access - Info auxiliar en base a dos campos

 
Vista:

Info auxiliar en base a dos campos

Publicado por Luis (4 intervenciones) el 04/03/2013 23:29:04
Buenas tardes,
Espero que puedan solucionarme mi duda porque ya llevo un tiempo dandole vueltas.
Tengo dos tablas:
Tabla: Salidas Campos: ID_Salidas(autonum) Categoria_sal, Modalidad_sal, Salida_sal
Tabla: Inscripciones Campos: Dorsal (autonum), Nombre, Categoria, Modalidad, Salida

Categoria muestra los datos guardados en Categoria_sal, y Modalidad los de Modalidad_sal

Quiero que cuando Categoría coincida con Categoria_sal y Modalidad con Modalidad_sal el valor de Salida_sal se muestre en Salida.

Con Dlookup solo se puede hacer con un valor.

Espero que puedan ayudarme, 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
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

Info auxiliar en base a dos campos

Publicado por Neckkito (1157 intervenciones) el 05/03/2013 12:31:49
Hola!
Suponiendo un proceso lineal de introducción de datos en el formulario, es decir, que primero se rellena el campo [Categoria] y a continuación [Modalidad], lo que puedes hacer es lo siguiente (te pongo el código con un pequeño control de introducción de datos):

- Saca las propiedades del campo [Modalidad]
- Te vas a la pestaña Eventos -> Después de actualizar
- En ese evento generas el siguiente código:
...
Private Sub...
Dim vCat as string, vMod as string
Dim vSal as variant
vCat=nz(me.Categoria.value,"")
vMod=nz(me.Modalidad.value,"")
If vCat="" then
msgbox "No ha indicado la categoría",vbExclamation, "SIN CATEGORIA"
Exit sub
End if
If vMod="" then exit sub
vSal=dlookup("Salida_Sal","Salidas","Categoria_sal="' & vCat & "' AND Modalidad_Sal='" & vMod & "'")
If isnull(vSal) then
msgbox "No se ha encontrado una salida que cumpla los requisitos",vbCritical,"SIN DATOS"
Else
me.Salida.value=vSal
End if
End sub
...
Ten en cuenta que:
- Te lo he escrito de memoria. Si te da algún error me lo comentas, indicando qué número de error de ta, la descripción y qué línea te marca en amarillo al darle al botón "Depurar"
- He supuesto que los campos Categoria y Modalidad son de tipo texto. Si fueran numéricos se debería modificar ligeramente el código.

A ver si te va bien.

Un saludo,


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

Info auxiliar en base a dos campos

Publicado por Luis (4 intervenciones) el 06/03/2013 16:21:34
Hola,
si los campos modalidad y categoría son de tipo texto.
La única linea en rojo que me da un error en la de vSal=dlookup pone "Expected:list separator or )" así que imagino que será un error de sintaxis, alguna coma o algunas comillas... El resto no me da ningún tipo de error.
Saludos
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 Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Info auxiliar en base a dos campos

Publicado por Neckkito (1157 intervenciones) el 06/03/2013 18:45:15
Hola!

Pues el DLookup que te he escrito no veo que tenga ningún problema de sintaxis.

A ver si lo ponemos en vista código...

1
vSal=dlookup("Salida_Sal","Salidas","Categoria_sal="' & vCat & "' AND Modalidad_Sal='" & vMod & "'")


Pues sí, hay un error en el orden de unas comillas dobles-comillas simples. Debería estar escrito así:

1
vSal=dlookup("Salida_Sal","Salidas","Categoria_sal='" & vCat & "' AND Modalidad_Sal='" & vMod & "'")


Pruébalo así, a ver si ahora funciona.

Ya me dirás.

Saludos,

Neckkito
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

Info auxiliar en base a dos campos

Publicado por Luis (4 intervenciones) el 06/03/2013 19:28:08
BUFF !!INCREIBLE!! GRACIASSS
Llevaba un montón de tiempo buscando esta solución, y no la había encontrado en ningún foro.
Eres un crack. Muchísimas gracias por tu ayuda!!!!!!
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