Страницы: 1
RSS
Синхронизация с базой, которая доступна только для чтения.
 
Есть большая база, которая доступна только для чтения.  
Нужно создать новую базу данных, с выборочными критериями, например, по типу прибора. При этом нужно каждый раз при открытии новой базы данных проверять изменения в большой базе данных и вносить эти изменения в новую базу.  
Вопрос: как это лучше сделать?
 
Может, через MS Query?  
И обновлять при открытии файла запрос прописать.
Кому решение нужно - тот пример и рисует.
 
Можно вообще не файл открывать, а сам запрос.
 
Вот например - предварительно положите базу как c:\Temp\post_356731.xls  
Эапрос запускать просто даблкликом (если конечно всё в системе правильно настроено).  
Потестить в сетке нет возможности.  
Запрос писался мастером MSQuery.
 
Спасибо. У меня не установлен Access, поэтому файл "АСПТ" не запустился.  
С MS Query пока что не работал, но если это самый простой способ, то придется начать изучать.
 
Не уверен, что для работы запроса нужен Access - скорее всего должен быть установлен MSQuery.  
Попробуйте открыть этот файл Экселем - у меня работает и таким образом.  
Ну а править запрос можно и блокнотом (например поменять путь к файлу и условие отбора легче в блокноте).  
 
Ну а способ это вероятно действительно самый простой.
 
Попытке запустить файл из Excel появляется окно с ошибкой:  
[microsoft][Драйвер ODBC Excel] Объект "Лист1$" не найден ядром СУБД Microsoft Access. Убедитесь, что объект существует, а его имя и путь к нему указаны правильно....
 
Предлагаю упростить условие задачи: Найти новые элементы в двух столбцах, находящихся в разных таблицах.
 
Excel_master  
Можно у вас поинтересоваться, что вы написали в файле "АСПТ" после установки MSQuery?
 
Ясно - значит нужен Access.  
Насчёт "упростить" - думаю всё же проще не искать новые, а сделать всю выборку заново. Это и логически понятно, что должно быть проще.  
Т.к. чтоб найти новые - это надо прочитать и запомнить все старые, затем прочитать всю базу (ну или читать последовательно), сравнивать со старыми и писать новые к старым. Ну ещё и фильтровать в процессе.  
Другое дело - если уже отобранные ранее могут в базе больше не быть, а нам нужно сохранить старое и добавить новое.  
Но и такую задачу можно решить запросом по обоим базам - хотя я по запросам пас, тут есть специалисты...  
Хотя можно написать код и на словарях/массивах - но задача пока расплывчата... Из того, что вижу - самое простое и думаю правильное это запрос.
 
Hugo  
Вы ошибаетесь - Access не нужен. Драйвер баз данных может работать и без оболочки Access. Скорее всего или ошибка в пути, имени файла или неверное название листа. Предполагаю, что Excel_master применил изменения в "АСПТ" для получения данных из своей "базы, которая доступна только для чтения". Если, конечно, установил MSQuery
 
Ну если ошибка была "не найден ядром СУБД Microsoft Access" - то что-то из Access ставить нужно. Вероятно голым Экселем не обойдёшься.  
Другое дело, что может быть с установкой компонента MSQuery ставятся и компоненты Access - я уже не помню, как там что ставилось, у меня всюду всё работает...  
Я предпологал, что Excel_master сперва должен был попытаться запустить запрос на том файле, на котором я его писал. По логике...  
Проверил сегодня на работе - работает на 2003 (дома работало на 2007).
 
MSQuery я пока не устанавливал. И, если честно, хоть это и проще я бы воздержался от его применения по соображению "чем меньше компонентов в системе, тем она надежнее".
 
MSQuery можно и не устанавливать - у меня на работе как оказалось оно и не установлено (или она?), расширение ассоциировано с Экселем (Microsoft Office Excel ODBC Query files).  
Но писать запрос тогда вероятно придётся в блокноте.
Страницы: 1
Читают тему
Наверх