Access - Misión casi imposible!

 
Vista:

Misión casi imposible!

Publicado por Maria (4 intervenciones) el 06/09/2007 08:40:02
Muchisimas gracias, Enrique!

Ya he realizado cambios pero.....

Lo primero es lo de las comillas de la variable 'X'. Si no las pongo me da un error, pero si las pongo sale bien la consulta (no entiendo el porqué).

Cambié el final... el Recordcount por el NoMatch, pero siempre me devuelve falso.
No se, no se... creo que acerté bastante bien con el titulo del mensaje, jajaja...
Yo sólo queria que me mostrara la consulta si habia registros.... buaaaaah! sniff, sniff

Private Sub Form_AfterUpdate()
Dim rs As DAO.Recordset
Dim x As String
ReferenciaMecanizada.SetFocus
x = Me.ReferenciaMecanizada

Set rs = CurrentDb.OpenRecordset("SELECT Elementos.Codigo, Elementos.Tipo, Elementos.Ubicacion, Elementos.Medida, Max(Inspeccion.ProximaCalibracion) AS MáxDeProximaCalibracion FROM (Referencia INNER JOIN Caja ON Referencia.ReferenciaMecanizada = Caja.ReferenciaMecanizada) INNER JOIN ((Elementos INNER JOIN Inspeccion ON Elementos.Codigo = Inspeccion.Codigo) INNER JOIN Utiles ON Elementos.Codigo = Utiles.Codigo) ON Referencia.ReferenciaMecanizada = Utiles.ReferenciaMecanizada GROUP BY Elementos.Codigo, Elementos.Tipo, Elementos.Ubicacion, Elementos.Medida, Caja.ReferenciaMecanizada HAVING (((Max(Inspeccion.ProximaCalibracion))<Date()) AND ((Caja.ReferenciaMecanizada)= 'x'))")

If Not rs.NoMatch Then
MsgBox "Hay."
DoCmd.OpenQuery "Utiles sin calibrar en Recepción"
Else
MsgBox "Todos los utiles están calibrados"
End If

End Sub
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

RE:Misión casi imposible!

Publicado por smokalot (165 intervenciones) el 06/09/2007 12:20:10
Hola,

has probado con el rs.eof y rs.bof ¿?

Suerte,

SMK
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

RE:Misión casi imposible!

Publicado por Enrique (1299 intervenciones) el 06/09/2007 16:00:18
Hola Maria:
Lo que dice smokalot es cierto, no me dí cuenta al responder que NoMatch funciona en conjunción con FindFirst y aun así solo localizaría el primer registro que cumpla la condición. Lo mejor es usar:

If Not rs.EOF Then

De todas formas veo que no lo has hecho como te dije, el final tiene que ser algo como esto:

...AND Caja.ReferenciaMecanizada = '" & X & "'")

siempre que en el Formulario activo haya un campo de nombre ReferenciaMecanizada que contenga el valor de la comparación, aunque podrías poner directamente el valor de X sin usar variable:

...AND Caja.ReferenciaMecanizada = '" & Me.ReferenciaMecanizada & "'")

Otra cosa es que parece que has creado el Select en la vista SQL de una consulta, la has copiado y pegado con lo que te entran una gran cantidad de paréntesis y la mayoría de ellos además de ser innecesarios, te complican el seguimiento de la sentencia. Los únicos que son necesarios en el OpenRecordset son el de apertura, el de cierre y en tu caso los de apertura y cierre de la función MAX.

Inténtalo otra vez que esto tiene solución, con seguridad y por favor, sigue en este mismo hilo, no abras uno nuevo cada vez.

Saludos
Enrique
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