Передача параметра в отчет из формы - PullRequest
3 голосов
/ 23 февраля 2012

Я относительно новичок в Access 2010. Я создал небольшую базу данных CRM / Invoicing для практики и использования некоторое время. Я использовал много примеров из Northwind для изучения, но я не совсем понимаю передаваемые параметры.

У меня есть две таблицы для данных счета-фактуры (индекс и данные), причем PK в таблице индексов - это фактический номер счета-фактуры, который увидит клиент, а также FK в таблице данных. Я настраиваю запрос и заставляю свой отчет работать со всеми элементами и итогами и настраивать его в отчете. Если вы вызываете отчет напрямую, для номера счета-фактуры запрашивается параметр (PK в таблице индексов)

Что я сейчас хочу сделать, так это поместить кнопку в моей форме счета-фактуры в «Просмотр счета-фактуры» и передать в отчет параметр «InvoiceNumber» из таблицы «Invoice_Index», чтобы мне не предлагалось ввести каждый раз, когда я хочу просмотреть Счет / Отчет, нажав кнопку "Просмотреть Счет" в моей форме.

Ответы [ 2 ]

3 голосов
/ 23 февраля 2012

Рассмотрим метод DoCmd.OpenReport . Это позволит вам указать WhereCondition при открытии отчета. И WhereCondition будет работать как предложение WHERE в запросе.

Таким образом, если в вашей форме есть текстовое поле с именем txtInvoiceNumber, которое содержит InvoiceNumber для фильтрации отчета, и если имя соответствующего поля в источнике записи отчета - InvoiceNumber, вы можете использовать такой код: это в случае нажатия кнопки команды в форме счета.

Dim strWhereCondition As String
strWhereCondition = "InvoiceNumber = " & Me.txtInvoiceNumber
DoCmd.OpenReport "YourReportName", , , strWhereCondition

Это должно работать, если InvoiceNumber является числовым типом данных. Если это действительно текстовый тип данных, добавьте кавычки вокруг Me.txtInvoiceNumber при построении WhereCondition .

strWhereCondition = "InvoiceNumber = '" & Me.txtInvoiceNumber & "'"

(Предполагается, что вы пересмотрите запрос, используемый отчетом, чтобы исключить существующий параметр.)

0 голосов
/ 03 апреля 2013

Чтобы объединить строки, вам нужно использовать символ & между частями, которые нужно соединить.Вы также можете объединить все эти строки в одну строку.Попробуйте явно указать, какое свойство вы хотите, а не полагаться на свойства по умолчанию.

Me.OpenReport "YourReportName", , , "InvoiceNumber = " & Me.txtInvoiceNumber.Value
...