Как создавать и вызывать на печать и просмотр отчёты?
Вопрос:
На Access 2002 (XP) создана база данных типа:
1. номер
2. информация
Существует запрос (при запуске запроса на выполнение, нужно ввести интересующий нас номер):
SELECT таблица.номер, таблица.информация
FROM таблица
WHERE ((таблица.номер)=[введите?])
Так же создан отчет на основании запроса. При запуске отчета, сначала запрашивается "номер", а затем формируется отчет согласно критерию запроса.
Каким образом можно вызвать отчет из VB программы (на печать, на просмотр)?
Как изменить код вызова отчета, если у конечного пользователя Access 97?
Какими другими средствами построения отчета можно воспользоваться для решения искомой задачи (построение отчета на основе выборки (с возможностью подведения итогов))?
Ответ:
Для того, чтобы сделать это в VB программе откройте меню
Project|References, выберете там Microsoft DAO 3.x, нажмите Ok. Для
выборки данных такой код:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
Dim sNumber As String
Set db = DAO.OpenDatabase ("C:\имяфайла.mdb") 'здесь, если нужно можно установить
'параметры открытия базы данных
sNumber = InputBox ("Введите")
If sNumber = "" Or IsNumeric (sNumber) = False Then
MsgBox "Неправильный номер"
Exit Sub
End if
sSQL = SELECT таблица.номер, таблица.информация FROM таблица WHERE таблица.номер=" & sNumber & ";"
Set rs = db.OpenRecordset (sSQL) 'Здесь можно задать параметры открываемого рекордсета
Выборка в рекордсете rs. Для того, чтобы достать оттуда данные нужно воспользоваться его свойством Fields, в качестве параметра устанавливается либо название поля, информация которого получаем, либо номер поля (отсчёт с нуля). Перемещение по записям - методы MoveFirst, MoveNext, MovePrevious, MoveLast объекта rs. Количество записей - св-во RecordCount.
Для генерации отчётов есть специальные инструменты. Сам я с ними не работал. Насколько я знаю, самый распространённый из них - Crystal Reports.
Подробнее о работе с базами данных можно почитать здесь:
http://www.vbnet.ru/articles/showarticle.asp?id=40
Сурменок Павел
|