Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Access Autowert formatieren mit 0 am Anfang

Frage Entwicklung Datenbanken

Mitglied: bumbum

bumbum (Level 1) - Jetzt verbinden

21.09.2009 um 13:10 Uhr, 13279 Aufrufe, 6 Kommentare

Hallo,
Ich möchte in Access einen Autowert so formatieren, dass der erste Wert 001 los geht, doch wenn ich das über eine SQL-Abfrage mache fängt er trotzdem mit 1 und nicht 001 an.
Kann mit da jemand helfen??

MfG bumbum
Mitglied: Biber
21.09.2009 um 14:03 Uhr
Moin bumbum,

mit Datenbanken kenn ich mich ja nicht so aus, aber..ein "AutoWert"/"Autoincrement"
  • ist immer in ADO/ADOX vom Typ adInteger ->COUNTER ist adinteger mit dem Zusatzattribut "AutoIncrement" auf TRUE
  • auch DAO/DDL-Datentyp COUNTER ist LONG (also == adInteger) mit dem Zusatzattribut "dbAutoIncrField" auf TRUE)
  • was aber beides auch wurscht ist, denn die Formatierung machst Du doch eh nur im Display, also in der Query.

Wie sieht die denn aus?

Grüße
Biber
Bitte warten ..
Mitglied: bumbum
21.09.2009 um 14:25 Uhr
moin biber,
ich kann mit dem was du mir da geschrieben hast garnichts anfangen....
also ich versuche es nochmal zu erklären! Ich habe ein Textfeld, in das ich eine Nummer eingeben, die von der Formatierung so aussieht 12345-012.
Sie setzt sich aus Zwei Autowerten zusammen, 12345 als Autowert und 012 also Autowert und diese werden dann in einer Abfrage zusammen geführt. Nach dem klicken auf den Speicher-Button wird dann kontrolliert, ob der Wert schon vergeben ist.
Wenn Ja kommt eine Fehlermeldung (Die Nummer "12345-012" ist schon vergeben, bitte verwenden sie die Nummer "12345-13")
also wird die 0 weg gelassen bei der zweiten Zahl weggelassen.
Die erste Zahl wird direkt aus dem Textfeld abgefragt und die zweite ergibt sich aus der kontrolle der der Tabelle/Abfrage +1
bitte helft mir, bin am verzweifeln :'-(

MfG bumbum
Bitte warten ..
Mitglied: AndreasHoster
21.09.2009 um 15:47 Uhr
Ich kann mit Deiner Frage auch nicht wirklich viel anfangen. Ich vermute Du vergewaltigst gerade ein paar Datenbankmittel anders als vorgesehen.

Prinzipiell mal zum Format eines Autowertes: Die Tabelle im Entwurfsmodus öffnen, auf das Feld mit dem Autowert gehen und dann bei den Eigenschaften im Feld Format 000 eingeben. Formatiert Zahlen so, daß 1 und 2 stellige Zahlen 2 oder 1 Null davor haben.

Aber:
Ein Autowert wird AUTOMATISCH beim Speichern vergeben, Du kannst einer Autowert-Spalte nicht manuell Werte zuweisen. Deswegen verstehe ich das mit dem Prüfen auf schonmal vergeben nicht. Beim Speichern bekommt die Autowert Spalte AUTOMATISCH einen neuen eindeutigen Wert.

Deswegen vermute ich, daß Du was anderes machst / machen willst / beschreibst als das, was ich aus Deinem Text rausgelesen habe.
Ansonsten kann man natürlich auch beim Auslesen mit einer SQL Abfrage führende Nullen hinzufügen:
01.
SELECT Format(Tabelle1.test,'000') FROM Tabelle1
Bitte warten ..
Mitglied: Biber
21.09.2009 um 18:59 Uhr
Moin bumbum,

ich versuch nochmal meine Verständnisprobleme zu beschreiben.

Verschiedene RDBMSe wie Oracle, DB2, MSSQL etc bieten leicht variiert diese AutoIncrement-Felder an.
Das funktioniert bei allen Datenbanken ähnlich mit vier Grundsätzen
  • der "AutoWert", wie er bei Access heißt, ist Long/Integer. Nicht Datum, nicht Währung, nicht Textfeld
  • der Autowert ist nicht nur "eindeutig" je Tabellle, sondern eben auch der Primary Key.
  • indirekte Schlussfolgerung aus dem 2. Grundsatz: Es kann nur maximal EIN Autowertfeld je Tabelle geben
  • es heißt "Autoirgendwas", weil es automatisch von der DB-Engine generiert/hochgezählt wird. Bestenfalls kannst Du den Startwert einmalig festlegen, dann bist Du raus und nur noch Zuschauer.

---> Deshalb: einen "AutoWert" kannst Du nicht verbiegen zu einem wie-auch-immer-gerechtfertigten zusammengesetzen "automatisch generierten Kunstschlüssel" aus zwei Nummernkreisen (Präfix +"-"+ lfdNr-als-Text).

Das musst Du per VBA lösen.
Mimik: Wenn für Präfix "12345" ein neuer Satz hinzukommt, dann musst Du prüfen 'was ist jetzt die höchste vergebene lfdNr für Gruppe/Kategorie "12345"?'

Und wenn bei dieser Max()-Query rauskommt "12345-011", dann muss du eben 2001 draufaddieren auf die "11" , dann hast du 2012 --> davon die rechten 3 Stellen verwenden --"012" und aus dem bekannten Prefix und "-" und "012" Deinen neuen Kunstschlüssel zusammenbraten.

Der ist dann sicherlich auch eindeutig und als PK geeignet.... aber ein AutoWert-Feld hast und brauchst und kannst Du nicht.

Grüße
Biber
Bitte warten ..
Mitglied: 76109
21.09.2009 um 19:29 Uhr
Hallo zusammen!

AutoWert1 = 12345
AutoWert2 = 12

Könnte man so zusammenbraten:
Text = AutoWert1 & "-" & Right("00" & AutoWert2 + 1, 3) = "12345-013"

Gruß Dieter
Bitte warten ..
Mitglied: bumbum
22.09.2009 um 07:18 Uhr
Vielen Dank für eure Antworten sie waren sehr hilfreich.
ich habe es hin bekommen. juhu

LG bumbum
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Access 2010 Pivot Table Export keine Werte (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

LAN, WAN, Wireless
Rogue Access Point (21)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

VB for Applications
gelöst VBA Code Änderung Access 2010 (6)

Frage von Dr.Cornwallis zum Thema VB for Applications ...

Windows 10
Windows 10 mit Direct Access 2012 R2 zeigt es nicht alle Ordner an (4)

Frage von rainergugus zum Thema Windows 10 ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(10)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
Dir tc Befehl unter Windows 10 macht Probleme (12)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (10)

Frage von ahaeuser zum Thema Windows Server ...