Идеально ли использовать тип файла .MDB над типом файла .ACCDB? - PullRequest
0 голосов
/ 17 апреля 2019

Я использую несколько макросов, которые выполняют команды чтения и записи в MS Access, используя DAO в Excel. Мой текущий тип файла - .MDB. Я столкнулся с повреждением базы данных после 2 недель чтения и записи в MS Access. Ранее я ссылался на Microsoft DAO 3.6 Object Library, но переключился на Microsoft Office 16.0 Access database engine Object Library. Может ли моя база данных быть повреждена из-за типа файла и типа соединения, или из-за неправильной ссылки на библиотеку? Я предоставляю код, используемый для загрузки и извлечения данных из MS Access.

Загрузить таблицу из MS Access в Excel

Sub loadData()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim qdf As DAO.QueryDef

Set db = OpenDatabase("Z:\UBPB CRM Project\pbsbackup.mdb")
Set qdf = db.QueryDefs("pbsload")
qdf!pbsbranch = initialLogin.ComboBox1

Set rst = qdf.OpenRecordset

If rst.EOF Then
    rst.Close

End If

    Do

Sheet3.Range("A8").CopyFromRecordset rst
    Loop Until rst.EOF

rst.Close

Set rst = Nothing

End Sub

Добавление записи из пользовательской формы Excel в MS Access

Sub AddnewRecord()

Dim db As Database
Dim qdf As QueryDef

Application.StatusBar = "Connecting to PBS Database......"
Set db = OpenDatabase("Z:\UBPB CRM Project\pbsbackup.mdb")
Set qdf = db.QueryDefs("addclient")


Application.CalculateUntilAsyncQueriesDone

Application.StatusBar = "Uploading Client Data to PBS server...."
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

    qdf!pbsbranch = Sheet4.Range("A2")
    qdf!pbsclient = addnewClient.client
    qdf!pbspriority = addnewClient.priority_
    qdf!pbscontact = addnewClient.contact
    qdf!pbsresult = addnewClient.result
    qdf!pbsnextsteps = addnewClient.segmentType
    qdf!pbsattempts = addnewClient.Label11
    qdf!pbsnotes = addnewClient.notes


qdf.Execute dbFailOnError


qdf.Close

Application.StatusBar = "Upload Successful!"

Set qdf = Nothing
Set cdb = Nothing

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Обновление записи из пользовательской формы Excel в MS Access

Sub pbsupdate()
Dim db As Database
Dim qdf As QueryDef

Application.StatusBar = "Connecting to PBS Database......"
Set db = OpenDatabase("Z:\UBPB CRM Project\pbsbackup.mdb")
Set qdf = db.QueryDefs("pbsupdate")

Application.StatusBar = "Uploading Client Data to PBS server...."
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

    qdf!pbskey = dialer.key
    qdf!pbsclient = dialer.client
    qdf!pbspriority = dialer.priority_
    qdf!pbssource = dialer.priority
    qdf!pbslastcontact = dialer.contact
    qdf!pbsresult = dialer.result
    qdf!pbsnextsteps = dialer.segmentType
    qdf!pbsattempts = dialer.Label11 + dialer.Label11 + 1
    qdf!pbsnotes = dialer.notes


Application.CalculateUntilAsyncQueriesDone

    qdf.Execute dbFailOnError

qdf.Close
db.Close
Application.StatusBar = "Upload Successful!"

Set qdf = Nothing
Set cdb = Nothing

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...