Создание и связывание новой таблицы в бэкэнде с использованием VBA в веб-интерфейсе - PullRequest
0 голосов
/ 06 февраля 2019

Я использую VBA в моем внешнем интерфейсе Access для создания новой таблицы в своем бэкэнде Access, затем связываю таблицу с моим внешним интерфейсом.Таблица и индекс созданы успешно, но я все время получаю ту же ошибку, говоря, что сервер использует другой пользователь, когда я пытаюсь создать связанную таблицу во внешнем интерфейсе.Как я могу это исправить.Я делал это несколько раз в прошлом для этого проекта, но внезапно он больше не хочет работать.

Я попытался сначала создать таблицу в бэкэнде, а затем добавить значения в таблицу,затем закройте соединение с базой данных сервера и снова подключитесь к нему, затем передайте ссылку на интерфейс.Нет GO, та же ошибка снова и снова.Я единственный человек, имеющий доступ к обоим файлам.Бэкэнд даже не показывает заблокированный файл, но все равно говорит, что я не могу получить к нему доступ.

Private Sub Command1_Click()
On Err GoTo errExit
Dim dbs As DAO.Database
Dim DB_PATH As String
Dim strConn As String

    DB_PATH = DLookup("BackendDirectory", "Link_Save")
    strConn = "MS Access;PWD=" & BE_PASSWORD & ";DATABASE=" & DB_PATH
    Set dbs = OpenDatabase(DB_PATH, True, False, strConn)

'Create table tbl_Client_Type

        dbs.Execute "CREATE TABLE tbl_Client_Type (Client_Type_ID COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, " & _
                                        "Client_Type TEXT(100) NOT NULL);"

        dbs.Execute "CREATE INDEX Client_Type_ID ON tbl_Client_Type (Client_Type_ID ASC);"

        DoEvents: 
        dbs.Execute "INSERT INTO tbl_Client_Type (Client_Type) VALUES ('Motor')"
        dbs.Execute "INSERT INTO tbl_Client_Type (Client_Type) VALUES ('Sail')"
        dbs.Execute "INSERT INTO tbl_Client_Type (Client_Type) VALUES ('Other')"
        DoEvents:

        'dbs.Close
        'Set dbs = Nothing
        'Set dbs = DBEngine.OpenDatabase(DB_PATH, True, False, strConn)
        DoEvents:

        DoCmd.TransferDatabase acLink, "Microsoft Access", DB_PATH, acTable, "tbl_Client_Type", "tbl_Client_Type"

        DoEvents:
        RefreshLinkedTable "tbl_Client_Type"
        Application.RefreshDatabaseWindow

    dbs.Close
    Set dbs = Nothing

errExit:
   Debug.Print Err.Number
    Debug.Print Err.Description

End Sub

Ошибка времени выполнения 3045 "Не удалось использовать« База данных », файл уже используется

Файл не используется и файл блокировки laccdb отсутствует

1 Ответ

0 голосов
/ 06 февраля 2019

Попробуйте открыть базу данных shared :

Set dbs = OpenDatabase(DB_PATH, False, False, strConn)
...