powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сбор сведений в основную БД
22 сообщений из 22, страница 1 из 1
Сбор сведений в основную БД
    #39293641
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравтсвуйте. Такой вопрос. Как можно организовать сбор данных в основную БД из нескольких файлов БД, абсолютно идентичных по структуре.

Существует несколько БД с абсолютно одинаковой структурой таблиц. Всё до невозможного просто. Заполняются поля и всё по сути. Данных довольно много. Существует Основная БД. файлы присылаются по электронке и есть необходимость из этих файло *mdb все данные собирать в основнуб БД. И по возможности, чтобы они не плюсовались всегда в неё (с каждым новым файлом, его будут присылать ежемесячно), а просто добавлялись новые. Такое возможно? подскажите. Заранее спасибо огромное за отзывы. MS Access 2003.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293642
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего прилинковать пример базы, которую присылают, создать необходимые запросы, которые вытаскивали бы только новые данные. Затем при получении нового файла просто перелинковываем таблицы на новый файл и запускаем запросы извлечения данных.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293643
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно также не перелинковывать, а использовать копию присланного файла, которая заменяла бы предыдущий обработанный файл
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293644
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно. Как раз занимаюсь похожей задачей для торговой сети. Понимаю, что делаю довольно топорно, но работает нормально. Наберусь опыта - сделаю изящнее )
Соображения по поводу вашего вопроса.
Если у вас есть несколько БД с "абсолютно одинаковой структурой таблиц", которые вы планируете собирать в одну базу, то вам надо решить предварительно несколько вопросов.
Вы хотите все-все-все таблицы из каждой базы кидать в общую? Или какие то итоговые таблицы-выборки? Данные будут собираться в одну общую таблицу (таблицы), или для каждой исходной базы будет создана и вестись своя уникальная таблица - типа для База1 - Tab1, База2 - Tab2, Tab3...TabN?
Если в общие таблицы - то вам надо продумать уникальные идентификаторы для каждой из исходных баз, что бы потом в общей куче вы могли определить, "чья чьё". Тут удобно использовать составные ключевые поля в таблицах. Например "ДатаЗаписи" + "ИдентификаторБазы" (например - База1, База2)+IDЗаписи.
Насколько будет автоматизирована передача и обработка? У меня, например, данные передаются через транзитный файл (который потом передаётся по емейлу или на флешке). Исходная база в него загружает свои данные, база-получатель забирает. Понятное дело, желательно и удобно "накрутить" алгоритмы проверки наличия каталога, файла в каталоге, таблиц в файле, очистки транзитного файла. Далее уже обработка принимаемых данных в самой базе. Просто сразу запросом на добавление, или же с какой то предварительной проверкой правильности данных. Например - проверка на пустые поля, даты вне диапазона, нечаянно вставленные цифры в фамилии и так далее.
Ну и сжатие потом обязательно. Желательно - автоматом.
После чего - сделать формы, отчёты для выборки и просмотра нужных данных.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293648
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База сама до простого простая. Там простые не замороченные поля. Никаких связей. По поводу вычислений. Надо просто забирать данные из одного, например файла с таблицей в другой файл т такой же таблицей, без каких либо вычислений. Запросы будут производиться уже в основной таблице. Задача просто автоматизированно взять данные из одного файла (таблицы) и получить в основную другой файл с такой же точно таблицей.
Уже сделали запрос, который передаёт из файла источника в файл основной, но их 10 файлов каждый месяц. И надо каждый раз писать запрос в каждой из 10ти баз....это не то...
Знаю, что как то полюбому можно сделать запрос (SQL) в основной таблице и он будет вытягивать данные из этих файлов...Фиг с ним, пусть даже каждый раз нам будут присылать новую БД (т.е. там на местах будут каждый месяц начинать новую, чистую таблицу), хотя хотелось бы конечно, чтобы записи хранились всегда на местах в одной БД (файле)....
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293651
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь я так думаю есть какой то sql запрос для импорта данных из файлов....
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293653
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так пробуйте. Технологию в общих чертах рассказали, будут конкретные вопросы - пишите.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293655
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Попробовал)

Конекретный вопрос. Есть ли скелет запроса SQL, который импортирует данные в основную таблицу из многих файлов? Запрос должен находиться в основной базе. Спасибо!
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293676
й
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeySA,


Код: sql
1.
2.
3.
4.
5.
6.
INSERT INTO Главная_таблица (Select * From 1КопияИзКоторойВставляем
                             union 
                             Select * From 2КопияИзКоторойВставляем
                             union 
                             Select * From 3КопияИзКоторойВставляем
                             );
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293686
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вам точно нужно вставлять из нескольких одинаковых таблиц одновременно ? Как я понял, файлы с одинаковой структурой таблиц приходят в письмах и их можно обрабатывать по очереди, не цепляя таблицы из разных файлов к главной базе одновременно
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293691
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeySAфайлы присылаются по электронке

