Office: (Office 2007) ADODB.Recordset an Form binden

Helfe beim Thema ADODB.Recordset an Form binden in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen! Ich versuche unter Access 2007 (accdb) mit folgenden Funktionen ein ADODB.Recordset an ein Formular zu binden: Code: Private Function... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von mpaus, 19. April 2011.

  1. ADODB.Recordset an Form binden


    Hallo zusammen!

    Ich versuche unter Access 2007 (accdb) mit folgenden Funktionen ein ADODB.Recordset an ein Formular zu binden:
    Code:
    Im Formular sieht das dann wie folgt aus:
    Code:
    Die Datenbank ist ein SQL Server 2008. Betriebsystem ist Win7 ohne SP1.
    Leider stürzt Access in der Zeile Set Me.Recordset... komplett ab (Access funktioniert nicht mehr). Der Absturz erfolgt ganz exakt nach dem Verlassen der Funktion rsOpenRecordset.

    Ich hoffe ja sehr, dass ich irgenwas falsch mache. Ich hoffe, einer von euch hat einen Rat für mich.

    Schöne Ostertage schon mal!

    :)
     
  2. Wie wäre es, wenn Du das Set weglässt (das Recordset ist hier eine Eigenschaft und keine Objektvariable).
     
  3. Dann kommt Laufzeitfehler 91, Objetvariable oder With-Blockvariable nicht festgelegt.
     
  4. ADODB.Recordset an Form binden

    Hallo!

    Set passt schon, da eine Referenz übergeben wird.

    Grundsätzlich sieht der Code richtig aus. Da im gezeigten Code aber nicht sichtbar ist, was beim Verlassen von goMandant und oData passiert, könnte der Fehler auch dort stecken.
    Eventuell probierst du auch noch adOpenKeyset statt adOpenDynamic aus. Das sollte aber eigentlich egal sein. Wichtig ist nur der clientseitige Cursor, den du aber bereits in der Connection einstellst.
    BTW: Warum öffnest du eigentlich immer eine neue Connection? Ist die Serververbindung so instabil, dass du eine Connection nicht offen halten kannst?

    mfg
    Josef
     
    Josef P., 21. April 2011
    #4
  5. Mit dem goMandant usw. hats nichts zu tun. Es funtkioniert auch nicht ohne.
    Ich habe mal ein Beispiel angehängt. Aus meiner Sicht ist der Code auch richtig...

    @josef*biggrin.gif*as mit der Connection ist anscheinend eine Frage der Philosophie. In einem VB Forum hat man mir geschrieben, dass man doch eine Verbindung nicht einfach offen lassen könne. Die müsse immer geschlossen werden.
    Ich habe ehrlich gesagt keine Ahnung was nun besser ist...
     
  6. Ich habe auch adOpenKeyset statt adOpenDynamic verwendet. Access geht immer wieder zu...
     
  7. Hallo!

    Bei mir funktioniert deine Beispiel-mdb. (Wobei ich natürlich andere Verbindungsdaten und einen anderen Tabellennamen verwendete.)

    Bezüglich "offener Verbindung": die ist sowieso offen solange du das REcordset offen hast und dessen Connection nicht kappst. => Somit kann man meiner Ansicht nach auch die Connection-Referenz in einer extra Variablen halten.

    mfg
    Josef
     
    Josef P., 25. April 2011
    #7
  8. ADODB.Recordset an Form binden

    Hallo Josef!

    Es ist ja eine accdb. Hast du das Fomrular nach Access 2003 importiert?
    Ich habe so langsam das Gefühl, dass es sich um ein Problem von Access 2007 handelt.
     
  9. Hallo!

    ... dann funktioniert eben deine Beispiel-accdb bei mir. *wink.gif* Ich testete allerdings mit Access 2010 und nicht mit 2007.

    Würde eine ADODB-Recordset-Zuweisung mit dem ACE-Provider funktionieren?
    ... also ein ADODB-Recordset aus einem accdb-Backend.

    mfg
    Josef
     
    Josef P., 25. April 2011
    #9
  10. Hallo,
    wo wir schon bei diesem Problem sind, ich hät da gerne auch noch eines.
    Wie kann ich ein ADODB RS und ein Listenfeld zusammenbringen? Geht das direkt oder muss ich in der RS-Schleife die Werteliste erstellen?

    Gruß und sorry fürs OT
    Andreas
     
    avogt_at_home, 25. April 2011
    #10
  11. Hallo!

    @andreas: ab Access 2002 kannst du auch ein ADODB-Recordset an ein Listenfeld binden (Auch das Listenfeld/Listbox hat eine Recordset-Eigenschaft). Dabei aber beachten, dass ein clientseitiger Cursor verwendet werden muss.

    mfg
    Josef
     
    Josef P., 25. April 2011
    #11
  12. Ich dreh durch:

    Ich habe die Function jetzt für den Zugriff auf eine accdb abgeändert. Damit klappt es.
    Ich hatte den Connection String zur Vereinfachung einfach in der .ConnectionString Eigenschaft angegeben.
    Nach dem das nun funktionierte, habe ich den Connection String für den SQL Server auch so eingegeben und siehe da, es klappt auch!

    Code:
    Damit funktioniert die Bindung nun also einwandfrei.
    Wenn ich jetzt noch rausbekomme, was an der vorherigen Function falsch war, wäre ich ja glücklich. Lag es am anderen Provider, den ich genommen habe?
     
  13. ADODB.Recordset an Form binden

    Jetzt verstehe ich die Welt gar nicht mehr:

    Die Bindung klappt nur, wenn ich an das Formular vorher ein Recordset binde, dessen Daten aus einer accdb kommen.

    Also, ich muss erst an irgendein Formular ein Recordset binden, das auf eine accdb zugreift. Danach erst kann ich die Bindung an den SQL-Server vornehmen. Und dann ist es auch egal, welches Formular ich nehme.
    Wenn ich diesen Schritt unterlasse, geht Access wieder zu...

    Ich habe die Datei nochmal zum Verständnis angehängt.
     
  14. Hallo!

    Tritt das Problem bei dir auch in der Beispiel-Anwendung (Datenbank1.accdb) ohne Set Me.Recordset = rsOpenRecordset(sSQL, adOpenKeyset, , True) auf?
    Versuche einmal ADODB 2.1 und probiere auch aus, ob es hilft, wenn du rs.CursorLocation = adUseClient vor dem Öffnen des Recordset setzt.

    mfg
    Josef
     
    Josef P., 26. April 2011
    #14
  15. Hallo!

    Ja, in meiner Beispielanwendung stürzt Access auch ab, wenn ich den Code so abändere:
    Code:
    Ich habe den Verweis auf ADO 2.7 gesetzt -> Access stürzt ab.
    Ich habe den Verweis auf ADO 2.1 gesetzt -> Access stürzt ab.

    Ich habe dann den Code wie folgt geändert:
    Code:
    -> Access stürzt ab.
     
