powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
13 сообщений из 13, страница 1 из 1
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020776
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Понадобилось программно на VBA создать БД Access. VBA особо не знаю, нашёл готовый код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub DBCreate()
   Dim accessApp As Access.Application
   Set accessApp = New Access.Application
   Access.DBEngine.CreateDatabase "C:\DB.accdb", DB_LANG_GENERAL
   accessApp.Quit
   Set accessApp = Nothing
End Sub
   


Выдаёт ошибку 3051: "Ядро СУБД Microsoft Access более не может открыть файл или записать в него данные. Файл уже открыт другим пользователем для монопольного доступа, либо требуется разрешение на просмотр и запись данных".
Решения этого момента не нашёл. Находил неработающий способ решения, а именно изменить
Код: vbnet
1.
 DB_LANG_GENERAL


на
Код: vbnet
1.
dbLangGeneral


Выдаёт ошибку "ошибочный аргумент"
Прошу помочь откорректировать VBA-код для программного создания БД.
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020786
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысёк,

попробуйте так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Sub CreateNewBase(newDb$)
Dim oAccess  As Object
    Set oAccess = CreateObject("Access.Application")    'Create a new Access instance
    With oAccess
        .NewCurrentDatabase (newDb)
       .CloseCurrentDatabase
    End With
Set oAccess = Nothing
End Sub


...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020792
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko, благодарю за решение, но нужно чтобы имя и путь файла были прописаны программно, а БД сразу закрывалась после создания, либо вообще не открывалась. А данный код работает так, что пользователю необходимо самому ввести имя файла.
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020799
stu314
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
access 2002\2003

Dim tmpWS As DAO.Workspace, tmpDB As DAO.Database

Set tmpWS = DAO.DBEngine.CreateWorkspace("workspace", "user", "password", DAO.dbUseJet)
Set tmpDB = tmpWS.CreateDatabase(NEW_DB_NAME, dbLangCyrillic, dbVersion40)
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020816
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stu314
access 2002\2003

Dim tmpWS As DAO.Workspace, tmpDB As DAO.Database

Set tmpWS = DAO.DBEngine.CreateWorkspace("workspace", "user", "password", DAO.dbUseJet)
Set tmpDB = tmpWS.CreateDatabase(NEW_DB_NAME, dbLangCyrillic, dbVersion40)

Compile error: user-defined type not defined
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020827
stu314
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а дао в ссылках включено ?
этот кусок кода уже более 10 лет нормально работает :)
используется для временных запросов - создание наборов данных вне основной мдб
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020830
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stu314
а дао в ссылках включено ?

Не знаю где это дао и что это
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020833
stu314
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
microsoft dao 3.6 object library в references
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020835
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stu314, у меня аксцесс 2016, может там это не будет работать, вы же пишите, что это для 2002 - 2003?
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020837
stu314
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020843
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stu314, ругается на строчку
Код: vbnet
1.
Set tmpWS = DAO.DBEngine.CreateWorkspace("workspace", "user", "password", DAO.dbUseJet)


"Недопустимое имя учетной записи или пароль"
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020847
stu314
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
естественно :) надо реальные значения user и password прописывать или admin и пустую строку если их нет
...
Рейтинг: 0 / 0
Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
    #40020851
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё получилось! Спасибо за помощь!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Программно создать БД. Ядро СУБД Microsoft Access более не может открыть файл.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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