Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Запрос к аксессовской БД (http://forum.oszone.net/showthread.php?t=173431)

toro 18-04-2010 02:12 1395225

Запрос к аксессовской БД
 
Поставили прикладное ПО которое работает с MDB базой. Мне доводилось общаться только с SQL БД. А тут надо срочно написать запрос к аксессовской базе, который выводит в файл (лучше rtf или xls, но можно и txt ) результаты выборки из таблицы. И главное видимо понять из чего его пользователям выполнять. То есть обычный пользователь должен ввести диапазон значений и парой кликов мышкой получить у себя файл с данными. Запустить Access и там формировать вручную отчёт будет сложно. Поэтому для меня не менее важен вопрос из чего такой запрос удобно выполнять.
Сам запрос несложный. Есть таблица tab1 в ней поля – KeysID (счётчик), Name1, Name2, Name3 …… Name10. Надо, перебирая строки для KeysID с (например) 10 по 30, вывести для каждой Name1, Name2, Name10 в следующем виде:
Наименование: «KeysID» (10)
Имя1: «Name1»
Имя2: «Name2»
Имя10: «Name10»


Наименование: «KeysID» (11)
Имя1: «Name1»
Имя2: «Name2»
Имя10: «Name10»

…..

Диапазон для KeysID пользователь будет каждый раз задавать вручную.

Delirium 19-04-2010 02:24 1395926

Цитата:

Цитата toro
Мне доводилось общаться только с SQL БД »

Ну можно настроить выгрузку из Access в SQL Server, например, каждую минуту(если база маленькая). И на основе таблицы SQL уже можно делать выгрузки и прочее.

toro 19-04-2010 16:51 1396270

Вместе с Access по моему ставится какая-то урезанная версия sql. Только в утановленных программах она не видна.

Честно говоря, всё равно видимо придётся пользователю выполнять скрипт в QA или EM. Так как автоматический запрос не подходит. В программе могут работать и постоянно и один раз в неделю. Просто как только поработал в программе необходимо делать выгрузку из БД в файл. При этом пользователь должен вручную задать диапазон строк (значений) для выгрузки.

А в VBA это можно сваять? Правда никогда не пользовал его.

Delirium 20-04-2010 01:35 1396590

Делается форма, на которой будет 2 текстовых поля. Сохраняется форма под любым именем, например, Form1. Далее создается запрос, который будет иметь все поля из таблицы для выводаю В условиях KeysID в конструкторе ставим:
Between [Forms]![Form1]![Поле0] and [Forms]![Form1]![Поле2]
Сохраняем запрос.
Далее создаем на форме кнопку, ставим условие - выполнить программу. В открывшемся окне пишем ровно три строки:
Код:

DoCmd.OpenQuery "Query1", acViewNormal, acReadOnly
DoCmd.RunCommand acCmdOutputToExcel
Application.Quit

Первая строка - выполняет наш запрос с параметрами
Вторая - выгружает в Excel
Третья - Закрывает Access

По поводу выгрузки в Excel можно почитать по ссылкам ниже:

http://www.vbforums.com/showthread.php?t=376693
http://www.bigresource.com/MS_ACCESS...-K55g3551.html
http://www.access-programmers.co.uk/...ad.php?t=99512

Можно сделать выгрузку в TXT файл, с разделителями - запятой.

Delirium 20-04-2010 01:44 1396591

Вложений: 1
Во вложении пример.

toro 21-04-2010 16:09 1397775

Delirium, спасибо. Пробую.


Время: 06:30.

Время: 06:30.
© OSzone.net 2001-