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

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

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

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

А что говорит свойство "CurrentDB.Name"? Там ведь полное название файла. Ну так посмотрите расширение файла. Не вариант?
...
Рейтинг: 0 / 0
05.10.2018, 13:00
    #39713540
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно узнать, какая база запущена? MDB или ACCDB?
Код: 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
05.10.2018, 13:01
    #39713541
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно узнать, какая база запущена? MDB или ACCDB?
JossВерсию именно базы, а не Access?CurrentDB.Properties("AccessVersion")?
...
Рейтинг: 0 / 0
05.10.2018, 13:17
    #39713549
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно узнать, какая база запущена? MDB или ACCDB?
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
05.10.2018, 13:42
    #39713561
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно узнать, какая база запущена? MDB или ACCDB?
Провёл тестирование
Оператор ?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
05.10.2018, 13:56
    #39713577
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно узнать, какая база запущена? MDB или ACCDB?
Вот ещё ссылки, где обсуждали похожую проблему
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
05.10.2018, 14:38
    #39713615
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно узнать, какая база запущена? MDB или ACCDB?
Joss https://qa-help.ru/questions/kak-programmno-uznat-versiyu-access-v-kotoroy-sozdavalas-bd Да! Сильно. Найти в сети на каком-то сайте ответ на вопрос (собстна весь тред) стащенный с этого подфорума.
Как программно узнать версию Access, в которой создавалась БД?
...
Рейтинг: 0 / 0
05.10.2018, 14:58
    #39713626
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программно узнать, какая база запущена? MDB или ACCDB?
Сам заметил, что с этого форума. Просто Яндекс в поиске его первым выплюнул.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно узнать, какая база запущена? MDB или ACCDB? / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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