visual ejemplos codigos vba ms-access access-vba ms-access-2007

ejemplos - vba access pdf



Filtrar una consulta de informe (1)

Sigue siendo un programador de acceso inicial aquí. Intentando que el informe funcione. Esto es lo que estoy haciendo

Primero creé un informe usando el Asistente de informes usando la siguiente consulta como entrada

SELECT EmployeeId, Project, StartDate FROM Tasks;

Tengo un formulario en el que selecciono el ID de empleado. Quiero filtrar el informe según la identificación del empleado seleccionada. Esto es lo que tengo para invocar el informe

DoCmd.OpenReport "rptEmpWork", acViewPreview, "qryEmpReport", "EmployeeId = " & strempid

qryEmpReport es el nombre de la consulta que contiene la consulta del informe que mencioné anteriormente. El strempid contiene el valor que se seleccionó en el formulario. Sin embargo, cuando me muevo para ejecutar esto, me induce a ingresar de nuevo la identificación del empleado. ¿Alguna idea de por qué estoy recibiendo esto? He validado para asegurarme de que strempid contiene el valor seleccionado anteriormente.


Supongo que Tasks.EmployeeId es tipo de datos de texto. Si mi conjetura es correcta, agregue cotizaciones alrededor del valor que usted proporciona para EmployeeId :

DoCmd.OpenReport "rptEmpWork", acViewPreview, "qryEmpReport", "EmployeeId = ''" & strempid & "''"

De acuerdo con nuestro ejercicio de solución de problemas en los comentarios, creo que debería tener la oportunidad de examinar el valor de cadena real que le está dando a OpenReport para su argumento WhereCondition . (Es mejor ver la cadena actual en lugar de tratar de imaginar cómo se ve).

Dim strWhereCondition As String strWhereCondition = "EmployeeId = ''" & strempid & "''" Debug.Print "strWhereCondition ->" & strWhereCondition & "<-" DoCmd.OpenReport "rptEmpWork", acViewPreview, "qryEmpReport", strWhereCondition

Ver el resultado de Debug.Print en la ventana Inmediato; Ctrl + g te llevará allí.