Это ключевой момент - значит есть интернет...
Можно делать обмен данными через сервер с MySql
В точке: подключился, прилинковал, запросом залил.
В офисе: подключился, прилинковал, получил.
Можно делать принудительно, можно автоматизировать по событиям или расписанию, используя флаги, состояние счетчиков и т.д.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293697
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
INSERT INTO Главная_таблица (Select * From 1КопияИзКоторойВставляем
union
Select * From 2КопияИзКоторойВставляем
union
Select * From 3КопияИзКоторойВставляем
);

вот спасибо попробую, что то вроде......

сервера нет sql

таблица в базе всего одна с данными.........
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293722
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShinА вам точно нужно вставлять из нескольких одинаковых таблиц одновременно ? Как я понял, файлы с одинаковой структурой таблиц приходят в письмах и их можно обрабатывать по очереди, не цепляя таблицы из разных файлов к главной базе одновременно
конечно не обязательно прям одновременно......можно и отдельно могу в основной таблице, куда должны стекаться данные написать 10 запросов и пусть они из 10 файлов получают данные....главное, чтобы всё это в таблице приёмнике были запросы....и по возможности обновлялись, а не добавлялись каждый раз
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293725
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут ещё одно. я несколько профан в sqlююююмогу понимать принципы, но сделать не....так, что и обратился за готовым как бы запросом.....т.е. структурой.....пути сам вставлю конечно все
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293737
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeySAнаписать 10 запросов
Зачем писать 10 запросов? Напишите один, который вытаскивает данные из одного файла, а затем файл подменяйте новым и запускайте тот же запрос.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293748
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinЗачем писать 10 запросов? Напишите один, который вытаскивает данные из одного файла, а затем файл подменяйте новым и запускайте тот же запрос.
Зачем выполнять дополнительные действия в файловой системе, выходя за рамки оболочки? проще использовать динамически строящийся запрос, получив список файлов для обработки через, скажем, FSO или CommonDialog.FileOpenDialog...
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39293870
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Лично я бы сделал через перелинковку таблиц после выбора конкретного файла и/или пакетную обработку всех файлов в директории, но, боюсь, ТС будет сложновато это сделать, гораздо проще "подсунуть" файл в определенное место с определенным именем и запустить запрос.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39294303
SergeySA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShinAkina,

Лично я бы сделал через перелинковку таблиц после выбора конкретного файла и/или пакетную обработку всех файлов в директории, но, боюсь, ТС будет сложновато это сделать, гораздо проще "подсунуть" файл в определенное место с определенным именем и запустить запрос.

Да думаю, что скорее всего так пробовать.....
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39294354
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinЛично я бы сделал через перелинковку таблиц после выбора конкретного файла и/или пакетную обработку всех файлов в директории
Ну перелинковывать или динамически строить запрос - это уже не так важно. Перелинковка мне просто не нравится тем, что файл может быть удалён, и тогда при запуске и работе могут возникнуть ненужные проблемы и ошибки. А динамический не сохраняемый в статике (хотя пусть бы даже и сохраняемый - просто не надо пытаться его выполнить, явно или неявно) запрос выполнился и забылся.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39294373
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда стоит упомянуть, что можно через SQL обращаться к таблицам во внешних фалах без прилинковки как к обычным таблицам:
Код: sql
1.
SELECT * FROM [C:\PathToFile\MyDatabase.accdb].[MyTable];


Может кто-то не знает.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39294416
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinТС будет сложновато это сделать, гораздо проще "подсунуть" файл в определенное место с определенным именем и запустить запрос.А что в этом варианте плохого? У меня лежат эти шаблоны по известному адресу, таблицы всегда прилинкованы (при запуске линкуется всё). Экспорт/импорт данных включённых в выборку делается в этот файл. И всё.
Если пользователи удалили файл, то он будет восстановлен.
...
Рейтинг: 0 / 0
Сбор сведений в основную БД
    #39294449
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinможно через SQL обращаться к таблицам во внешних фалах без прилинковки как к обычным таблицамНу говоря о динамически строящемся запросе, я в основном именно это - указание внешнего файла в качестве источника данных,- и имел в виду.
Разве что для именно таблицах в других Аксессовских БД лучше использовать специальный штатный синтаксис
Код: sql
1.
2.
3.
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, …]]}     
FROM tableexpression [, …] [IN externaldatabase]
[WHERE… ]     [GROUP BY… ]     [HAVING… ]     [ORDER BY… ]     [WITH OWNERACCESS OPTION]
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сбор сведений в основную БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]