用于在MS Access中创建报告的VBA代码

时间:2010-06-28 02:22:04

标签: ms-access vba

任何人都可以帮我创建一个代码声明,允许我使用下面的sQ语句创建一个报告吗?我遇到的问题是我的表单允许您输入成本中心,但是当我单击命令按钮执行代码时,它会要求我在显示报告之前再次输入成本中心。我希望不再需要再次进入成本中心,只需从表格中输入即可。

Private Sub CmdCC_Click()

Set mydb = CurrentDb

myCC = txtCC.Value

If IsNull(myCC) Or myCC = "" Then
   MsgBox "Please enter a Cost Center!", vbCritical + vbOKOnly, pTitle

End If

 sQ = "SELECT ZBASED.ACCT_UNIT, CenterName, ZBASED.ACCOUNT, ZBASED.ACCOUNT_DESC " & _
    "FROM ZBASED, CCtable " & _
    "WHERE (ZBASED.ACCT_UNIT = " & myCC & ") And (CenterNo = " & myCC & ") " & _
    "ORDER BY ZBASED.ACCOUNT;"

2 个答案:

答案 0 :(得分:1)

如果报告已基于say,

SELECT ZBASED.ACCT_UNIT, CenterName, 
ZBASED.ACCOUNT, ZBASED.ACCOUNT_DESC 
FROM ZBASED, CCtable 

(对报告使用ORDER BY没有意义,您必须使用报告自己的Oder& Grouping属性)

您可以使用OpenReport的Where参数:

DoCmd.OpenReport "ReportName", acViewPreview, , "ZBASED.ACCT_UNIT = " & myCC _
         & " And CenterNo = " & myCC 

答案 1 :(得分:0)

您所要做的就是在SQL中引用您正在调用报表的表单,例如

SELECT foo FROM bar WHERE foo = [Forms]![frmReporting]![txtFoo]

然后你在frmFoo上有一个打开报告的按钮,你可以在docmd.OpenReport调用之前包含一些逻辑来验证输入,即确保他们已经输入了成本中心