Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
GUID und das Listenfeld funktioniert nicht
Gehe zu Seite 1, 2, 3  Weiter
zurück: Datensatz in der Datenblattansicht markieren weiter: neue textfelder anstatt scrollen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Maria-Christine
Gast


Verfasst am:
10. Okt 2009, 16:21
Rufname:

GUID und das Listenfeld funktioniert nicht - GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Unter MS CRM 3.0 abgeschlossene Vorgänge können ja nicht mehr Bearbeitet werden,
wenn also noch irgendwas dazu oder Verändert werden soll hat man ein Problem.

Also dachte ich, das man die entsprechende Tabelle der SQL Datenbank ja mit Access verknüpfen und die Status-Felder zurücksetzen kann.
Das klappt auch wunderbar, nur die programmierte Such/Filter-Funktion macht mir Kopfzerbrechen,
leider ist das einzige Feld welches sich zur eindeutigen Identifizierung eignet ein Replikations-ID Feld [ActivityID],
und da bekomme ich immer einen Dateninkompatibilitäts-Fehler angezeigt wenn ich diese Suche starte.

Der von Access erzeugte Code sieht so aus:
Code:
Private Sub Liste18_AfterUpdate()
    ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[ActivityID] = " & Str(Nz(Me![Liste18], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Google hat mir zwar gesagt das es eine stringFromGUID Funktion gibt,
nur weis ich nicht wie ich die Einbauen soll...

Probiert habe ich schon mal so was:
Code:
Private Sub Liste21_AfterUpdate()
    ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "StringFromGUID([ActivityID]) = '" _
                                          & StringFromGUID(Me![Liste21]) & "'"
    ' rs.FindFirst "[ActivityID] = " & StringFromGUID(Me![Liste21])
    ' rs.FindFirst "[CreatedByName] = '" & Me![Liste21] & "'"
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Die Fehlermeldung ist jetzt weg aber:
Funktioniert alles nicht, wenn ich im Listenfeld auf einen Eintrag klicke wird er nicht gefunden, d.h. es wird immer nur der Datensatz 1 angezeigt

Dann habe ich gelesen das die Funktion StringFromGUID in das Format:
{GUID{a3bzxxxxxxxxxxx-usw}} umwandelt,
der SQL-Server aber nur: {a3bzxxxxxxxxxxx-usw} versteht.

Wie bekomme ich denn das wieder hin?
steffen0815
VBA-Programmierer


Verfasst am:
10. Okt 2009, 16:54
Rufname:


AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Hallo,
also ich denke mal die GUID ist als Text definiert, dann müsstest vermutlich so suchen:
Code:
    rs.FindFirst "[ActivityID] = '" & Nz(Me![Liste18]) & "'"

_________________
Gruß Steffen
Maria-Christine
Gast


Verfasst am:
10. Okt 2009, 17:17
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Access kann leider nicht direkt mit einer GUID umgehen/suchen
es ist eine 16 byte Zahl (in hex), VBA hakt da aus und deshalb soll man über die StrinFromGUID() Funktion es in einen String umwandeln

Aber leider wandelt diese es nicht richtig für den SQL-Server um...
steffen0815
VBA-Programmierer


Verfasst am:
10. Okt 2009, 17:46
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Hallo,
also das ganze scheint doch etwas komplizierten zu sein als ich dachte Embarassed .
In Access gibt es ja die GUID als Replikations-ID. Diese wird meiner Meinung nach "irgendwie" als String gespeichert (ID1).
Ein FindFirst ist aber auf die GUID nicht direkt möglich Verwenden von Seek und FindFirst mit GUID-Felder


