MS Access 2003 - информация из формы вывода в текстовый файл - PullRequest
1 голос
/ 02 октября 2009

Итак, у меня есть эта форма с множеством текстовых полей, полей со списком и т. Д. В модуле формы есть VB, который проверяет наличие дубликатов, а затем запускает несколько запросов на обновление, чтобы сохранить информацию в таблицах. , Все это прекрасно работает.

У меня вопрос, какой метод VB я могу использовать в этом модуле форм, чтобы взять информацию из всех этих объектов (txt, cmb и т. Д.) И вывести / сохранить ее в текстовом файле?

Я бы просто использовал в качестве примера форму со следующими тремя текстовыми полями:

Text1 - String
Text2 - Date
Text3 - True/False

Я знаю vb для добавления этого в таблицы базы данных, но я хочу сохранить информацию в текстовом файле, а затем использовать метод SendObject, чтобы разрешить отправку этих текстовых файлов по электронной почте из поля в HQ, а затем помещается в больший дБ.

Перспективный sendobject. Я думаю, что у меня есть довольно хорошая ручка для этой части, просто нужно выяснить, как создать текстовый файл с данными в нем. Спасибо за помощь!

Ответы [ 3 ]

2 голосов
/ 02 октября 2009

Вы хотите открыть текстовый файл и использовать операторы write # или print #. Зайдите в Access VBA и поищите в справке по записи. Вы найдете оператор Write #, который даст вам необходимый пример кода. Вы можете захотеть распечатать заявление # в зависимости от ваших требований.

2 голосов
/ 02 октября 2009

вы можете перебирать набор элементов управления в форме, получить имя элемента управления и использовать регистр выбора, чтобы получить тип элемента управления и получить из него соответствующее значение.

эти пары вы можете записать в строковый / текстовый файл, который затем может быть включен в тело письма.

В качестве альтернативы используйте Access DoCmd.SendObject

DoCmd.SendObject acSendQuery, QueryName, acFormatXLS, emailAddress, "", "", "Form Data", "", 0

Где QueryName - это запрос, который извлекает всю необходимую информацию. это отправит его в виде вложенного файла XLS на электронную почту.

1 голос
/ 03 октября 2009

Ваши элементы управления, текстовые поля, выпадающие списки и т. Д. Привязаны к набору записей? В этом случае, вы бы не предпочли посылать связанные записи таблицы кому-либо или чему-либо, а не собирать значения элемента управления через текстовый файл? Я имею в виду, что это можно сделать, но я действительно нахожу это странным!

РЕДАКТИРОВАТЬ: после комментариев @galleySlave одна идея будет заключаться в написании кода, подобного этому:

Dim m_dataInForm as string, _
    m_control as control

m_dataInForm = "Page Header"
for each m_control in screen.activeForm.section(1)
    m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf
Next m_control
m_dataInForm = "Details"
for each m_control in screen.activeForm.section(o)
    m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf
Next m_control
m_dataInForm = "Page footer"
for each m_control in screen.activeForm.section(2)
    m_dataInForm = m_dataInForm & m_control.caption & ": " & m_control.value & vbCr & vbLf
Next m_control

m_dataInForm будет содержать заголовок всех данных (.caption) и значение (.value). Вам может понадобиться дополнительный код, чтобы избежать ошибок в элементах управления, которые не имеют заголовка (например, строки) или значений (например, метки), и / или чтобы получить значение в ожидаемом формате («Да» вместо -1). Это будет стоить вам несколько дополнительных инструкций, таких как

SELECT CASE m_control.controlType

После этого вы сможете отправить значение m_dataInForm либо в текстовом сообщении, либо сохранить его как файл где-нибудь.

...