GUID (AutoWert =Replikations-ID) als Abfragekriterium

15/08/2013 - 12:00 von Ulrich Wrede | Report spam
Hallo

ich möchte GUID (Tabellen-Datentyp; AutoWert=Replaktions-ID) als
Primàrschlüssel verwenden. Ich versprechen mir davon, das ein Datentransfer
zwischen verschiedenen Datenbanken leicht möglich ist.

Nun habe ich das erste mal einen GUID Wert in einer Abfrage mittels
Formularfeld abzufragen:
1) [Formulare]![Formular1]![GUID_Feld]
(Einige werden jetzt schon wissen, was nun kommt, für Unbedarfte, wie meiner
einer, meine weitere Vorgehensweise))
=>Keine Datensàtze
Ich war ziemlich erstaunt.

2) Ich habe dann den Wert des Feldes aus der Abfrage ohne Kritierium und in
der Entwurfsansicht als Kriterium eingefügt
{guid {8C9E0932-511C-4745-9A79-E11CAE07F281}}
Es wurden Datensàtze geliefert.
Was mir erst spàter aufgefallen ist, dass im Kriterium {guid xxxx}
hinzugefügt wurde.

3) Nachforschungen mit einer beliebten Suchmaschine haben die Funktion
StringFromGuid zu Tage gefördert.
StringFromGuid([Formulare]![Formular1]![GUID_Feld]) liefert aber auch keine
Datensàtze

4) im Direktfenster
?StringFromGuid([Forms]![Formular1]![GUID_Feld])
{guid {8C9E0932-511C-4745-9A79-E11CAE07F281}}
optisch entspricht des der Position 2) liefert aber keine Daten siehe 3)

5) Nachforschungen mit einer beliebten Suchmaschine haben neben
umfangreichen Diskussionen (meist Englisch) über die Sinnhaftigkeit von GUID
zu Tage gefördert.
Aber unter anderem auch dies:
http://www.utteraccess.com/forum/lo...51220.html
Wieder auf Englisch und für mich deshalb nicht so leicht zu verstehen. Was
ich aber wirklich nicht glauben kann, das man so etwas basteln muss, wie
randybass es getan hat
und sich tierisch freut Bill Gates eines ausgewischt zu haben, nur um diesen
GUID-Wert abzufragen.

Sehen ich den Wald vor lauter Bàumen nicht? Gibt es eine einfache Lösung?


Alternativen wàren:
- beim Im- und Exporten die Autowertproblematik lösen
- eingene Schlüssel aus Werten des Objetes zusammenbasteln (z.B.
Nachnahme&Vorname&Geburtsdatum)
- mit Funktionen GUID als Textstring erzeugen

Schöne Grüße
Ulrich
 

Lesen sie die antworten

#1 Ulrich Wrede
15/08/2013 - 19:19 | Warnen spam
Hallo,

ich habe weiter geübt.

Public Function testGuid1()
'testGuid1 = (Forms![Formular1]![GUID_Feld]) '= ????????
'testGuid1 = StringFromGUID(Forms![Formular1]![GUID_Feld]) '={guid
{8C9E0932-511C-4745-9A79-E11CAE07F281}}

'Liefert Datensatz in der Abfrage
testGuid1 = Mid(StringFromGUID(Forms![Formular1]![GUID_Feld]), 7, 38)
'={8C9E0932-511C-4745-9A79-E11CAE07F281}
End Function

Also folgende Funktion würde die entsprechenden Datensàtze liefern. Man
beachte der Verweis auf das Formular ist direkt in der Funktion

Public Function testGuid1()
testGuid1 = Mid(StringFromGUID(Forms![Formular1]![GUID_Feld]), 7, 38)
End Function

Folgende Funktion geht nicht. Hier wird das Kontroll als Parameter
übergeben. Ergebnis= Ausdruck zu komplex

Public Function testGuid2(formSteuerelement As Control) As String
testGuid2 = Mid(StringFromGUID(formSteuerelement), 7, 38) 'Ausdruck zu
komplex
End Function

Folgende Funktionen werden zwar ausgewert, liefern aber keine Datensàtze

Public Function testGuid3(strGuid As String) As String
testGuid3 = Mid(StringFromGUID(strGuid), 7, 38) 'liefert keinen Datensatz
End Function

Public Function testGuid4(varGuid As Variant) As String
testGuid4 = Mid(StringFromGUID(varGuid), 7, 38) 'liefert keinen Datensatz
End Function

Gruß
Ulrich

Ähnliche fragen