IntelliSense für SQL in Access: Wie neue Hilfen die Entwicklung beschleunigen

SQL in Access: Schmerzhaft ohne Unterstützung

Wenn Du mit Access arbeitest, kennst Du das:
SQL schreiben ist Trial & Error.
Kein IntelliSense. Kein Highlighting. Kein Fehlerfeedback.

Du schreibst Abfragen im SQL-Editor.
Und hoffst, dass keine Klammer fehlt.
Oder kein Tippfehler in Feldnamen steckt.

Access ist kein SSMS.
Aber es gibt Wege, SQL komfortabler zu machen.

Option 1: SQL in VBA schreiben mit Syntaxkontrolle

Ich schreibe SQL fast nur noch in VBA.
Weil ich dort mehr Kontrolle habe.
Und mir selbst Hilfen baue.

Beispiel: Komplexe SELECT-Abfrage als String

Function HoleKundenMitUmsatz() As DAO.Recordset
    Dim sql As String
    sql = "SELECT k.KundenID, k.Name, SUM(r.BetragNetto) AS Gesamt " & _
          "FROM tblKunde AS k " & _
          "INNER JOIN tblRechnung AS r ON k.KundenID = r.KundenID " & _
          "GROUP BY k.KundenID, k.Name " & _
          "HAVING SUM(r.BetragNetto) > 10000"

    Set HoleKundenMitUmsatz = CurrentDb.OpenRecordset(sql)
End Function

Du hast Syntax-Highlighting.
Du kannst Code refactoren.
Und IntelliSense bei Tabellen- und Feldnamen – wenn Du dir Helfer baust.

Option 2: Eigene SQL-Helfer bauen

Ich nutze Funktionen, die mir SQL zusammensetzen.
So hab ich weniger Tippfehler.

Function SQL_SelectKunde(Optional ByVal ID As Long = 0) As String
    Dim sql As String
    sql = "SELECT KundenID, Name, Ort FROM tblKunde"
    
    If ID > 0 Then
        sql = sql & " WHERE KundenID = " & ID
    End If
    
    SQL_SelectKunde = sql
End Function

Oder modularer Aufbau:

Function SQL_BasisKunde() As String
    SQL_BasisKunde = "SELECT KundenID, Name, Ort FROM tblKunde"
End Function

Function SQL_KundeNachOrt(ByVal ort As String) As String
    SQL_KundeNachOrt = SQL_BasisKunde() & " WHERE Ort = '" & Replace(ort, "'", "''") & "'"
End Function

IntelliSense für Funktionen gibt’s sofort.
Und Du musst nicht alles neu schreiben.

Option 3: Add-Ins und externe Tools

Access selbst kann kein IntelliSense für SQL.
Aber es gibt Drittanbieter, die helfen:

  • MZ-Tools: Code-Vervollständigung für VBA
  • SQL Server Management Studio (SSMS): Für Abfragen gegen Access-ODBC
  • Access DevTools Add-In: Intelligenter SQL-Editor (nur englischsprachig)

Wenn Du’s ernst meinst, lohnt sich ODBC zu einer echten SQL-Instanz.
Dort bekommst Du dann IntelliSense wie bei den Großen.

Option 4: Tabellenstruktur dynamisch prüfen

Du kannst Feldnamen aus der Datenbank holen.
So baust Du Dir Listen für IntelliSense im Kopf.

Sub ZeigeFelder(ByVal tabellenname As String)
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field

    Set tdf = CurrentDb.TableDefs(tabellenname)
    For Each fld In tdf.Fields
        Debug.Print fld.Name
    Next fld
End Sub

Oder als MessageBox beim Tippen:

Function Feldliste(ByVal tabelle As String) As String
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field
    Dim liste As String

    Set tdf = CurrentDb.TableDefs(tabelle)
    For Each fld In tdf.Fields
        liste = liste & fld.Name & vbCrLf
    Next fld
    
    Feldliste = liste
End Function

Dann im Direktfenster:
MsgBox Feldliste("tblKunde")

Nicht elegant. Aber hilfreich.

Option 5: SQL testen, bevor Du’s brauchst

Ich nutze diese Funktion ständig:

Function TestSQL(ByVal sql As String)
    On Error GoTo Fehler
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
    Debug.Print "OK: " & rs.RecordCount & " Datensätze"
    rs.Close
    Exit Function
Fehler:
    Debug.Print "Fehler: " & Err.Description
End Function

Damit teste ich jeden SQL-String direkt.
Kein Umweg über Abfrageeditor. Kein Ratespiel.

Fazit? Du musst es Dir bauen.

Access gibt Dir kein IntelliSense für SQL.
Aber Du kannst Dir Hilfen bauen.
Mit VBA. Mit Struktur. Mit Tools.

So wird aus Rätselraten wieder Entwicklung.

Access SQL-Editor 2025: Endlich mehr Übersicht

Seit dem Access-Update Anfang 2025 hat Microsoft nachgelegt.
Der neue SQL-Editor bringt endlich ein paar der Funktionen, auf die wir seit Jahren warten:

  • Syntax-Highlighting für SQL-Schlüsselwörter, Tabellen, Felder und Literale
  • Automatisches Einrücken bei verschachtelten SELECTs
  • Zeilennummern und bessere Fehlermeldungen

Noch kein IntelliSense wie in SSMS – aber deutlich angenehmer als vorher.
Die Navigation durch komplexe Abfragen ist jetzt möglich, ohne die Augen zu verknoten.

Und: Du kannst jetzt im SQL-Editor direkt zwischen SELECT, DATENBLATT und ENTWURFSANSICHT springen, ohne dass er alles formatiert.

Kurz: Kein Quantensprung – aber ein überfälliger Schritt nach vorn.
Wenn Du mit nativen Abfragen arbeitest, wirst Du den Unterschied spüren.

Kategorien:

Schlagwörter:

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert