Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
При работе с БД Access в VBA можно использовать DAO или ADO
Но в простом варианте - создав таблицу и форму для работы с ней можно вообще не использовать VBA

Но как работает сам Access с собственными БД? Через DAO ADO или вообще какой-то родной механизм?
20 май 21, 21:30    [22324986]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7354
А как работает EXCEL с книгами(своими файлами)?
Кстати VBA там тоже имеется
20 май 21, 21:48    [22324994]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
sdku,

Ну все таки когда Вы работаете в VBA с объектной моделью Excel-а то файл у вас открыт, занят приложением Excel и все идет одним способом, т.е. с этим же файлом вы не работает через другие драйверы, а если например желаете работать с Excel-ом из какого стороннего средства, то работаете с ним в тот момент, когда другой кто-то с ним не работает (можно работать черезх драйвер прямо с файлом без привлечения Excel а можно отдавать команды Excel-у)

С Access-ом же другая история. Он что то делает сам, но и в VBA можно по разному работать. И как все это совмещается, какие могут быть конфликты и прочее

Я как-то не смог найти какого-то четкого описания существа этого вопроса, потому то и спросил

Сообщение было отредактировано: 20 май 21, 22:07
20 май 21, 22:14    [22325007]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
Ну собственно разобрался
Access довольно универсально работает в этом смысле
Если кратко то ADO
Если совсем старый то DAO (но можно для новых тоже принудительно можно указать)
20 май 21, 22:24    [22325022]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7354
lks1965,
А Вы попробуйте удалить библиотеку Visual Basic или одноименную с используемой офисной программой и посмотрите что ответит программа. А без DAО или ADO (они не подключены по умолчанию) все прекрасно работает

Сообщение было отредактировано: 21 май 21, 12:59
21 май 21, 13:06    [22325245]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21200
Используемые встроенным кодом объекты идентичны (во всяком случае, на первый взгляд, по набору свойств, методов и пр., и вообще по дублированию имён типов) таковым в DAO.
21 май 21, 13:39    [22325263]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
Да я поэксперементировал
Получается
DAO
- имеется в Microsoft DAO 3.6 ObjectLibrary
- продублировано в Microsoft Access XX.0 Database Engine ObjectLibrary т.е. объекты DAO вполне видны в VB независимо от того какая из этих библиотек подключена

ADO надо подключать специально

Среда т.е. сам Access работает совершенно независимо от того что подключаешь

Для проверки я отключил все ссылки кроме (их не отключишь)
Visual Basic ForApplication
Microsoft Access 16.0 ObjectLibrary

Сама среда работает позволяет создавать таблицы формы и прочее
Но в VB уже ничего не видно ни nbgf данных Recordset (как свойство Me он есть) ни других специфических для БД вещей
21 май 21, 15:17    [22325327]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5238
lks1965
Для проверки я отключил все ссылки кроме (их не отключишь)
ссылки что тут перечислены, никакого отношения к самому приложению не имеют.
21 май 21, 22:02    [22325538]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
Панург,

Так и есть
Без всяких этих ссылок во вновь созданной БД имеются как CurrentDB (DAO) так и CurrentProject.AccessConnection (это уже ADO)
22 май 21, 01:20    [22325604]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5238
lks1965
Без всяких этих ссылок во вновь созданной БД имеются как CurrentDB (DAO) так и CurrentProject.AccessConnection (это уже ADO)
и это тоже не имеет отношения. ИМХО, хоть VBA и глубоко интегрирован в офисные приложения, я очень сильно сомневаюсь, то всё что ты видишь через IDE имеет большое отношение к самому приложению. Сужу по другим приложениям (не MS), куда было интегрировано VBA.
22 май 21, 06:14    [22325614]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
Я не до конца понимаю такой момент (отчего и возник вопрос)

Вот я сделал таблицы, описал схему БД, и сделал формы всякие. Все работает... хорошо...
Но наступает момент, когда я хочу что то долелать свое - обработку какую то и прочее. Для этого использую VBA.

И вопрос собственно возникает такой

Сам Access как-то обращается к БД.

И в VBA я например использую CurrentDB (это DAO), что то делаю а потом моя деятельность вступает в некий конфликт с работой самого Access-а через ADO. Ну или наоборот Access использует ADO а я внутри VBA DAO

