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, 12863 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??

Mit freundlichen Grüßen 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 :'-(

Mit freundlichen Grüßen 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 ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
CMD cURL Access Token parsen (2)

Frage von maddig zum Thema Batch & Shell ...

LAN, WAN, Wireless
Access Point: Ubiquiti UAP AC PRO Einschätzung Reichweite (4)

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

LAN, WAN, Wireless
Freifunk über vorhandene Access Points ausstrahlen (4)

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

Windows Netzwerk
Direct Access mit VPN aufbau (6)

Frage von geocast zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...