Also ich kann das Ganze im Moment nicht ganz deuten, aber versuche es mal so
Code:
    Dim rs As DAO.Recordset
    Dim ID1 As Variant, ID2 As Variant
   
    Set rs = CurrentDb.OpenRecordset("Tabelle1", dbOpenDynaset)
    ID1 = rs.Fields("GUID")
    MsgBox VarType(ID1) ' ergibt String
    ID2 = GUIDFromString(rs.Fields("GUID"))
    MsgBox VarType(ID2) ' ergibt 8209 ???
    ' Führt zu Fehler :
    ' GUID in Kriterienausdruck für Find-Methode nicht zulässig. (Fehler 3614)
    'rs.FindFirst "[GUID] = " & ID1
    ' funktioniert
    rs.FindFirst "cstr([GUID]) = " & CStr(ID1)
    If Not rs.NoMatch Then MsgBox rs("Spalte2")
    ' funktioniert
    ID1 = "{86C3DEB1-0540-49AA-87DD-8985722995D0}"
    rs.FindFirst "cstr([GUID]) = '" & CStr(ID1) & "'"
    If Not rs.NoMatch Then MsgBox rs("Spalte2")

_________________
Gruß Steffen
Gast



Verfasst am:
10. Okt 2009, 18:02
Rufname:


AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Ja, man kann diese GUID nur über String ansprechen, aber dazu muss sie umgewandelt werden, ist ja eine Zahl
wobei diese Funktion (StringFromGUID) sie eben nicht richtig (für den SQL-Server) umwandelt
der Code:
Code:
    rs.FindFirst "StringFromGUID([ActivityID]) = '" _
                                          & StringFromGUID(Me![Liste21]) & "'"
macht es zwar, nur stellt er noch ein'{GUID}' vor den umgewandelten Wert
und das kann dann nicht im SQL-Server gefunden werden weil der nur den reinen Wert möchte
steffen0815
VBA-Programmierer


Verfasst am:
10. Okt 2009, 18:04
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Hallo,
hast du's mal probiert wie oben gezeigt Confused .

_________________
Gruß Steffen
Maria-Christine
Gast


Verfasst am:
10. Okt 2009, 18:17
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

nein, ich traue mich nicht...
weil ich den Code nicht verstehe und auf das Projekt übersetzen kann
(will ja nicht die Datenbank killen)

schon die erste Anweisung machte mich stutzig, DAO?
einen SQL-Server kann man doch nur über ADO ansprechen, oder?
steffen0815
VBA-Programmierer


Verfasst am:
10. Okt 2009, 18:32
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Hallo,
also ein FindFirst macht keine DB kaputt Wink.
Und das ist nur ein Bsp-Code für mich zum nachvollziehen.
Du brauchst nur StringFromGUID gegen CStr zu tauschen.

_________________
Gruß Steffen
Maria-Christine
Gast


Verfasst am:
10. Okt 2009, 18:45
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

meintest du so:
Code:
    rs.FindFirst "cstr([ActivityID]) = '" & CStr(Me![Liste21]) & "'"
das geht nicht...
Gast



Verfasst am:
11. Okt 2009, 08:44
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Hallo,
Zitat:
das geht nicht...
Das heißt was? Gibt es eine Fehlermeldung, wenn ja welche?
Ich kann nur mit einer Accesstabelle testen und dort funktioniert mein Code

Gruß Steffen
Maria-Christine
Gast


Verfasst am:
11. Okt 2009, 11:29
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

eine Fehlermeldung kommt nicht, aber der Datensatz wird nach wie vor nicht gewechselt wenn man im Listenfeld einen anderen Eintrag anklickt

wie kann man denn das bei der Umwandlung mit Stringfromguid vorgestellte {GUID} im Suchstring ausfiltern?
denke das währe eine Lösung
steffen0815
VBA-Programmierer


Verfasst am:
11. Okt 2009, 12:06
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Hallo,
Zitat:
eine Fehlermeldung kommt nicht
Na das ist doch schon mal was wert Wink.

Jetzt lässt du dir mal beide Strings anzeigen und dann schaun wir mal:
Code:
' ...
    Set rs = Me.Recordset.Clone
    Debug.Print CStr(rs("ActivityID"))
    Debug.Print CStr(Me![Liste18])
    rs.FindFirst "cstr([ActivityID]) = '" & CStr(Me![Liste21]) & "'"
    If Not rs.NoMatch Then MsgBox rs("ActivityID")
' ...

_________________
Gruß Steffen
Maria-Christine
Rookie


