powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно узнать, какая база запущена? MDB или ACCDB?
9 сообщений из 9, страница 1 из 1
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713516
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня задача в которой есть диалог подключения баз. Веду я её в формате MDB, а затем конвертирую в ACCDB. Так надо. (Одни клиенты работают с форматом MDB, а другие с ACCDB). Из MDB можно подключаться только к MDB, а из ACCDB - к MDB и ACCDB. И это надо учитывать в программе. Можно ли программно определить версию работающего файла? Версию именно базы, а не Access? Вроде что-то такое как-то проскальзывало.

Моё решение пока такое. Получаю полный путь к рабочей базе. Отрезаю расширение файла и анализирую его. Если присутствует ACCD - значит 12 версия, если нет, то MDB.

А может есть другой способ?

-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713529
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss,

А что говорит свойство "CurrentDB.Name"? Там ведь полное название файла. Ну так посмотрите расширение файла. Не вариант?
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713540
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
?currentdb.Version 


У меня получается "4.0" для mdb и "12.0" для ACCDB

А вот что в справке
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
The following table shows which version of the database engine was included with various versions of Microsoft products.

Database Engine Version (year released) Microsoft Access Microsoft Visual Basic Microsoft Excel Microsoft Visual C++ 
Microsoft Jet 1.0 (1992) 1.0 N/A N/A N/A 
Microsoft Jet 1.1 (1993) 1.1 3.0 N/A N/A 
Microsoft Jet 2.0 (1994) 2.0 N/A N/A N/A 
Microsoft Jet 2.5 (1995) N/A 4.0 (16-bit) N/A N/A 
Microsoft Jet 3.0 (1995) ‘95 (7.0) 4.0 (32-bit) ‘95 (7.0) 4.x 
Microsoft Jet 3.5 (1996) ‘97 (8.0) 5.0 ‘97 (8.0) 5.0 
Microsoft Jet 4.0 (2000) 2000 (9.0)  2000 (9.0)  
Microsoft Access database engine 12.0 (2007) 2007    
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713541
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JossВерсию именно базы, а не Access?CurrentDB.Properties("AccessVersion")?
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713549
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
studierenJoss,

А что говорит свойство "CurrentDB.Name"? Там ведь полное название файла. Ну так посмотрите расширение файла. Не вариант? Я же описал точно такой же способ авторПолучаю полный путь к рабочей базе. Отрезаю расширение файла и анализирую его. Если присутствует ACCD - значит 12 версия, если нет, то MDB. А полное имя можно получить несколькими способами. Например
Код: plaintext
   CurrentProject.FullName
Нашлось целых два решения
Код: vbnet
1.
?currentdb.Version

выдаёт 12.0
Код: vbnet
1.
?currentproject.FileFormat

выдаёт 12

А вот
Код: vbnet
1.
?CurrentDB.Properties("AccessVersion")

для ACCDB выдаёт 09.50 а для MDB выдаёт 08.50 что то тут не совсем понятно. Тестировалось в Access 2010, формат базы MDB - 2000
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713561
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Провёл тестирование
Оператор ?currentdb.Version
для MDB 2000 - 4.0
для MDB 2002-2003 - 4.0
для ACCDB - 12.0

Оператор ?currentproject.FileFormat
для MDB 2000 - 9
для MDB 2002-2003 - 10
для ACCDB - 12

Оператор ?CurrentDB.Properties("AccessVersion")
для MDB 2000 - 08.50
для MDB 2002-2003 - 09.50
для ACCDB - 09.50

Получается, что более точно формат базы определяет оператор ?currentproject.FileFormat
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713577
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ещё ссылки, где обсуждали похожую проблему
http://www.sql.ru/forum/312058/kak-opredelit-versiu-mdb
https://qa-help.ru/questions/kak-programmno-uznat-versiyu-access-v-kotoroy-sozdavalas-bd

Всем спасибо за помощь.
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713615
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss https://qa-help.ru/questions/kak-programmno-uznat-versiyu-access-v-kotoroy-sozdavalas-bd Да! Сильно. Найти в сети на каком-то сайте ответ на вопрос (собстна весь тред) стащенный с этого подфорума.
Как программно узнать версию Access, в которой создавалась БД?
...
Рейтинг: 0 / 0
Программно узнать, какая база запущена? MDB или ACCDB?
    #39713626
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам заметил, что с этого форума. Просто Яндекс в поиске его первым выплюнул.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно узнать, какая база запущена? MDB или ACCDB?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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