Ошибка выполнения 3008 при попытке выполнить запрос на удаление. Ошибка говорит, что таблица записей, которые он пытается удалить, уже открыта? - PullRequest
0 голосов
/ 07 ноября 2019

Приведенный ниже код дает мне ошибку времени выполнения, в которой говорится, что таблица уже открыта другим пользователем, когда я пытаюсь выполнить запрос на удаление. Эта ошибка удаляется только в этом запросе на удаление, когда я пытаюсь запустить его строго через vba, но если я пытаюсь запустить его вручную, он тоже работает, как задумано? Кроме того, если я закомментирую этот запрос на удаление, у меня не будет проблем?

Private Sub Command27_Click()
Dim dbs As dao.Database
Dim Response As Integer
Dim strSQL As String
Dim Query1 As String
Dim LTotal As String
    Dim Excel_App As Excel.Application 'Creates Blank Excel File
    Dim strTable As String ' Table in access

LTotal = DCount("*", "tbPrintCenter03 RequestedToPrint", "Assigned= True")

 Select Case MsgBox("There are (" & LTotal & ") record(s) selected to be 
printed." & vbNewLine & " Do you wish to continue?", vbQuestion + vbYesNo, 
"Mark as Printed?")
 'If yes is Clicked
 Case vbYes
            Assigned = True 'Changes from false to True
            Assigned_User52 = fOSUserName 'Assigns their 5&2
            Assigned_Date = Date + Time 'Gets timestamp

'Updates the Global Table in SQL
DoCmd.SetWarnings False

        DoCmd.OpenQuery "Qry_UpdateMasterfrom04", acViewNormal, acEdit
            DoCmd.OpenQuery "Qry_AppendTo05Que", acViewNormal, acEdit
                DoCmd.OpenQuery "Qry_DeletePrinted", acViewNormal, acEdit 
''Run-Time error 3006 is happening on this line of code
        DoCmd.Close acForm, "tbPrintCenter_Main", acSaveYes 'Save and Close
            DoCmd.OpenForm ("tbPrintCenter_Main") 'Opens Form
'-------------------------------------------------------------------------------
'Reference Only
'                DoCmd.GoToRecord , , acNext    'Goes to next record
'                   ' DoCmd.GoToRecord , , acNext
'-------------------------------------------------------------------------------
strTable = "tbPrintCenter05Que" 'Access Table I am trying to copy
    Set Excel_App = CreateObject("Excel.Application")
        Set dbs = CurrentDb

Dim rs As dao.Recordset
   Set rs = dbs.OpenRecordset(strTable)

    Excel_App.Visible = True

Dim wkb As Excel.Workbook
  Set wkb = Excel_App.Workbooks.Add

Dim rg As Excel.Range
Dim i As Long
  ' Add the headings
  For i = 0 To rs.Fields.Count - 1
    wkb.Sheets(1).Cells(1, i + 1).Value = rs.Fields(i).Name
  Next i

  Set rg = wkb.Sheets(1).Cells(2, 1)
  rg.CopyFromRecordset rs

   ' make pretty
   rg.CurrentRegion.EntireColumn.AutoFit
   DoCmd.OpenQuery "Qry_DeleteRecordsFrom05", acViewNormal, acEdit

   Response = MsgBox("Updated to an assigned user!", vbInformation + vbOKOnly) 
 'MsgBox Update Complete
 DoCmd.SetWarnings True
  Exit Sub

   'If no is clicked
    Case vbNo
     Response = MsgBox("No actions are performed!", vbInformation)
     Exit Sub
    End Select

  End Sub

Перейдя по предоставленной ссылке, вы увидите код, который я использую по частям. Любой совет? https://stackoverflow.com/a/58732371/10226211

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...