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:

1
2
3
4
5
6
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:

1
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.
1
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

1
2
3
4
5
6
7
8
9
10
11
12
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
sin imagen de perfil

RE:Error 3061

Publicado por Enrique Heliodoro (1664 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
sin imagen de perfil
Val: 3
Ha aumentado su posición en 22 puestos en Access (en relación al último mes)
Gráfica de Access

RE:Error 3061

Publicado por Jesus (1 intervención) el 07/04/2020 12:21:46
Una pregunta yo tengo este codigo y me marca el mismo error es para un punto de venta al usar el nombre del producto como codigo de barras para la venta

1
2
3
4
5
6
7
8
9
10
11
12
Dim RS As DAO.Recordset
Dim SQL As String
 
SQL = "SELECT * FROM PRODUCTOS WHERE DESC_PRODUCTOS = '" & codBarraProd & "'"
 
Set RS = " & CurrentDb.OpenRecordset(SQL) & "
 
If RS.BOF And RS.EOF Then
    MsgBox "Verifique codigo de barras, Producto no Existe", vbOKOnly, "No existe Codigo"
    Me.txtCodigoArt.Value = ""
    Me.txtCodigoArt.SetFocus
    Exit 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 Anonimo (3316 intervenciones) el 07/04/2020 23:12:03
El error es que no creo que Access entienda lo que se desea hacer.

Si tenemos una SQL que define a un subconjunto, la forma de generar un recordset basado en esos datos seria así:

1
Set RS = CurrentDb.OpenRecordset(SQL)


Otro planteamiento podría ir en la línea de verificar que hay datos y de no haberlos no se abre el recordset.:

1
2
3
4
5
6
7
8
9
10
11
12
'Se cuentan los registros que cumplen esas condiciones
IF DCount("*", "Productos", "DESC_PRODUCTOS = '" & codBarraProd & "'") = 0 Then
' el resultado es cero, no hay datos validos, se avisa, se limpia y se sale
..
.
Exit Sub
End IF
 
'Si hay registros llega a este punto y se puede cargar el recordset
Set Rs = CurrentDb.OpenRecordset("SELECT * FROM PRODUCTOS WHERE DESC_PRODUCTOS = '" & codBarraProd & "'")
 
……
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jhonattan
Val: 308
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Error 3061 "Pocos parámetros"

Publicado por Jhonattan (123 intervenciones) el 08/04/2020 14:33:54
Pero K deberia de ser entero y no byte osea dim K as integer
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

Error 3061 "Pocos parámetros"

Publicado por Anonimo (3316 intervenciones) el 08/04/2020 16:43:01
En el mensaje de fecha: el 07/04/2020 12:21:46

No aparece ninguna 'K', (aparece en el mensaje: el 27/11/2007 19:57:00, pero es otro contexto)
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