Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Namensgebung: Wie benenne ich meine Objekte richtig?
zurück: Zentralisierung der Datenbank (ADP,ODBC,Arbeitsgruppendatei) weiter: Rücksetzung einer Replikat Daten-DB Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Information Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
blackoutNO
SQL-Server Consultant


Verfasst am:
08. Mai 2010, 00:43
Rufname: Jörn
Wohnort: Ilmenau

Namensgebung: Wie benenne ich meine Objekte richtig? - Namensgebung: Wie benenne ich meine Objekte richtig?

Nach oben
       Version: (keine Angabe möglich)

Hallo allerseits,

mir fällt immer wieder auf, dass manche Nutzer, gerade Einsteiger, bei der Namensgebung für ihre Objekte und Controls herum schludern.
Daher dachte ich, ich stell mal einen kleinen Post zusammen, was dieses Thema betrifft.
Fangen wir bei den Access-Objekten an. Access Objekte sind die Grundlage einer jeden Datenbank.
Zu ihnen zählen Tabellen, Abfragen, Berichte, Module und auch Makros.
Auf Makros, werde ich nicht näher eingehen, da es eigentlich nur ein wirklich gutes und wichtiges Makro gibt.
Und das ist das Makro Namens „Autoexec“, welches dafür sorgt, dass bestimmte Aktionen beim Starten einer Datenbank durchgeführt werden.
Bei der Namensgebung für Objekte sollte man beachten, dass vor dem eigentlichen Objektnamen,
ein Präfix stehen sollte, über welchen man den Objekttyp erkennen kann, ohne es sich näher ansehen zu müssen.
So haben Tabellen den Präfix „tbl“, Berichte „rpt“ oder „rep“, Abfragen „qry“ (Abkürzung für Query, was im deutschen Abfrage bedeutet) und Module „mdl“.
Manche denken sich nun, warum soll ich einen Präfix verwenden, ich sehe doch was es für Objekte sind.
Wenn ihr hier aber ein Problem schildern müsst, wisst ihr zwar ob es sich in eurer VBA-Abfrage um eine Tabelle oder eine Abfrage handelt, aber nicht wir.
Außerdem ist die Arbeit für jemanden, der eine eurer Datenbanken übernimmt viel einfacher.
Da wir nun das Problem Präfix bei Objekten erläutert haben, werden wir uns an der allgemeinen Namensgebung zuwenden.
Grundsätzlich ist zu sagen, dass man bei der Benennung immer auf Sonderzeichen ( / - , . * etc.),
Leerzeichen und Umlaute verzichten sollte.
Bei der Namensgebung solltet ihr vor allem auf Aussagenkräftige Namen achten, denn mit einem Tabellennamen „A“
kann kein Mensch etwas anfangen, außer man arbeitet sich einmal quer durch die Datenbank.
Ein weiterer wichtiger Teil bei der Namensgebung ist die Trennung von 2 eigentlich einzelnen Wörtern, die aber Nötig sind um das Objekt genau zu beschreiben.
Angenommen ihr habt eine Tabelle mit Kontaktdaten von Kunden, dann habt ihr die 2 eigenständigen Worte „Kontakt“ und „Kunde“.
Nun kann man folgendermaßen vorgehen, man kann die beiden Wörter direkt hintereinander schreiben
und beim neuen Wort wieder mit einem Großbuchstaben beginnen,
oder die beiden Wörter durch einen „_“ trennen.
Da wir aber bereits gesagt hatten, dass wir auf jegliche Sonderzeichen verzichten wollen,
würde dieser Tabellenname dann so lauten:
Code:
          tblKundenKontakt
Weitere Beispiele für die anderen Objekte:
Abfragen: qryProduktKunde
Berichte: repRechnung
Module:   mdlStandardfunktionen
Kommen wir nun zu den Tabellenfelder und Steuerelementen in Formularen und Berichten.
Eigentlich sollte man hier genauso vorgehen, wie bei der Benennung von Objekten. Keine Sonderzeichen,
Leerzeichen oder Reservierte Wörter.
Angenommen ihr legt ein Tabelle mit Kontaktdaten an, dann denken die meisten vor allem an 2 Felder: Name und Vorname.
Aber in Access ist das Wort Name ein reservierter Begriff.
Dies sollte eigentlich jedem Nutzer auffallen, der die Fehlermeldung beim Festlegen dieses Spaltennamens ignoriert.
Ein anderes Beispiel ist das Wort Datum und es gibt noch einige mehr.
Nun aber wirklich zu den Steuerelementen und zwar ganz kurz und knapp:
Code:
Kombinationsfeld: cbo,  zb: cboSuche
Textfeld:         txt,  zb: txtNachname
Listenfeld:       lst,  zb: lstArtikel
Button:           btn,  zb: btnOK
Und als letztes will ich noch kurz auf die Namensgebung für Variablen im VBA eingehen.
Code:
Stringvariable:  str,           zb: strText
Integervariable: int,           zb: intZaehler
Longvariable:    lng,           zb: lngAnzahl
Booleanvariable: bool oder bln,  zb: boolWert
Recordset:       rst oder rs
Database:        dbs oder db
Gerade im VBA ist es sinnvoll diese Präfixe zu verwenden, da manche Funktionen doch recht lang werden können.
Und wenn man dann erst ewig scrollen muss um nahzusehen, welchen Datentyp eine Variable nun eigentlich hat, ist das ziemlich lästig.
Mit einer ordentlichen Namensgebung nehmt ihr nicht nur anderen Arbeit ab, sondern auch euch selbst,
wenn ihr später mal wieder an der DB arbeiten müsst.

Gruß, black

_________________
Cheers, Jörn
Microsoft Studentpartner
Manchen kann ich helfen, weil mir andere geholfen haben und dafür bin ich sehr dankbar!!!
Willi Wipp
Moderator


Verfasst am:
08. Mai 2010, 05:13
Rufname:
Wohnort: Raum Wiesbaden


Re: Namensgebung: Wie benenne ich meine Objekte richtig? - Re: Namensgebung: Wie benenne ich meine Objekte richtig?

Nach oben
       Version: (keine Angabe möglich)

Hi blackoutNO,

danke fuer die schoene Zusammenstellung und die ausfuehrlichen Erklaerungen.

Allerding wird der Unterstrich in diesem Zusammenhang nicht als Sonderzeichen betrachtet.
Es ist durchaus ueblich und aus meiner Sicht auch hilfreich diesen in der Namensgebung mit zu verwenden.
Z.B. kann man damit Objekte in der sortierten Auflistung nach hinten schaffen.
Es hat auch in Access etc, keine Sonderfunktion und ist im 7Bit ASCII-Zeichensatz (95 = 5F) enthalten.
In der Regel sollte man bei Objektnamen (primaer Tabellen, Abfragen, ...) generell die Einzahl verwenden.
Das macht es einfacher die Objekte "aus dem Kopf" zu verwenden.

Hier noch 2 Links zu den "anerkannten" Namenskonventionen für Access und VBA.
Reddick VBA (RVBA) Naming Conventions
Reddick VBA (RVBA) Coding Conventions
Wobei ich es nicht so wichtig finde sich an diesen Standard zu halten.
Ich finde es wichtiger eine eigene einheitliche Vorgehensweise zu finden und diese dann durchzuziehen. Wink

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
blackoutNO
SQL-Server Consultant


Verfasst am:
08. Mai 2010, 13:26
Rufname: Jörn
Wohnort: Ilmenau

AW: Namensgebung: Wie benenne ich meine Objekte richtig? - AW: Namensgebung: Wie benenne ich meine Objekte richtig?

Nach oben
       Version: (keine Angabe möglich)

Danke für die Rückmeldung Willi,

das der Unterstrich nicht als Sonderzeichen betrachtet wird ist mir natürlich klar Smile
Das ganze sollte auch nur ein kleiner Anstoß in die richtige Richtung sein.
Zumindest sollte man von solchen Namen wie "Textfeld1" wegkommen, es sieht nicht nur unschön aus, sondern ist beim Identifizieren von Objekten auch wenig hilfreich.

Gruß, black

_________________
Cheers, Jörn
Microsoft Studentpartner
Manchen kann ich helfen, weil mir andere geholfen haben und dafür bin ich sehr dankbar!!!
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
09. Mai 2010, 12:09
Rufname:

AW: Namensgebung: Wie benenne ich meine Objekte richtig? - AW: Namensgebung: Wie benenne ich meine Objekte richtig?

Nach oben
       Version: (keine Angabe möglich)

Hallo zusammen,

so hat jeder seine eigenen Regeln - grundsätzlich finde ich die Einführung gut, hätte da aber auch noch ein paar Anregungen, die sich in der Praxis ergeben haben.

Bei Tabellen empfiehlt es sich, in der Namensgebung die Mehrzahl zu verwenden, zum Beispiel "tblBestellungen" statt "tblBestellung". Das ist inhaltlich logischer, weil man ja mehr als eine Bestellung in eine Tabelle speichert und wenn man grundsätzlich die Mehrzahl verwendet, braucht man später beim Erinnern nicht mehr zu überlegen, ob diese Tabelle nun so oder so hieß.
Außerdem hat es den Vorteil, in der Feldbenennung dann z.B. für das ID-Feld immer die Einzahl verwenden zu können, zum Beispiel "ID_Bestellung" (hier macht der Unterstrich z.B. Sinn, da "IDBestellung" nicht wirklich leserlich ist).

Bei der Benennung von Tabellenspalten gehe ich mittlerweile grundsätzlich so vor:
Das ID-Feld für den Primary Key, das beinahe immer ein Autowertfeld ist, nenne ich immer "ID_EinzahlDesTabellennamens" und verwende dann eine Abkürzung des Tabellennamens als Feldpräfix, etwa im Beispiel Bestelltabelle:

ID_Bestellung
BEST_Datum
BEST_Menge
...

Durch diese Methode muß man sich grundsätzlich keine Gedanken über reservierte Namen machen, da das so nie vorkommen kann - und ich kann einfachere Feldbezeichnungen wie "Datum" oder "Name" auf diese Weise dennoch verwenden.
Im Code hat das später den Vorteil, daß ich anhand des Feldnamens immer sehen kann, zu welcher Tabelle das Feld gehört, etwa in einem komplizierten SELECT-Befehl. Diesem wiederum kann ich dann einen supersimplen Alias in den Tabellenbezeichnungen geben, so daß da eben nicht mehr steht "tblBestellungen.BEST_Menge, tblBestellungen.BEST_Datum,...", was den Befehl extrem aufbläst und unübersichtlich macht, sondern stattdessen den Alias "B" vergeben, so daß sich ergibt: "B.BEST_Menge, B.BEST_Datum,..." usw.

Weiterhin sollte man den Datentyp von Feldern (im Gegensatz zu Variablen in VBA) keinesfalls mit dem Namen des Feldes verbinden. Also etwa "datBestelldatum" oder "fltBestellmenge". Problem: Ab und zu müssen Datentypen in Feldern schon mal geändert werden. Zum Beispiel eine Integer-Bestellmenge, die nun auch Kommazahlen zulassen soll und damit in Float geändert wird. Da müßte man nun nicht nur in der Tabelle "intMenge" auf "fltMenge" ändern, um wieder konform zur Namensgebung zu sein, sondern auch überall im VBA-Code, wo Feldnamen direkt verwendet werden und in allen Queries usw. Extrem aufwendig und unsinnig, weil der Datentyp in Tabellenspalten im Allgemeinen nicht so wichtig ist wie der Datentyp in Variablen in VBA.

Eine weitere Geschichte aus der Praxis betrifft die Namensgebung der Controls auf einem Formular: Ich bin auch dafür, diese entsprechend ihrer Funktion zu benennen (wobei ich zum Beispiel "cmdClose" statt "btnClose" verwende, aber wie Willi schon sagt, persönlicher Geschmack eben).
Allerdings verwende ich hier eine unterschiedliche Namensgebung für die Controls, die an eine Tabelle gebunden sind und die, die allgemeine Funktionen erfüllen. So bekommt der Schließen-Knopf die erwähnte Bezeichnung "cmdClose" und die Kombobox zum Filtern einer Namens-Spalte "cboFilterName". Diese Funktionen haben nichts direkt mit der Eingabe/Änderung von Daten in der Tabelle zu tun.
Bei den gebundenen Feldern gehe ich grundsätzlich mittlerweile so vor: Der Name des Formularfeldes entspricht immer dem Namen des Datenfeldes mit vorangehängtem "ctl" (für "Control"). Also in dem Beispiel oben sähe das dann so aus: "ctlBEST_Datum" und "ctlBEST_Name". Das hat gleich mehrere Vorteile:
  1. ich sehe am Namen des Formularfeldes, welche Datenspalte dahinterliegt, an dieser sehe ich gleich auch, aus welcher Tabelle sie stammt.
  2. durch das vorangehängte "ctl" sehe ich, daß es sich um ein gebundenes Feld handelt (aufgrund der Namenskonvention)
  3. wenn ich die Namen der Tabellenspalte kenne, muß ich nicht überlegen, ob es im Formular nun eine Kombobox, ein Textfeld oder eine Checkbox war, um auf den Wert zuzugreifen.
  4. man kann mit VBA einfache Funktionen schreiben, die alle Controls eines Formulars durchlaufen, um daraus einen SELECT-String zu erstellen. Ich nehme einfach nur alle Controls, die mit "ctl" beginnen und schneide das "ctl" ab, schon habe ich alle benötigten Feldnamen. Ändert sich ein Feldname in der Tabelle und auf dem Formular, muß der Code nicht mehr geändert werden, solange Datenfeldname und Formularfeldname übereinstimmen (benutze ich zum Beispiel für eine allgemeine History-Funktion in allen Formularen).
  5. und natürlich sowieso: Durch unterschiedliche Namensgebung von Formularfeld und Datenfeld kann ich gezielt auf die Eigenschaften beider zugreifen, so daß es keine Verwirrung gibt, wenn man die Farbe eines Rahmens verändern will. Das kann natürlich nur "ctlBEST_Menge" und nicht "BEST_Menge".
Diese Form der Namensgebung hat auch den Vorteil, daß man sich aus dem Kopf heraus schnell die Namenszusammensetzung wieder im Code zusammenführen kann, so daß man schnell auf "ctlBEST_Menge" kommt, um an das Control aus der Tabelle "Bestellung" für die Menge zu kommen. Ohne Namenskonvention muß man erst überlegen, "hieß es jetzt Menge oder Bestellmenge oder Bestellungen_Menge oder....".

Man macht sich das Leben mit einer guten Namensgebung sehr viel einfacher und man ist damit sehr viel schneller am Ziel.

Gruß

Christian
derArb
getting better


Verfasst am:
13. Mai 2010, 21:26
Rufname: derArb
Wohnort: Berlin

AW: Namensgebung: Wie benenne ich meine Objekte richtig? - AW: Namensgebung: Wie benenne ich meine Objekte richtig?

Nach oben
       Version: (keine Angabe möglich)

Hallo,

für SQL(in Abfragen oder VBA) macht sich auch gut, Fremdschlüsselfelder identisch dem Primärschlüsselfeld zu bezeichnen und mit einem Appendix zu versehen.
Primärschlüssel: ID_Bestellung
Fremdschlüssel: ID_Bestellung_f

Bei mehreren Fremdschlüsseln, welche sich auf einen Primärschlüssel beziehen, muss man dann den Appendix entsprechend intelligent gestalten.

z.B.
Primärschlüssel: ID_Bestellung
Fremdschlüssel in Tabelle A: ID_Bestellung_fA
Fremdschlüssel in Tabelle B: ID_Bestellung_fB

MfG
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
blackoutNO
SQL-Server Consultant


Verfasst am:
13. Mai 2010, 21:53
Rufname: Jörn
Wohnort: Ilmenau

