Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Duda en Access

Estas en el tema de Duda en Access en el foro de Bases de Datos General en Foros del Web. Y si ponemos los mensajitos en el boton de antes?? msgbox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'") msgbox DLookup("Texto", "Modalidades tarifa", "Codigo='" & ...

  #31 (permalink)  
Antiguo 22/10/2008, 03:36
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Y si ponemos los mensajitos en el boton de antes??

msgbox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'")
msgbox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto188 & "'")
msgbox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto195 & "'")
msgbox DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto202 & "'")

Un saludo
  #32 (permalink)  
Antiguo 22/10/2008, 03:55
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Duda en Access

Al darle al botón me muestra una ventana con el texto correspondiente al código de la casilla A1, acepto, se cierra y se abre otra que muestra el código correspondiente a la casilla A2, acepto y me da el siguiente error:

Se ha producidoel error '94' en tiempo de ejecución:
Uso no válido de Null

No siempre da el error a la tercera vez, depende del número casillas (A1, A2, A3, A4) que estén mostrando algún código. Parece que cuando llega a la primera que está vacia o que muestra algun código que no existe en la tabla Modalidades (ahora he visto que algunos de los códigos mostrados en los campos A1, A2, A3 y A4 no vienen incluidos en la tabla de Modalidades, por lo que no tienen ningún texto relacionado).
Un saludo.
  #33 (permalink)  
Antiguo 22/10/2008, 03:58
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Recuerdas que te comente: luego veremos la funcion nz para evitar los posibles campos nulos, que probocan un error al usar dlookup, pues eso, vamos a usarla, prueba asi:

msgbox nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'"),"DATO NO ENCONTRADO")
msgbox nZ(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto188 & "'")"DATO NO ENCONTRADO")
msgbox nZ(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto195 & "'")"DATO NO ENCONTRADO")
msgbox nZ(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto202 & "'")"DATO NO ENCONTRADO")

Que ocurre???

un saludo
  #34 (permalink)  
Antiguo 22/10/2008, 04:20
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Duda en Access

Ahora el botón funciona perfectamente, para los campos que tienen un código relacionado en la tabla de modalidades se muestran los textos correpondientes y para los demás "DATO NO ENCONTRADO"

Un saludo.
  #35 (permalink)  
Antiguo 22/10/2008, 04:30
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Te explico, la funcion nz, devuelve lo que le pases como segundo parametro (en este caso "DATO NO ENCONTRADO"), cuando el resultado de la primera expresion pasada coo parametro es null.

Pues si en el boton funciona, en los cuadros de texto debe funcionar excatamente iagual, si los nombres de los cuadros de texto estan bien puestos.

Un saludo
  #36 (permalink)  
Antiguo 22/10/2008, 04:46
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Duda en Access

Entonces, ¿quedaría puesto así en las propiedades del formulario?:

Private Sub Form_Load()
Me.Texto182 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'"))
Me.Texto189 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto188 & "'"))
Me.Texto196 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto195 & "'"))
Me.Texto203 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto202 & "'"))
End Sub

Un saludo.
  #37 (permalink)  
Antiguo 22/10/2008, 04:56
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

Te falta el segundo parametro de la funcion nz, es decir, lo que quieres que ponga cuando sea null, o una cadena vacia:

Private Sub Form_Load()
Me.Texto182 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'"), "DATO NO ENCONTRADO")
Me.Texto189 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto188 & "'"), "")
Me.Texto196 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto195 & "'"), "HOLA AMIGUITOS")
Me.Texto203 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto202 & "'"), "AQUI NO HAY NA DE NA")
End Sub

Un saludo
  #38 (permalink)  
Antiguo 22/10/2008, 05:41
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Duda en Access

Vale, lo he puesto y parece que en los campos de modalidades del formulariao se muestran siempre los textos relacionados con el primer registro de la base de datos.

Para que lo entiendas mejor por si no está muy claro, cuando abro la base de datos el primero registro de la misma contiene los siguientes valores:

Campo A1 -> 040
Campo A2 -> 050
Campo A3 -> en blanco
Campo A4 -> en blanco

así que en los campos correspondientes a las modalidades se muestra los siguientes textos:

MECANICA TIPO 1
T.V.RECEPTORES
NADA
NADA

Esto es correcto, el problema es que, al recorrer los diferentes registros de la base de tatos, los campos A1, A2, A3 y A4 cambian pero los campos de modalidades se quedan como al principio.

Un saludo.
  #39 (permalink)  
Antiguo 22/10/2008, 05:46
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Respuesta: Duda en Access

No hay problema, solo tienes que poner el codigo en el evento current (al activar registro) del formulario, y quitalo del evento load del form, ya no es necesario, por que al cargar un formulario tambien se produce el evento current, quedaria algo asi:

Private Sub Form_Current()
Me.Texto182 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto181 & "'"), "DATO NO ENCONTRADO")
Me.Texto189 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto188 & "'"), "")
Me.Texto196 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto195 & "'"), "HOLA AMIGUITOS")
Me.Texto203 = Nz(DLookup("Texto", "Modalidades tarifa", "Codigo='" & Me.Texto202 & "'"), "AQUI NO HAY NA DE NA")
End Sub

Un saludo
  #40 (permalink)  
Antiguo 22/10/2008, 06:40
 
Fecha de Ingreso: enero-2005
Mensajes: 22
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Duda en Access

¡¡¡Perfecto!!!, ahora va de lujo.
Muchísimas gracias por tu tiempo y ayuda desinteresada. Chapó
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:23.