任何人都可以帮我创建一个代码声明,允许我使用下面的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;"
答案 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调用之前包含一些逻辑来验证输入,即确保他们已经输入了成本中心