none
Access 2003 - MSSQL - ODBC - Datensatzsuche über Me.Bookmark = Me.RecordsetClone.Bookmark

    Frage

  • Ich habe eine MSSQL Datenbank die ich über ODBC an Access 2003 angebunden habe

     (Aktuellster ODBC Treiber, Windows 7, alle updates Access und MSSQL - auch das Update nach SP3)

    Ich suche in einem Formular nach Auswahl in einem Kombinationsfeld einen Datensatz

    macht er aber leider nur zu 80% -

    Adresse ist der Index

    ein msgbox Kombinationssuchfeld.Column(1) ergibt immer die richtige Adresse

    es wird aber leider sehr oft eine Falsche adresse ausgewählt - aber auch nur in der MSSQL odbc Version - sobald ich eine mdb tabelle eingebunden habe funktioniert das ganze

    Me.RecordsetClone.FindFirst "Adresse =" & Kombinationssuchfeld.Column(1)
    Me.Bookmark = Me.RecordsetClone.Bookmark

    Ich bekomme auch keine Fehlermeldung - Zeitproblem?


    • Bearbeitet MCDPone Donnerstag, 13. September 2012 10:18
    Donnerstag, 13. September 2012 10:08

Alle Antworten

  • MCDPone wrote:
    > ...
    > Adresse ist der Index
    >
    > ein msgbox Kombinationssuchfeld.Column(1) ergibt immer die richtige
    > Adresse
    >
    > es wird aber leider sehr oft eine Falsche adresse ausgewählt - aber
    > auch nur in der MSSQL odbc Version - sobald ich eine mdb tabelle
    > eingebunden habe funktioniert das ganze
    >
    > Me.RecordsetClone.FindFirst "Adresse =" &
    > Kombinationssuchfeld.Column(1)
    > Me.Bookmark = Me.RecordsetClone.Bookmark
    >
    > Ich bekomme auch keine Fehlermeldung - Zeitproblem?
     
    Welchen Datentyp hat "Adresse"?
    Vermutlich ein Zahltyp. Also versuche eine Typkonvertierung
    und den Weg ohne Clone und Bookmark, d.h. nur diese 1 Zeile:
     
    Me.Recordset.FindFirst "Adresse =" & clng(Me!Kombinationssuchfeld.Column(1))
     
    Wenn das nix bringt, ergänze einige Angaben:
     
    Was ist die Datenherkunft des Formulares?
    Direkt eine Tabelle oder eine Abfrage?
     
    Wieso vermutest du ein Zeitproblem?
    Wird vorher ein Datensatz hinzugefügt, gelöscht oder dergl.?
    Bei welchem Ereignis findet der Code statt?
     
    Gibt es eine Logik hinter der falschen Auswahl?
     
    --
    Servus
    Karl
    *********
    Access-FAQ: http://www.donkarl.com  +  AEK15
    Access-Entwickler-Konferenz, 29/30.9. Nürnberg, 13/14.10. Hannover
     
     
     
    Freitag, 14. September 2012 18:16
  • Hallo Karl

    Adresse ist Long Integer

    ich habe das Formular jetzt noch einmal mit nur 2 Steuerelementen neu aufgebaut - einmal Suchfeld(Kombinationsfeld) und eben dem Feld Adresse um zu sehen ob er sucht

    das ergebniss ist das gleiche - es wird einfach ein andrer datensatz angezeigt - aber dann immer der gleiche

    ich habe jetzt beim öffnen des formulars intuitiv ein

    DoCmd.GoToRecord , , acLast
    DoCmd.GoToRecord , , acFirst

    eingebaut und siehe da es geht es sieht so aus das nicht auf allen daten zugegriffen wird

    als Datenherkunft habe ich die tabelle angegeben also tblAdressen

    in der tblAdressen sind auch nur ca. 30 000 Datensätze

    Der Code finde nach der Aktualisierung des Kombinationsfeldes statt


    Damit es nicht vergessen wird - in der mdb geht es ja alles nur wenn ich auf SQL odbc umstelle eben nicht mehr
    • Bearbeitet MCDPone Dienstag, 18. September 2012 10:07
    Dienstag, 18. September 2012 10:05