Verfasst am:
11. Okt 2009, 13:25
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Maria-Christine am 11. Okt 2009 um 13:13 hat folgendes geschrieben:
im Direktfenster wird mir das angezeigt
Code:
{guid {B98F7466-DBA4-DD11-8919-001060602DFE}}
Hergt, Steffi
der Name stimmt zumindest schon mal, wird aber nicht als Datensatz im Formular angezeigt

so, mal angemeldet

was mir noch aufgefallen ist, das die GUID sich nicht ändert wenn man verschiedene Datensätze anklickt,
der Name wird richtig angezeigt (im Direktfenster)
Gast



Verfasst am:
11. Okt 2009, 13:39
Rufname:

AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

Hallo,
aber das kann so doch nicht funktionieren Confused .
Du vergleichst "{guid {B98F7466-DBA4-DD11-8919-001060602DFE}}" mit "Hergt, Steffi " bzw. du suchst den Text "Hergt, Steffi " im GUID-Feld.
Das passt doch nicht! Aus deiner Me![Liste21 muss ein GUID kommen.
Erkläre bitte den Aufbau noch mal genau.

>> das die GUID sich nicht ändert wenn man verschiedene Datensätze anklickt
Wie meinst du das?

Gruß Steffen
Maria-Christine
Rookie


Verfasst am:
11. Okt 2009, 13:53
Rufname:


AW: GUID und das Listenfeld funktioniert nicht - AW: GUID und das Listenfeld funktioniert nicht

Nach oben
       Version: Office 2k (2000)

ja, das einmal die von Access umgewandelte id mit vorangestelltem {GUID kommt und danach anstelle der gefundenen ID der Name ist mir auch aufgefallen.

und bei verschiedenen Datensätzen im Listenfeld ändert sich die GUID nicht im Debugfenster sondern nur der Name
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2, 3  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 3
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: abhängiges Listenfeld 1 access_anfaenger 796 13. Jun 2007, 14:03
blicki abhängiges Listenfeld
Keine neuen Beiträge Access Tabellen & Abfragen: Warum funktioniert diese Abfrage nicht ? 6 Mirage 804 05. Jun 2007, 12:14
Mirage Warum funktioniert diese Abfrage nicht ?
Keine neuen Beiträge Access Tabellen & Abfragen: Aktualisierungsabfrage funktioniert nicht 7 BAD TOUCH 3023 30. Mai 2007, 13:13
Gast Aktualisierungsabfrage funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage funktioniert nicht...hilfe!!!!! 2 bennie103 603 22. März 2007, 21:14
Gast Abfrage funktioniert nicht...hilfe!!!!!
Keine neuen Beiträge Access Tabellen & Abfragen: SQL In mit mehreren Werten funktioniert nicht 5 lullus 702 30. Jan 2007, 20:53
jens05 SQL In mit mehreren Werten funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Kriterium funktioniert nicht!!! 5 christoph.1982 680 25. Jan 2007, 22:18
Nouba Kriterium funktioniert nicht!!!
Keine neuen Beiträge Access Tabellen & Abfragen: Beziehung mit verknüpfter Tabelle funktioniert nicht 4 Thom@s 680 09. Dez 2006, 16:15
Thom@s Beziehung mit verknüpfter Tabelle funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Eintrag in Listenfeld bei klick an abfrage übergeben? 5 Zamp 1012 07. Dez 2006, 07:58
derArb Eintrag in Listenfeld bei klick an abfrage übergeben?
Keine neuen Beiträge Access Tabellen & Abfragen: Aktualisierungsabfrage funktioniert nicht. 1 Lady_S 622 18. Sep 2006, 19:10
rita2008 Aktualisierungsabfrage funktioniert nicht.
Keine neuen Beiträge Access Tabellen & Abfragen: Summe funktioniert nicht 15 NotoriousOTW 1380 13. Sep 2006, 00:16
Willi Wipp Summe funktioniert nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Aktualisierungs-abfrage beim Listenfeld 1 DarkAngel1208 575 21. Mai 2006, 00:03
Solaiman Aktualisierungs-abfrage beim Listenfeld
Keine neuen Beiträge Access Tabellen & Abfragen: Count() Funktion in Abfrage funktioniert nicht 1 Nike 889 31. Jan 2006, 19:44
jens05 Count() Funktion in Abfrage funktioniert nicht
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS