Access VBA экспортирует отчет в другую базу данных доступа, изменяет формат отчета - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть основная база данных Access 2016, которую я использую для контроля версий и исправления ошибок. После завершения исправления иногда я создаю базу данных для копирования необходимых исправлений в базу данных пользователей. Недавно у нас возникла проблема, когда формат отчета в моей базе данных отличается от базы данных пользователей после исправления. Как и почему формат отчета изменяется при экспорте из одной базы данных в другую? Проблема заключается в ширине текстового поля в отчете об изменениях, которая затем выходит за рамки. Любая помощь по этому вопросу? Мой код ниже для передачи отчетов.

Public Function FixDB()
Dim sDBName As String
Dim fF As Object
Dim tdf As TableDef
Dim qdf As QueryDef

sDBName = SelectFile

For Each tdf In CurrentDb.TableDefs
    If tdf.Attributes = 0 Then
        DoCmd.TransferDatabase acExport, "Microsoft Access", sDBName, acTable, tdf.Name, tdf.Name, False
    End If
Next

For Each qdf In CurrentDb.QueryDefs
    If Left(qdf.Name, 1) <> "~" Then
        DoCmd.TransferDatabase acExport, "Microsoft Access", sDBName, acQuery, qdf.Name, qdf.Name, False
    End If
Next

For Each fF In CurrentProject.AllReports
    DoCmd.TransferDatabase acExport, "Microsoft Access", sDBName, acReport, fF.Name, fF.Name, False
Next
MsgBox "UPDATES COMPLETE!", vbOKOnly, "UPDATES"
DoCmd.Quit
End Function


Public Function SelectFile()
Dim sEXT As String
Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogFilePicker)
sEXT = "*.accdb"
With fd
    .AllowMultiSelect = False
    .InitialFileName = sEXT
    .title = "Select the Database to Repair"
    If .Show Then
        SelectFile = .SelectedItems(1)
    Else
        'stop execution if nothing selected
    End If
End With

    Set fd = Nothing
End Function

Таблицы и запросы передаются просто отлично, меняются только отчеты.

Спасибо, Пэт

...