Überprüfen ob alle Abfragen funktionieren

Moderator: ModerationP

Überprüfen ob alle Abfragen funktionieren

Beitragvon paintitblack3k » 02. Mai 2021, 21:33

Hallo,

ich habe externe Datenquelle mit meiner DB verbunden und wenn es in der Quelle veränderungen in der Datenstruktur gibt, kann dies zu Fehlern in einigen Abfragen führen und ich möchte mit VBA einfach prüfen, ob alle Abfragen funktionieren (das heißt keinen Fehler ausgibt, das Ergebnis könnt denoch 0 sein).


Mit folgendem Code habe ich versucht alle existierenden Abfragen auszulesen, aber kann mir jemand eine Tipp geben wie ich testen kann ob diese Abfragen "technisch" Fehlerfrei sind bzw. nur die ausgibt wo es ein Problem gibt (was ich mir dann manuell ansehen würde):

Code: Alles auswählen
Sub QueryAnalyzer()
    On Error GoTo ErrorHandler
   
    Dim obj As AccessObject, dbs As Object

    Set dbs = Application.CurrentData
    ' Search for AccessObject objects in AllQueries collection.
    For Each obj In dbs.AllQueries
        Abfrage = obj.Name
        'Debug.Print obj.Name
    Next obj
   
ErrorHandler:
    Debug.Print Abfrage & ":" & Err.Number
    Resume Next
   
End Sub


Vielen Dank für jeglichen Hinweis.

pib
paintitblack3k
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 87
Registriert: 01. Aug 2018, 16:06

Re: Überprüfen ob alle Abfragen funktionieren

Beitragvon Bitsqueezer » 02. Mai 2021, 22:04

Hallo,

statt "AllQueries" nimm "QueryDefs", dann kannst Du die Abfragen eben ausführen und sehen, ob es einen Fehler gibt.

Am einfachsten ist es, die Abfragen einfach komplett neu einzubinden, statt zu testen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Überprüfen ob alle Abfragen funktionieren

Beitragvon paintitblack3k » 03. Mai 2021, 17:39

Hallo,

meinst du so oder kann man die Queries auch im "Hintergrund" testen ohne sie zu öffnen:
Code: Alles auswählen
Public Sub AbfragenAuflisten()
     On Error GoTo ErrorHandler
   
    Dim db As DAO.Database
     Dim qdf As DAO.QueryDef
     Set db = CurrentDb
     For Each qdf In db.QueryDefs
         Abfrage = qdf.Name
         
        If (Abfrage = "qryIT1010_Today" Or Abfrage = "qry_ohneFehler") Then
           DoCmd.OpenQuery Abfrage
        End If

        'Debug.Print qdf.Name
     Next qdf
     Set db = Nothing

ErrorHandler:
    Debug.Print Abfrage & ":" & Err.Number & ":" & Err.Description
    Resume Next
   
End Sub


Als Ergebnis erhalte ich das hier (wobei die zweite Abfrage eigentlich keine Fehler enthält):
qryIT1010_Today:3326:Diese Datensatzgruppe kann nicht aktualisiert werden.
qry_ohneFehler:0:
qry_ohneFehler:20:Resume ohne Fehler
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
paintitblack3k
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 87
Registriert: 01. Aug 2018, 16:06

Re: Überprüfen ob alle Abfragen funktionieren

Beitragvon Bitsqueezer » 03. Mai 2021, 17:50

Hallo,

das würde auch funktionieren, wenn vor dem Error Handler ein "Exit Sub" stünde...;)

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Überprüfen ob alle Abfragen funktionieren

Beitragvon paintitblack3k » 03. Mai 2021, 23:14

Danke jetzt sieht es besser aus.

Viele Grüße

pib
paintitblack3k
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 87
Registriert: 01. Aug 2018, 16:06


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste