2011-03-26 31 views
12

Tengo la siguiente línea 'set recordset' que no puedo ponerme en funcionamiento. Los parámetros parecen correctos según toda la ayuda disponible que puedo encontrar sobre el tema.Error en tiempo de ejecución '3061'. Muy pocos parámetros Esperado 1. (Access 2007)

El error aparece:

"Error tiempo de ejecución '3061' muy pocos parámetros esperados 1.".

Aquí es la línea de código:

Set rs = dbs.OpenRecordset("SELECT Centre_X, Centre_Y FROM [qry_all_details] 
WHERE ID = " & siteID & ";", dbOpenSnapshot) 

Where rs is the recordset (Dim rs As Recordset) and dbs = CurrentDb() 

se agradecería cualquier ayuda.

He intentado eliminar la causa WHERE sin ningún efecto, y también utilizando comillas simples entre comillas dobles, pero sin alegría.

Muchas gracias.

+0

¿Esta consulta está abriendo una parametrizada? Quizás esté esperando un valor ... –

+1

No estoy seguro de si vale la pena señalarlo, pero su "línea" de código, al menos tal como la ingresó, ocupa dos líneas. ¿Es correcto o es solo el formato aquí en SO? – Oneide

Respuesta

1

Asegúrese de que [qry_all_details] exista y pueda ejecutarse. Sospecho que o cualquier consulta que utiliza, falta el parámetro.

0

¿La consulta tiene más que el parámetro siteID, lástima pues si desea ejecutar la consulta de un parámetro de brujas todavía no está lleno le da el error

37

"error en tiempo de ejecución '3061'. Muy pocos parámetros . Esperado 1. "

Creo que esto sucede cuando los nombres de campo en su consulta sql no coinciden con los nombres de campo de la tabla, es decir, un nombre de campo en la consulta es incorrecto o tal vez la tabla falta el campo por completo.

+7

Oh, bueno ESO es un mensaje de error intuitivo lol – Hill

+0

Esto me estaba causando el error – Pat

+0

Demasiados parámetros, esperado X significa que los nombres de los campos X que utilizará en su instrucción SQL no están disponibles. Principalmente errores tipográficos cuando se escriben líneas de código SQL a mano, sobre todo cuando se utilizan bases de datos que pueden tener múltiples "versiones" de la misma, una base de datos tiene esos campos, una base de datos no tiene. Prefiero comprobar si los campos están disponibles con un código simple: http://forums.devarticles.com/microsoft-access-development-49/check-if-a-field-exists-in-a-table- using-vba-58559.html –

2

Mi problema resultó ser que había alterado una tabla para agregar una columna llamada Char. Como es reserved word in MS Access, necesita brakcets cuadrados (las comillas simples o dobles no son buenas) para que la sentencia alter funcione antes de que yo pueda actualizar la columna recién creada.

+0

Char es una palabra reservada en Access como "Fecha", "Tiempo", "Ahora" y otras "Funciones" cuando usa los Paréntesis para todos sus campos en su consulta SQL. está bueno para ir –

1

Recibí el mismo mensaje de error antes. en mi caso, fue causado por el tipo de fundición. comprueba si ID de sitio es una cadena, si es así, debes agregar comillas simples.

Espero que te ayude.

10

tiene:

WHERE ID = " & siteID & ";", dbOpenSnapshot) 

que necesita:

WHERE ID = "'" & siteID & "';", dbOpenSnapshot) 

Nota las citas adicionales ('). . .esto me mata cada vez que

Editar: Añadido faltante comillas dobles

4

Mi problema también fue resuelto por las comillas simples alrededor del nombre de la variable

1

Tengo el mismo error con algo como:

Set rs = dbs.OpenRecordset _ 
(_ 
    "SELECT Field1, Field2, FieldN " _ 
    & "FROM Query1 " _ 
    & "WHERE Query2.Field1 = """ & Value1 & """;" _ 
, dbOpenSnapshot _ 
) 

Solucioné el error reemplazando "Query1" con "Query2"

0

En mi caso, recibí este error cuando traté de usar en una consulta una nueva columna, que agrego ed a la tabla MySQL (vinculada a MS Access), pero no la actualizó dentro de MS Access.

Para actualizar una tabla vinculada a distancia:

  1. abierto "Administrador de tablas vinculadas" (pestaña "datos externos" en la cinta);
  2. Seleccione una casilla cerca de la tabla que desea actualizar;
  3. Presione el botón "OK".
0

En mi caso, simplemente había cambiado la forma en que creé una tabla y cambié inadvertidamente el nombre del campo que traté de consultar. Asegúrese de que los nombres de campo que hace referencia en la consulta realmente existan en la tabla/consulta que está consultando.

Cuestiones relacionadas