Intransparente Tabellenstruktur: Wie ich übersichtliche Strukturen in Access aufbaue und pflege

Problem: Alles heißt „Tabelle1“

Du kennst das.
30 Tabellen.
10 davon heißen tblKundenAlt, tblKundenTest, tblKunden_neu_final2.
Felder ohne Datentyp.
Fremdschlüssel? Vielleicht. Irgendwo.
Dokumentation? Fehlanzeige.

Access verzeiht viel.
Aber irgendwann findest Du nichts mehr.
Dann wird’s Zeit, Ordnung zu schaffen.

Struktur beginnt beim Namen

Ich arbeite mit Präfixen.
Alt, aber bewährt.

PräfixTyp
tblTabelle
qryAbfrage
frmFormular
rptBericht
modModul
fctFunktionsmodul
ctlSteuerelement

Beispiel: tblRechnung, qryRechnungSumme, frmRechnungBearbeiten

Vermeide Leerzeichen und Umlaute.
Bleib konsequent.
Du findest sonst nichts mehr.

Beziehungen sichtbar machen

Keine Relationen = keine Kontrolle.

Erstelle immer Primär- und Fremdschlüssel.
Nutze den Beziehungseditor (Strg+Shift+F7).
Erzwinge referenzielle Integrität.

Und: Beschrifte Beziehungen im Kommentar.

Sub BeziehungPrüfen()
    Dim rel As DAO.Relation
    For Each rel In CurrentDb.Relations
        Debug.Print rel.Name, rel.Table, rel.ForeignTable
    Next rel
End Sub

So siehst Du, was wirklich verknüpft ist.

Feldbenennung mit System

Feldnamen sind wichtig.
Ein paar Faustregeln:

  • Kein „Feld1“, kein „Name“
  • Immer Kontext: KundeVorname, RechnungDatum
  • Keine Sonderzeichen
  • Einheitlich groß/klein (z. B. PascalCase oder snake_case, aber einheitlich)

Klingt banal.
Hilft aber enorm bei späteren Anpassungen.

Felder dokumentieren

Access kennt keine Metadatenbank.
Also baue ich mir eine.

Tabelle: tblFeldDoku

TabelleFeldBeschreibungTyp
tblKundeKundeVornameVorname des KundenText
tblKundeKundeGeburtstagGeburtsdatumDatum
tblRechnungBetragNettoNettobetrag in EURWährung

Pflege ich per Formular.
Oder aus dem Code:

Sub ExportFeldinfos()
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field

    For Each tdf In CurrentDb.TableDefs
        If Left(tdf.Name, 4) = "tbl" Then
            For Each fld In tdf.Fields
                Debug.Print tdf.Name & ";" & fld.Name & ";" & fld.Type
            Next fld
        End If
    Next tdf
End Sub

Damit kannst Du automatisch Doku-Listen erzeugen.

Namenskonvention automatisiert prüfen

Ich baue mir Helfer. Z. B. für Feldnamen:

Sub CheckFeldnamen()
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field

    For Each tdf In CurrentDb.TableDefs
        If Left(tdf.Name, 4) = "tbl" Then
            For Each fld In tdf.Fields
                If InStr(fld.Name, " ") > 0 Or InStr(fld.Name, "ä") > 0 Then
                    Debug.Print "Fehler: " & tdf.Name & "." & fld.Name
                End If
            Next fld
        End If
    Next tdf
End Sub

Läuft bei jedem Update der Datenstruktur.
Fehler fliegen sofort auf.

Templates statt Chaos

Neue Tabellen basieren bei mir auf Vorlagen.
Z. B. tblTemplateAuditLog, tblTemplateVersionierung

Kopieren, umbenennen, anpassen.
So schleichen sich keine wilden Felder mehr ein.

Fazit? Nee.

Wenn Du Access professionell nutzt, brauchst Du Struktur.
Tabellen ohne System sind wie Kabel ohne Plan:
Läuft vielleicht. Bis was brennt.

Also: Strukturen schaffen. Automatisiert prüfen.
Und konsequent bleiben.

Kategorien:

Schlagwörter:

Keine Antworten

Schreibe einen Kommentar

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