Не есть ли в этом всем потенциальная возможность конфликтов доступа к БД
22 май 21, 13:21    [22325671]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7354
lks1965,
если в коде что-то написано с использованием библиотеки DAO а она окажется не подключенной (такое иногда случается при работе базы на другом компьютере)возникнет ошибка(аналогично с ADO).А о том как работает ACCESS досконально понимают работники Microsoft (да и то далеко не все)
22 май 21, 14:24    [22325684]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7354
Да,коллеги, поясните такой момент: начиная с 2007 DAO, но какая-то неполноценная, подключена по умолчанию-это так или я ошибаюсь ?
22 май 21, 14:41    [22325688]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5238
sdku
какая-то неполноценная
Почему? Вполне. Просто сменилась библиотека. И драйвер. Раньше был Jet, теперь Ace.
22 май 21, 17:23    [22325720]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7354
Я сталкивался с такой "проблемой-непоняткой", что при открытии 2007 БД созданной в 2003 DAO была missing. Может потому что в 2003 по-умолчанию была ADO-это так(причем иногда-может это просто такая БД)?

Сообщение было отредактировано: 22 май 21, 20:57
22 май 21, 20:57    [22325760]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
По крайней мере в 2019 Access получается так, что вновь созданная БД имеется рекордсеты к примеру на формах именно что типов DAO. Потом их можно поменять (через VBA) на рекордсеты ADO, но вначале создается именно DAO (хотя элементы от ADO тоже присутствуют)

И вообще в книгах к примеру по Access 2002 (Гетца) утверждалось, что DAO уступает дорогу ADO и отправляется на покой, но вот потом тональность поменялась и в книге к примеру "Microsoft.Access.2010.Programmers.Reference" говорится, что эти ожидания были преждевременны...

а потом MS вообще встроила DAO Из книги "Access® 2016 Bible"- In recent versions, Microsoft has revived DAO by building it into the Access Database Engine(в последних версиях Microsoft возродила DAO, встроив его в компонент Access Database Engine)
Да и вообще удаление из Accessа к примеру системы безопасности явно свидетельствует о его заточенности на таки локальные вещи

В рамках того что меня интересовало, я понял как устроено
Ну а для большинства тех, кто имеет солидный опыт это все это не имеет такого уж большого значения

Сообщение было отредактировано: 22 май 21, 21:46
22 май 21, 21:48    [22325765]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
Eolt
Member

Откуда:
Сообщений: 1843
lks1965
Но как работает сам Access с собственными БД? Через DAO ADO или вообще какой-то родной механизм?


Через Microsoft Jet Database Engine
22 май 21, 22:01    [22325770]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
vmag
Member

Откуда: MP
Сообщений: 4036
Мне так сдается, что сам акцесс написан на языке низкого уровня типа си, и главная его роль - выполнение функции интерпретатора явного VB(а) и не явного VB (макросы) + он имеет кучу прибамбасов типа dao, ado, контролов и т.д. + встроенный jet для работы со своим форматом БД и инструменты для MS Sql (adp)... ну если в кратце, то в интерпретатор по максимуму встроили классический VB, а чтоб не задавали вопросов типа а нахрена, заточили всё это под работу с БД добавив запросы и отчеты + Добавили VBA в весь пакет офиса для сопряжения ... Типа вот вам небольшие настольные БД (mdb) и серьезные кому нужно - ковыряйте adp под MS Sql... Потом ветер дул в разные стороны, в результате имеем то, что имеем... Единственное что радует - деградация сильно растянута по времени... но ставки падают год от года...

Сообщение было отредактировано: 23 май 21, 00:15
23 май 21, 00:17    [22325787]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
lks1965
Member

Откуда:
Сообщений: 15
vmag,

Да наверное что то такое

И скажу, что в качестве локальной БД средней сложности (особенно если нужно (как мне) взаимодействие со всякими ms офисными вещами эксел, ворд, visio), которую взял да понес или переслал куда-то думаю конкурентов у него маловато.
23 май 21, 00:24    [22325788]     Ответить | Цитировать Сообщить модератору
 Re: Сам MS ACCESS через что работает с собственными БД  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5238
Eolt
Через Microsoft Jet Database Engine
уже Access Control Entries (ACE)
23 май 21, 07:54    [22325798]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить