Hallo,
habe folgendes Problem.
Ich benötige zum eindeutigen Codieren einen zweistelligen Wert.
Dieser Wert darf sich aus den Zahlen 0-9 und aus den Buchstaben A - Z ergeben (Groß- und Kleinschreibung nicht berücksichtigt).
Also d.h. er kann von "00" bis "99" die Zahlen nehmen im Anschluss muss er dann die Buchstaben mit einbeziehen. "A0 - A9", "0A - 9A", "B0 - B9", "0B - 9B".
Hat das schon mal jmd gemacht oder weiß jmd wie man das umsetzt?
VG
Tom
Zitat von: TomTom2903 am März 22, 2013, 09:11:01
Hallo,
habe folgendes Problem.
Ich benötige zum eindeutigen Codieren einen zweistelligen Wert.
Dieser Wert darf sich aus den Zahlen 0-9 und aus den Buchstaben A - Z ergeben (Groß- und Kleinschreibung nicht berücksichtigt).
Also d.h. er kann von "00" bis "99" die Zahlen nehmen im Anschluss muss er dann die Buchstaben mit einbeziehen. "A0 - A9", "0A - 9A", "B0 - B9", "0B - 9B".
Hat das schon mal jmd gemacht oder weiß jmd wie man das umsetzt?
VG
Tom
Wäre dann eine Art AutoWert Funktion mit entsprechendem Wertebereich...
Hallo,
zum eindeutigen Codieren eines Datensatzes nimmt man einen einfachen Autowert als Primärschlüssel.
Deine Beschreibung für den Code ist ziemlich unklar.
Du sprichst von 0-99 aber die 99 ist nicht zu sehen.
Dann schreibst Du im Anschluss die Buchstaben, aber im Beispiel sind auch Buchstaben vorn.
Alles etwas verwirrend.
Üblicherwiese würde man hier 2 Felder anlegen eines für die Zahl und eines für die Buchstaben. Über beide Felder dann einen eindeutigen Index.
Was ist denn die Aufgabe der Codierung?
Hallo,
sind für Dich auch Hexadecimal-Werte machbar?
Wenn Du es schaffst, eindeutige Zahlen zu erstellen (am besten via autowert: siehe Hinweis von Klaus), lassen die sich mit einer hex-Funktion umwandeln: siehe im Anhang die Abfrage.
Harald
[Anhang gelöscht durch Administrator]
Hallo
alternativ könntest du folgendes probieren:
Standardautowert in deiner Tabelle und mit mit
Function ConvStrFromLongX(ByVal l As Long) As String
Dim b(1 To 4) As Byte
Dim i As Long
For i = 4 To 1 Step -1
b(i) = l Mod 36
l = l - b(i)
b(i) = b(i) + IIf(b(i) < 10, 48, 55)
l = l \ 36
Next
ConvStrFromLongX = Chr(b(1)) + Chr(b(2)) + Chr(b(3)) + Chr(b(4))
End Function
aus dem Autowert die entsprechenden Strings erzeugen.
in diesen bsp wird von 4 Zeichen ausgegengen, daher ist die Rückgabe 4 Zeichen, mittels right$ kann man es aber kürzen. auch ist hier der Werteberich etwas größer(0 - 1679615 statt 0 - 1295 für 2 Zeichen). Diese Funktion in eine Abfrage eingebaut und diese den Autowert übergeben.