¿Como ejecutar una consulta con un criterio especifico en Access mediante VBA?

A todos los expertos que puedan ayudarme. No se mucho de código, pero he logrado armar una secuencia con mucho trabajo para exportar a un libro existente de Excel llamado ORDEN, la información de una consulta llamada ORDEN (también) a una hoja especifica de nombre "prueba", ya que tengo una plantilla en el mismo libro en otra hoja, que quiero llenar con los datos de esa exportación.

El problema es que la Consulta de Access tiene como criterio, un campo dado en un formulario llamado "Plantilla" dicho campo es un número único de cada trabajador, en un campo del formulario de nombre Texto17 en la plantilla se captura ese dato y la consulta debe arrojar el resultado dependiendo de ese dato.

El código lo tengo listo, pero cuando quiero ejecutarlo me aparece una dialogo de error diciendome "Pocos parametros. Se esperaba 1"

He investigado y parece que me falta definir esos parametros en el código pero no se cómo, ¿me pueden ayudar?

El código es este:

Option Compare Database
Option Explicit

Public Sub ExportToExcel()

Dim XL As Excel.Application
Dim wbORDEN1 As Workbook

Dim qdfORDEN As QueryDef
Dim rsORDEN As Recordset

Set qdfORDEN = CurrentDb.QueryDefs("ORDEN")

Set rsORDEN = qdfORDEN.OpenRecordset()

Set XL = CreateObject("Excel.application")

Set wbORDEN1 = XL.Workbooks.Open("C:\Users\USUARIO\Desktop\PROYECTO\ORDEN1.xlsx", True)

wbORDEN1.Worksheets("prueba").Cells.ClearContents

wbORDEN1.Worksheets("prueba").Cells(1, 1).CopyFromRecordset rsORDEN

XL.Visible = True

Set wbORDEN1 = Nothing

Set XL = Nothing

Set qdfORDEN = Nothing

End Sub

1 Respuesta

Respuesta

Me vas a perdonar pero no acabo de entenderte en el párrafo en que dices: "El problema es que la Consulta de Access tiene como criterio, un campo dado en un formulario llamado "Plantilla" dicho campo es un número único de cada trabajador, en un campo del formulario de nombre Texto17 en la plantilla se captura ese dato y la consulta debe arrojar el resultado dependiendo de ese dato. "

Por ello te respondo de una forma algo genérica. El error "Pocos parámetros. Se esperaba 1" quiere decir que en tu consulta ORDEN tienes un criterio que por ejemplo apunta al campo Texto17 del formulario Plantilla. Para que se ejecute correctamente debes de llamar a la consulta (o al recordset basado en ella) desde ese formulario o desde otro pero siempre que el formulario Plantilla esta también abierto. Para comprobar si toma correctamente el valor del campo en el formulario una prueba sencilla es tener abierto el formulario y ejecutar directamente la consulta. Si te devuelve valores es que está accediendo correctamente al valor del campo Texto17 del formulario Plantilla. Eso quiere decir que si desde ese formulario, o desde otro pero estando este formulario abierto, puedes ejecutar este código y el recordset se llenará con los datos que devuelva la consulta ORDEN. Si no tiene acceso al valor del campo... el resultado será el error que comentas.

En resumen, comprueba que desde donde ejecutas el código la consulta ORDEN tiene acceso al valor del campo Texto17 del formulario Plantilla.

Cordiales saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas