Zum Inhalt springen

PLZ 5-stellig


Kaustobiolith

Empfohlene Beiträge

Hallo,

ich habe folgendes Problem.

In einer Access-Datenbank wurden Postleitzahlen abgespeichert.

Städte im Osten fangen mit einer 0 an.

Nun wurden bei diesen Städten die 0 einfach weggekürzt.

Somit habe ich statt einer 5stelligen nur eine 4stellige PLZ.

Ich möchte ein Modul schreiben, dass überprüft ob in dem Feld 4 oder 5 Zahlen hinterlegt sind. Wenn nur 4, dann soll automatisch vorne eine 0 angefügt werden.

Kann mir jemand einen Tip geben wie ich dieses Problem am besten lösen kann?

Danke schonmal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi!

Vielleicht muss Du noch die Textlänge bei den Eigenschaften des Feldes verändern und auf 5 oder 6 stellen??

Und dann kannst Du Dir eine kleine Funktion schreiben, wo Du die Länge abprüfst und zur Not ne 0 davor setzt. So ungefähr:

---------------------------------------------------------

dim rs as recordset

dim strPLZ as string

set rs = currentdb.openrecordset("SELECT PK,PLZ FROM TABELLE ORDER BY PK",dbopenforwardonly)

'PK ist der Primary Key

do until rs.eof

Select case len(rs!PLZ)

case 3: strPLZ = "00" & rs!PLZ

case 4: strPLZ = "0" & rs!PLZ

end select

currentdb.excute "UPDATE TABELLE SET PLZ = '" & strPLZ & "' WHERE PK = " & rs!PK

rs.movenext

loop

rs.close

set rs = nothing

-----------------------------------------------

Das musst Du nur noch in eine Funktion packen und mal testen, ob's geht.

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du musst die PLZs natürlich nicht noch einmal eingeben! Setze die Felder auf Text, die Länger der Felder min. 5 (5stellige PLZ halt) und starte dann ne Aktualisierungsabfrage mit dem Inhalt aus meinem ersten Posting. Dann datet er alle Felder up, die nur 4 stellen lang sind (Also die wo die 0 Fehlt, die anderen sind ja 5 lang) und setzt die 0 vor den jeweiligen Eintrag. Danach solltest du alles 5 stellige PLZs haben, mit "0".

An der Syntax musst Du halt nen bisschen basteln, machs am besten im SQL-Entwurfsfenster.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du schpn Text wählst, dann nimm Uppercase ! Oder nimm nicht Text sondern Code, falls das in deiner DB als Datentyp vorhanden ist. Grund: In Deutschland besteht der PLZ - Code zwar aus Zahlen aber in den Niederlanden oder Britanien oder sonst wo ist das nicht immer der Fall. Und wenn ihr später auch mal Adressen aus dem Ausland mit Aufnehmen wollt, hast du 1. ein Problem wenn du dein Feld auf 5 Zeichen beschränkt hast und 2. weil du Text genommen hast.

Denn so kann der DAU die PLZ von Amsterdamm (1009 AG) 4x anders eingeben (Groß-Kleinschreibung). Und das Ende der Geschichte ist, ihr habt Redundanzen :(

Gruß

UBAI - Kaum macht mans richtig, schon funktionierts !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Folgendes:

Öffne die Tabelle in der Entwurfsansicht.

Deklariere das Feld mit den Postleitzahlen als 'Zahl'.

Unten sind 2 Registerkarten, eine heisst 'Allgemein' die andere 'Nachschlagen' . Nimm 'Allgemein'.

Gib unter Format '00000' an, schon hast du deine führenden Nullen. Es werden auch alle alten 4-stelligen Inhalte mit einer führenden Null versehen.

Ich bin ja AE, aber wenn nicht codiert werden muss, tu ich's auch nicht!!!!!!!!!!!!!!

Gruss

Flo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein PLZ - Code als Zahl zu deklarieren ist absoluter Schwachsinn !!

Dann klappts zwar mit Bayern und Hessen aber nie im Leben mit Ausländern !

Angenommen die Tabelle "PLZ - Codes" in der er die PLZ + Ort hinterlegt, ist Grundlage für das Feld Debitor.PLZ <- Relation auf "PLZ - Codes" dann kann er nur deutsche nicht mal österreichische da führendes AT eintragen ! Ach übrigens auch die deutsch PLZ besteht nicht nur aus Zahlen sondern auch aus Buchstaben. Die korrekte PLZ ist nämlich DE-06369.

Ach ja, wo ist da was zu proggen ? Alles noch Tabellendesign !

Gruß UBAI - Kaum macht mans richtig, schon fubnktionierts !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von UBAI

Die korrekte PLZ ist nämlich DE-06369.

Das ist falsch.

Nach DIN 5008 sind Postleitzahlen 5-stellig numerisch.

Zusatz zu Auslandsanschriften aus der DIN 5008:

--------------------------------------------------------------

Auslandsanschriften müssen in lateinischer Schrift und arabischen Ziffern geschrieben werden. Die Anordnung der Bestandteile der Anschrift sowie deren Schreibweise sollten vom Briefpartner – wenn er schon bekannt ist – übernommen werden. Der Bestimmungsort ist in Großbuchstaben nach Möglichkeit in der Sprache des Bestimmungslandes anzugeben (z. B. GENÉVE statt Genf, BRUXELLES statt Brüssel, PRAHA statt Prag, MILANO statt Mailand). Das Bestimmungsland ist in Großbuchstaben in der letzten Zeile der Anschrift anzugeben, und zwar in Deutsch oder Französisch. Das Voranstellen eines sogenannten Länderkürzels vor die Postleitzahl (PLZ) des Bestimmungsortes wird von der Deutschen Post derzeit nicht mehr empfohlen (früher z. B. für Spanien E-28070 MADRID oder für Belgien B-1000 BRUXELLES).

--------------------------------------------------------------

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von UBAI

Ein PLZ - Code als Zahl zu deklarieren ist absoluter Schwachsinn !!

Dann klappts zwar mit Bayern und Hessen aber nie im Leben mit Ausländern !

Angenommen die Tabelle "PLZ - Codes" in der er die PLZ + Ort hinterlegt, ist Grundlage für das Feld Debitor.PLZ <- Relation auf "PLZ - Codes" dann kann er nur deutsche nicht mal österreichische da führendes AT eintragen ! Ach übrigens auch die deutsch PLZ besteht nicht nur aus Zahlen sondern auch aus Buchstaben. Die korrekte PLZ ist nämlich DE-06369.

Ach ja, wo ist da was zu proggen ? Alles noch Tabellendesign !

Gruß UBAI - Kaum macht mans richtig, schon fubnktionierts !

ich sehe schon, du bist so vieles besser als ich!!

warum darf ich nicht so toll sein wie du?

warum nicht??

lies dir bitte mal die din normen durch, dann erfährst du, dass die plz 5-stellig sind. das beschriebene problem nennt 4-stellige plz, und das behebe ich eben ohne sql statement.

übrigens habe ich für auslandskennzeichen ein eigenes feld, das einfluss auf die jeweiligen plz/zip hat.

aber wie gesagt, du bist bestimmt ein besserer datenbankdesigner und programmierer als ich.

flo

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ Darth_Zeus

Welche Norm meinst du denn ?

Es ist zwar korrekt, das die DIN 5008 sagt, das PLZ-Codes 5-stellig numerisch sind, aber die DIN 5008 gilt in Deutschland (D eutsche I ndustrie N orm)

In USA oder GB oder Rußland sind PLZ definitiv nicht nur nummerisch und auch nicht nur 5 stellig. Meine Aussage war, wenn er Ausländische Adressen erfassen möchte, das ein 5-stelliges Zahlen nicht ausreichen wird.

Als Bsp, das andere Länder andere PLZ-Codes haben hier noch mal ein Bsp:

Dudley (GB) -> DY5 4DJ

Miami (USA) -> FL 37125

Zutphen (NL) -> 7202 BP

Gruß :e@sy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...