AW: Namensgebung: Wie benenne ich meine Objekte richtig? - AW: Namensgebung: Wie benenne ich meine Objekte richtig?

Nach oben
       Version: (keine Angabe möglich)

Danke für den Hinweis Arb!
Und für die, die sich gegen die Variante mit dem Unterstrich entscheiden gibt es noch die Möglichkeit statt einem "_F" am Ende ein "ref" (Für Referenz) an den Anfang der Namen zu schreiben.

_________________
Cheers, Jörn
Microsoft Studentpartner
Manchen kann ich helfen, weil mir andere geholfen haben und dafür bin ich sehr dankbar!!!
derArb
getting better


Verfasst am:
13. Mai 2010, 22:25
Rufname: derArb
Wohnort: Berlin


AW: Namensgebung: Wie benenne ich meine Objekte richtig? - AW: Namensgebung: Wie benenne ich meine Objekte richtig?

Nach oben
       Version: (keine Angabe möglich)

Hallo,

die Kuh heisst "Mathilda" und es soll klar sein, dass das Kalb von der Mathilda ist.
Daher finde ich einen Appendix "_f" besser, als einen Präfix "ref"
"Mathilda_f" und nicht "refMathilda"
"Mathilda_fA" und nicht "refAMathilda"
usw....
MfG
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Richtig zählen ohne referentielle Integrität 18 Musicfreak666 326 21. März 2014, 12:21
Musicfreak666 Richtig zählen ohne referentielle Integrität
Keine neuen Beiträge Access Tabellen & Abfragen: Alle Access Objekte anzeigen 2 investmentclub 96 28. Jan 2014, 00:26
investmentclub Alle Access Objekte anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle wie richtig verknüpft 2 TimH. 100 12. Sep 2013, 19:05
TimH. Tabelle wie richtig verknüpft
Keine neuen Beiträge Access Tabellen & Abfragen: Inner Join richtig verstehen und anwenden 4 reeky 702 17. Dez 2011, 15:50
Bitsqueezer Inner Join richtig verstehen und anwenden
Keine neuen Beiträge Access Tabellen & Abfragen: ID zählt nicht mehr richtig hoch 10 Tunnelbauer 915 07. Nov 2011, 08:55
Tunnelbauer ID zählt nicht mehr richtig hoch
Keine neuen Beiträge Access Tabellen & Abfragen: SQL-Abfrage wird nicht richtig ausgeführt 5 Abfrager 303 02. Dez 2010, 13:25
Abfrager SQL-Abfrage wird nicht richtig ausgeführt
Keine neuen Beiträge Access Tabellen & Abfragen: In Tabelle wird Id nicht mehr richtig vergeben 0 skorwi 204 08. Jul 2010, 13:45
skorwi In Tabelle wird Id nicht mehr richtig vergeben
Keine neuen Beiträge Access Tabellen & Abfragen: Richtig eine Daten Bank aufbauen. 26 Thschellop 1303 30. Jun 2010, 13:36
Thschellop Richtig eine Daten Bank aufbauen.
Keine neuen Beiträge Access Tabellen & Abfragen: OLE Objekte werden auf bestimmtem PC nicht angezeigt. 1 jojolino 912 10. Jun 2010, 09:26
Marina_Arida OLE Objekte werden auf bestimmtem PC nicht angezeigt.
Keine neuen Beiträge Access Tabellen & Abfragen: Vorhandene Datumswerte "richtig" sortieren 2 DBKlempner 294 16. Feb 2010, 09:18
DBKlempner Vorhandene Datumswerte "richtig" sortieren
Keine neuen Beiträge Access Tabellen & Abfragen: Funktion in Abfrage funktioniert nicht richtig 3 Siggi3 195 20. Aug 2009, 09:37
Siggi3 Funktion in Abfrage funktioniert nicht richtig
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellen und Felder richtig verknüpfen 2 HerrBert 385 12. Feb 2009, 20:03
Gast Tabellen und Felder richtig verknüpfen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Editoren Forum