Access - Error 3061 VBA Access Recordset

 
Vista:

Error 3061 VBA Access Recordset

Publicado por Rochelo (2 intervenciones) el 11/06/2016 15:09:35
He creado un Recordset

Dim Rst3 As DAO.Recordset

Set Rst3 = CurrentDb.OpenRecordset("SELECT TOP 1 * FROM tbl_AlmacenIngreso WHERE IdMedicamentos=" & Rst1!IdMedicamento & " ORDER BY Id DESC")

Dice: Se ha producido el error "3061 en tiempo de ejecución. Pocos parámetros. Se esperaba 2.

El campo Rst1!IdMedicamento es texto y está dentro de un bucle para que cambie el filtro al parecer el problema está en el WHERE, estoy programando en VBA access y mi motor de base de datos es en MySQL.
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
sin imagen de perfil

Error 3061 VBA Access Recordset

Publicado por JCHIGUER (65 intervenciones) el 15/07/2016 03:47:02
Hola!
Espero te sirva lo que te voy a decir, el error se debe a que en tu sentencia SQL llamas a un valor de un recordset Rst1!IdMedicamento que no esta definido
Dim Rst3 As DAO.Recordset... deberia ser Dim Rst3, Rst1 As DAO.Recordset, si este tambien es un recordset que se usa en tu procedimiento, por otra parte, no dices como pones en memoria el valor a comparar en la segunda sentecia, lo que te recomendaria es que si tienes otro recordset, encuentrasen valor y despúes lo llamas en otra sentencia SQL de otro recorset, lo mandes a una variable y para abrir el segundo recordset lo hagas mediante la variable
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
sin imagen de perfil

Error 3061 VBA Access Recordset

Publicado por Enrique Heliodoro (1664 intervenciones) el 15/07/2016 20:21:28
El problema es que no estas tratando al dato como un texto, lo tratas como numero (o si fuera otro caso) como una variable.

Access EXIGE que se le indique el tipo de dato (texto/numero/fecha), las variables podriamos decir que se 'auto-definen' casi siempre.


Modifica esta parte (para que Access interprete el dato como un dato Alfanumerico):

..... WHERE IdMedicamentos='" & Rst1!IdMedicamento & "' ORDER BY Id DESC")

Lo que esta en negrita (y subrrayado para que destaque mas) son unas comillas simples (no se puede utilizar la doble comilla, porque esta define al conjunto de la expresion)
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