Access - Error 3061 "Pocos parámetros"

   
Vista:

Error 3061 "Pocos parámetros"

Publicado por max_3333 (4 intervenciones) el 27/11/2007 19:57:00
Hola,

Tengo el siguiente código:

Dim RS As DAO.Recordset
Dim K as Byte

K = 2

Set RS = CurrentDb.OpenRecordset("SELECT FECHA, ABONOS, CARGOS, SALDOS, CUENTA FROM tbl_movimientos WHERE CUENTA = K " & "ORDER BY FECHA;")

El problema es que me da "error 3061 en tiempo de ejecución: pocos parámetros. Se esperaba 1"

En cambio si sustituyo la K por un 2 funciona correctamente:

Set RS = CurrentDb.OpenRecordset("SELECT FECHA, ABONOS, CARGOS, SALDOS, CUENTA FROM tbl_movimientos WHERE CUENTA = 2 " & "ORDER BY FECHA;")

Lo que busco es que el campo CUENTA se filtre por el valor de la variable K.

Agradezco cualquier sugerencia...gracias.
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:Error 3061

Publicado por Enrique (1299 intervenciones) el 27/11/2007 21:19:40
Prueba con este pequeño cambio después de...... Where Cuenta =, porque no es lo mismo usar una variable que un dato fijo, en este caso numérico.

Set RS = CurrentDb.OpenRecordset("SELECT FECHA, ABONOS, CARGOS, SALDOS, CUENTA FROM tbl_movimientos WHERE CUENTA =" & K & "ORDER BY FECHA;")

Creo que así debe de funcionar.

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

RE:Error 3061

Publicado por max_3333 (4 intervenciones) el 28/11/2007 10:51:34
Muchas gracias Enrique, funciona perfectamente.

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

RE:Error 3061

Publicado por Anel Soledad (1 intervención) el 26/07/2011 20:55:11
Hola tengo el mismo problema, no me muestra los datos en el MSFlexGrid , yo estoy manejando un Data en el formulario... y asi esta mi codigo

Dim sql As String

MSFlexGrid1.Visible = True
MSFlexGrid1.Cols = 3
MSFlexGrid1.FormatString = " |Mes |Monto|"
MSFlexGrid1.ColWidth(1) = 1500
MSFlexGrid1.ColWidth(2) = 1500

Data1.RecordSource = "SELECT pago.mes,pago.monto FROM clientes, pago, cliente_pago WHERE clientes.idCliente = cliente_pago.idCliente and pago.idPago = clientes_pago.idPago and clientes.idClientes=i and pago.pagado = 0; "
Data1.Refresh

MSFlexGrid1.DataSource = Data1


pero no funciona... Ayuda por favorr
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:Error 3061

Publicado por javier (1 intervención) el 06/08/2010 17:54:43
pone "k" o &'"k'"&
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:Error 3061

Publicado por pablo (1 intervención) el 14/05/2016 02:24:26
muy buenas noches tengo un problema con este error aqui les paso la programacion que hice tengo un problema pero no lo encuentro les agadeceria mucho su alluda desde lla muchas gracias


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub txtbusqueda_Change()
Me.dtaproductos.RecordSource = "select *from Productos  where Codigo like '*" & Me.txtbusqueda.Text & "*'"
Me.dtaproductos.Refresh
If Me.dtaproductos.Recordset.EOF Then
   Me.dtaproductos.RecordSource = "select *from Productos  where Producto like '*" & Me.txtbusqueda.Text & "*'"
    Me.dtaproductos.Refresh
   If Me.dtaproductos.Recordset.EOF Then
      Me.dtaproductos.RecordSource = "select *from Productos where Precio like '*" & Me.txtbusqueda.Text & "*'"
      Me.dtaproductos.Refresh
    If Me.dtaproductos.Recordset.EOF Then
       Me.dtaproductos.RecordSource = "select *from Productos where Proveedor like '*" & Me.txtbusqueda.Text & "*'"
       Me.dtaproductos.Refresh
       If Me.dtaproductos.Recordset.EOF Then
          Me.dtaproductos.RecordSource = "select *from Productos where Stock like '*" & Me.txtbusqueda.Text & "*'"
          Me.dtaproductos.Refresh
          If Me.dtaproductos.Recordset.EOF Then
             Me.dtaproductos.RecordSource = "select *from Productos where Fecha like '*" & Me.txtbusqueda.Text & "*'"
             Me.dtaproductos.Refresh
           End If
       End If
    End If
  End If
End If
 
 
End Sub
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:Error 3061

Publicado por Enrique Heliodoro (1663 intervenciones) el 15/05/2016 23:21:02
Poner el numero de error (sin el mensaje aclaratorio que suele acompañarle) es la primera barrera para una respuesta.
Es probable (y eso se debería ver en tiempo de ejecución o viendo el diseño de las tablas), que el error se trate de que a todos los campos se les trata como texto (y el precio o el Stock, suele ser numérico), el caso mas llamativo es la aplicación sobre el campo de fecha ¿también es texto?

La segunda es que no se explica el propósito (parece que si no localiza un dato en un campo, va a por el siguiente criterio de filtro, el mismo dato en otro campo)

Esa construcción tiene algunas lagunas:
La utilización de la propiedad TEXT y el evento Change le forzaran a ejecutar el bucle cada vez que se introduzca un carácter (será una búsqueda lenta y pesada).

Recorrer el bucle se puede sustituir por la cuenta de sus registros (una forma mas rápida de conocer si devuelve resultados)
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