Код VBA для создания отчета в MS Access - PullRequest
1 голос
/ 28 июня 2010

Может ли кто-нибудь помочь мне создать насыщение кода, которое позволит мне создать отчет с оператором 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 ]

1 голос
/ 28 июня 2010

Если отчет уже основан на, скажем,

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

(Нет смысла использовать ORDER BY с отчетом, вы должны использовать собственные свойства отчета и группировки)

Вы можете использовать аргумент Where в OpenReport:

DoCmd.OpenReport "ReportName", acViewPreview, , "ZBASED.ACCT_UNIT = " & myCC _
         & " And CenterNo = " & myCC 
0 голосов
/ 28 июня 2010

Все, что вам нужно сделать, это сослаться на форму, из которой вы вызываете отчет в SQL, например

ВЫБРАТЬ foo ИЗ бара, ГДЕ foo = [Forms]! [FrmReporting]! [TxtFoo]

Затем у вас есть кнопка на frmFoo, которая открывает отчет, вы можете включить некоторую логику перед вызовом docmd.OpenReport для проверки ввода, т. Е. Убедиться, что они указали МВЗ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...