【问题标题】:Access DoCmd.OpenReport Where condition issue访问 DoCmd.OpenReport Where 条件问题
【发布时间】:2016-06-05 17:42:23
【问题描述】:

我正在尝试打印报告,例如发票。但我对 Cmd.OpenReport 函数有疑问。

我有一个带有参数的发票查询。

SELECT EMPLEADOS.CODIGO, EMPLEADOS.NOMBRE, PAGOS.Fecha, PAGOS.Descripcion,
       CONCEPTOS.Descripcion, DETALLE_PAGOS.Monto
FROM ((EMPLEADOS INNER JOIN PAGOS ON EMPLEADOS.CODIGO = PAGOS.EmpleadoID)
      INNER JOIN DETALLE_PAGOS ON PAGOS.IDPago = DETALLE_PAGOS.IDPago)
      INNER JOIN CONCEPTOS ON CONCEPTOS.ConceptoID = DETALLE_PAGOS.Concepto
WHERE PAGOS.IDPago = [COD_PAGO];

我将此查询与报告结合在一起。当我打开报告时,我必须输入发票的 ID。

没关系。但是我必须用Form来打印这个报告,我已经创建了一个Button来打印,代码是

Private Sub txtPrint_Click()
If MsgBox("¿Deseas imprimir?", vbYesNo) = vbYes Then
    //OTHER FUNCTIONS

    DoCmd.OpenReport "ReportePago", acViewPreview, , "[COD_PAGO]=" & IDPago.Value

End If

结束子

IDPago.Value -> 我有一个隐藏的文本框来存储发票的 ID。 但是当我再次点击打印按钮时,会出现消息框

如果我插入发票的 id,打印报告,但我不想插入要打印的 id。我该怎么做才能解决这个问题?

谢谢。

【问题讨论】:

  • stackoverflow.com/questions/14937954/… 的可能重复项:OpenReport 需要在其“where”参数中包含 WHERE 子句,而不仅仅是参数。
  • 是的,我试着去做。 DoCmd.OpenReport "ReportePago", acViewPreview, , "IDPago=" & IDPago.Value 并删除查询的where条件

标签: sql forms ms-access


【解决方案1】:

从查询中删除 WHERE 子句,在结果集中包含 PAGOS.IDPago 列,然后将不带表别名的条件传递给 OpenReport

DoCmd.OpenReport "ReportePago", acViewPreview, , "IDPago=" & IDPago.Value

【讨论】:

  • 对不起,我是新手。如何在结果集中包含 PAGOS.IDPago?
  • SELECT PAGOS.IDPago, EMPLEADOS.CODIGO, EMPLEADOS.NOMBRE, ...
猜你喜欢
  • 1970-01-01
  • 2020-08-23
  • 2020-03-04
  • 1970-01-01
  • 2014-08-11
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多