Tengo problemas con el Dlookup

Espero me ayuden con la siguiente duda:
He intentado realizar un Dlookup con dos criterios de búsqueda, pero siempre me genera el mismo error, los tipos de datos no coinciden, he hecho la prueba de hacer la consulta con cada uno de los criterios por separado y si la realiza bien sin ningún error. No se donde está el fallo y he visto en este mismo foro una pregunta parecida pero la solución no resuelto mi problema.

Os adjunto los dos modos que tengo escritos los códigos:

1-

Dim serie1, piece1 As String
serie1 = "[CD_SERIE] = " & Me.TexSerieCAL
piece1 = "[CD_PIECE] = " & Me.Texpiezacal

RsDatos. MoveLast
RsDatos. Edit
KAIXO = DLookup("DATE_BEGIN_GP", "PROD_NAZ", serie1 & "And" & piece1)

rsDatos("Soldadura").Value = KAIXO
rsDatos.Update

2-

RsDatos. MoveLast
RsDatos. Edit
KAIXO = DLookup("DATE_BEGIN_GP", "PROD_NAZ", "[CD_SERIE] = " & Me.TexSerieCAL And "[CD_PIECE] = " & Me.Texpiezacal)

rsDatos("Soldadura").Value = KAIXO
rsDatos.Update

Si alguien me pude echar una mano lo agradecería.

Respuesta
2

Además de todo lo que bien te comenta Icue, y suponiendo que todos los campos fueran numéricos, te señalo por qué no te funcionan tus sintaxis:

1º/ KAIXO = DLookup("DATE_BEGIN_GP", "PROD_NAZ", serie1 & "And" & piece1)

te falta un espacio antes del AND y otro después:

KAIXO = DLookup("DATE_BEGIN_GP", "PROD_NAZ", serie1 & " And " & piece1)

2º/KAIXO = DLookup("DATE_BEGIN_GP", "PROD_NAZ", "[CD_SERIE] = " & Me.TexSerieCAL And "[CD_PIECE] = " & Me.Texpiezacal)

Te falta encadenar el AND con el valor del campo texSerieCAL, y te sobran las comillas dobles que pones después del AND:

KAIXO = DLookup("DATE_BEGIN_GP", "PROD_NAZ", "[CD_SERIE] = " & Me.TexSerieCAL & " And [CD_PIECE] = " & Me.Texpiezacal)

1 respuesta más de otro experto

Respuesta
2

Si los datos son texto el criterio es

...=Dlookup("loquesea","nombretablaoconsulta","Nombrecliente='" & me.txtseriecal & "'"), es decir apostrofe comillas & y cierra & comillas apostrofe comillas

Si txtseriecal es numérico

...=Dlookup("loquesea","nombretablaoconsulta","CD_serie=" & me.txtseriecal & "")

No hace falta que encierres CD_serie entre corchetes

En el caso de dos criterios uno numérico(txtseriecal) y otro texto(texpiezacal) sería

....=dlookup("loquesea","nombretablaoconsulta","CD_serie=" & me.texseriecal & " and CD_pieza='" & me.texpiezacal & "'")

En caso de que la variable fuera fecha sería

...=Dlooukp("loquesea","nombretabla","fechaventa=#" & me.txtfecha & "#")

Hola gracias por responder:

Vale, antes se me ha olvidado escribir pero el DATE_BEGIN_GP es de tipo Date y texseriecal y texpiezacal son tipo numérico. He intentado de las dos formas como numérico y como texto ya que la primera no me ha funcionado. También he mirado en la tabla para ver si había guardado mal pero  estaban bien por lo  que no se donde está el fallo.

Ahora tengo así el código:

... = DLookup("DATE_BEGIN_GP", "PROD_NAZ", "CD_SERIE=" & Me.TexSerieCAL & "" And "CD_PIECE=" & Me.TexSerieCAL & "")

Gracias otra vez

ANA

En principio te sobra unas comillas delante de CD_piece

Mira, si tengo la tabla (bendita sea la base Neptuno, no te fijes en las fechas, son antiguas, pero es lo mismo)

Recuerda la fecha de la flecha.

Si tengo un formulario

Escribo 81 y pulso Enter y 

Como puedes ver ha buscado la fecha(aunque personalmente lo haría con combinados) El código del evento Después de actualizar del cuadro mde texto TexPiezaCal es

Private Sub TexPiezaCal_AfterUpdate()
Resultado = DLookup("date_begin_gp", "pedidos", "CD_SERIE=" & Me.TexSerieCal & " And CD_PIECE=" & Me.TexPiezaCal & "")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas