Porównaj ceny domen i usług IT, sprzedawców z całego świata

Sprawdź, czy istnieje żądanie przy użyciu VBA


Mam procedurę w języku VBA, która uruchamia raport na podstawie tego, co użytkownik wybiera z listy rozwijanej (nazwa raportu i kryteria grupowania) w formularzu. Mam również przycisk, za pomocą którego ten niestandardowy wybór można przenieść do programu Excel.
Część procedury, w której chcę sprawdzić, czy żądanie istnieje, znajduje się poniżej:
If Not IsNull(Me.cmbGroup.Value) Or Me.cmbGroup.Value = "" Then strSQL = "SELECT * FROM qryCrossTotGroup WHERE [Group]='" & Me.cmbGroup.Value & "'"
'MsgBox strSQL With MyDatabase
.QueryDefs.Delete ("tmpOutQry")
Set MyQueryDef = .CreateQueryDef("tmpOutQry", strSQL)
End With 'Step 3: Open the query
Set MyRecordset = MyDatabase.OpenRecordset(strSQL) 'Step 4: Clear previous contents
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
With xlApp
.Visible = True
.Workbooks.Add
.Sheets("Sheet1").Select 'Step 5: Copy the recordset to Excel
.ActiveSheet.Range("A2").CopyFromRecordset MyRecordset 'Step 6: Add column heading names to the spreadsheet
For i = 1 To MyRecordset.Fields.Count
xlApp.ActiveSheet.Cells(1, i).Value = MyRecordset.Fields(i - 1).Name
Next i
xlApp.Cells.EntireColumn.AutoFit
End WithEnd If

Chcę sprawdzić, czy istnieje żądanie „tmpOutQry”, aby je usunąć. Czy ktoś ma taki wiersz kodu?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie korzystasz z tymczasowego żądania, więc możesz skrócić swoje pierwsze kroki, aby:
strSQL = "SELECT * FROM qryCrossTotGroup WHERE [Group]='" & Me.cmbGroup.Value & "'"
'MsgBox strSQL'Step 3: Open the query
Set MyRecordset = MyDatabase.OpenRecordset(strSQL)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wypróbowałem ten kod i zadziałało:
With MyDatabase
For Each MyQueryDef In CurrentDb.QueryDefs
If MyQueryDef.Name = "tmpOutQry" Then .QueryDefs.Delete ("tmpOutQry")
Exit For
End If
Next Set MyQueryDef = .CreateQueryDef("tmpOutQry", strSQL)
End With

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się