Thema:

ADODB.Recordset an Form binden

Die Seite wird geladen...
  1. ADODB.Recordset an Form binden - Similar Threads - ADODB Recordset Form

  2. Apostroph in sql Recordset

    in Microsoft Access Hilfe
    Apostroph in sql Recordset: Hallo Gemeinde, einen hätte ich noch: sqlTitel = "SELECT * FROM tbl_Files_Edited WHERE Titel='" & strTitel & "'" Set rs1 = db.OpenRecordset(sqlTitel) Enthält strTitel einen...
  3. Recordset auf einmal nicht mehr aktualisierbar

    in Microsoft Access Hilfe
    Recordset auf einmal nicht mehr aktualisierbar: Hallo, ich bin bei der Weiterentwicklung einer seit Jahren funktionierenden Prozedur, bei der u.a. per SQL Datensätze nach einem bestimmten Feld sortiert aus einer Tabelle in ein Recordset...
  4. ADODB Zugriff auf Access 2016

    in Microsoft Excel Hilfe
    ADODB Zugriff auf Access 2016: Liebes Forum, ich habe eine Datenbank in Access 2016 erstellt und möchte nun darin über Aggregatfunktionen zusammenfassen, in eine Excelzelle schreiben und dann rechnen. Der erste Schritt soll...
  5. Recordset wird nicht erfasst

    in Microsoft Access Hilfe
    Recordset wird nicht erfasst: Liebe Access-Profis, wieder bin ich am Ende der Weisheit; dieses Mal geht es um einen VBA-Code, der einen Recordset nicht identifiziert. Das Vorhaben: Im Formular 'Aktuelles Schuljahr' steht in...
  6. Recordset-Feldname mit Variable verbinden

    in Microsoft Access Hilfe
    Recordset-Feldname mit Variable verbinden: Hallo, hat jemand einen Tipp für mich, wie ich einen Recordset-Feldnamen mit einer Variablen kombinieren kann. Ein Pivot-Recordset stellt mir Feldnamen zur Verfügung, die etwa so aussehen:...
  7. Access 2013; VBA; Unterformular via ADODB

    in Microsoft Access Hilfe
    Access 2013; VBA; Unterformular via ADODB: Hallo Leute, leider stehe ich wieder an einem Problem wo ich mir die Finger beim Suchen wund getippt habe. Ich habe folgendes Problem: Ich habe einen Unterformular und möchte die DS per...
  8. ADODB recordset Typen unverträglich

    in Microsoft Access Hilfe
    ADODB recordset Typen unverträglich: Ich habe ein kleines Testprogramm, das schon beim ersten Versuch, es mit f8 auszuführen, mit Typen unverträglich auf dem RecordCount stehen bleibt. Ich habe das aus dem Access 2003 programmieren...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden