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äfix | Typ |
---|---|
tbl | Tabelle |
qry | Abfrage |
frm | Formular |
rpt | Bericht |
mod | Modul |
fct | Funktionsmodul |
ctl | Steuerelement |
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
Tabelle | Feld | Beschreibung | Typ |
---|---|---|---|
tblKunde | KundeVorname | Vorname des Kunden | Text |
tblKunde | KundeGeburtstag | Geburtsdatum | Datum |
tblRechnung | BetragNetto | Nettobetrag in EUR | Wä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.
Keine Antworten