ACCESS Datenbank - mittels ADO eine Listenfeld mit Tabelle der Datenbank verbinden

  • Access

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    ACCESS Datenbank - mittels ADO eine Listenfeld mit Tabelle der Datenbank verbinden

    Hallo,
    ich bin vollkommen neu in der VBA-Access Programmierung. Habe bereits (vor vielen Jahren) mit VB6 etwas Erfahrung gesammelt. ADO-Datenbankverbindungen, Steuerelemente einbinden und einigermaßen SQL sind mir also nicht ganz fremd.
    Nun habe ich die Idee (mit inzwischen 72 Jahren) meine viele Freizeit als Rentner mit ein wenig Datenbank-Programmierung zu Privatzwecken, zu nutzen.

    Eine Tabelle hatte ich erstellt, indem ich über Access 365 eine Tabelle von Excel importiert hatte. Die Tabelle lässt sich problemlos editieren.
    Aber gleich zu Beginn stoße ich auf Probleme. Der Recordset wurde Problemlos über ADO mit der Tabelle verbunden und funktioniert. Wenn ich aber eine ListBox oder KomboBox mit dem Recordset verbinden will erscheint beim setzen der RowSource-Eigenschaft immer die Fehlermeldung "Eigenschaft RowSource konnte nicht gesetzt werden. Ungültige Eigenschaft"
    Die ListBox befindet sich in einer UserForm.
    Die Syntax ist eigentlich banal. Fehlt vielleicht ein Verweis ...ich komme jedenfalls nicht weiter, bitte um Hilfe!
    Gruß
    Werner

    Visual Basic-Quellcode

    1. Dim cn As New ADODB.Connection
    2. Dim rs As New ADODB.Recordset
    3. Dim Path As String
    4. Dim DS As String
    5. DS = "C:\Users\wf\OneDrive\Dokumente\Access\DKV_Backup.accdb"
    6. Path = "SELECT * from tab_Alle"
    7. cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & " Data Source = '" & DS & "'"
    8. Set rs = New ADODB.Recordset
    9. With rs
    10. Set .ActiveConnection = cn
    11. .Source = Path
    12. .LockType = adLockOptimistic
    13. .CursorType = adOpenKeyset
    14. .Open
    15. End With
    16. Me.ListBox1.RowSource = Path
    17. End Sub

    *Topic verschoben, VB-Tag eingefügt*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Versuche mal dies

    Visual Basic-Quellcode

    1. Me.ListBox1.RowSource = rs​

    statt

    Visual Basic-Quellcode

    1. ​ Me.ListBox1.RowSource = Path


    Kurze Frage am Rande, du willst einen zweite Datenbank als Quelle nutzen und nicht die aktuelle DB?

    Denke bitte auch daran, wenn Du eine Connection auf machst, solltest Du diese auch wieder zumachen.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Bilder kannst Du forenintern über [+ Erweiterte Antwort] -> _|Dateianhänge|_ -> [Hochladen] posten.
    Wenn Du [Quellcode] nicht anklicken kannst, um den Modus zu deaktivieren, dann könnte ggf. ein AdBlocker dazwischenfunken.

    Das normale Beitragsfeld sollte so bei Dir aussehen:
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    In Deiner Datenbank ist die Tabellen direkt drin oder als Verknüpfung eingebunden?

    Das Formular sollte die Tabelle tab_Alle als Datenquelle haben. Dann fügst Du die Listbox mit dem Assistenten ein und bindest diese an das Feld für den Rechungsersteller.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Okay, damit erstelle ich ein Formular, dass der Tabelle entspricht. Was mache ich damit? Ich dachte eigentlich ich könnte, wie von früher gewohnt, eine Anwendung in VBA-Code mit CmdButtons, TxtFeldern etc. zur Steuerung der Anwendung erstellen. Geht das nicht?

    Andere Frage: habe versucht VB6 wieder zu installieren, habe noch die Original-CD's, geht aber wohl nicht wegen 64Bite etc. ...oder? Mit VB6 hätte ich kein Problem meine Anwendung zu erstellen.

    Ich würde jetzt ungern aufgeben!

    Gruß
    Werner
    Dann nimm bitte aber nicht VB6 sondern nehme das VisualStudio (gibt es kostenfrei). Dann Kannst Du dir mit VB.net Deine Anwendung ähnlich wie in VB6 bauen.

    Access hat natürlich auch die klassischen VB-Formulare, aber für die Datenverwaltung in Access gibt es die Access-Formulare. Das war in Access aber eigentlich immer schon so.
    Bitte passe auf VBA <> VB6.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).

    lagoCostanza schrieb:

    habe versucht VB6 wieder zu installieren, habe noch die Original-CD's, geht aber wohl nicht wegen 64Bite etc. ...oder?

    Klar geht VB6 auch auf einem 64bit Windows zu installieren. Wäre ja schlimm wenn nicht. :D Es gibt da allerdings ein paar Sachen zu beachten und vorzubereiten. Im Internet findest Du diverse Anleitungen wie VB6 zu installieren ist. zB. diese: codeproject.com/Articles/11910…-Visual-Studio-on-Windows Im Prinzip ab "Run Setup Wizard" wobei ich noch nie den VmPath, den Schritt davor, geändert habe. Ich habe ein MSJAVA.DLL (leere Textdatei erstellen, zu DLL umbenennen) im Windows-Ordner erstellt. Das verhindert das versucht wird den alten JAVA-Quatsch installieren zu wollen. Dann den VB6-Installer mit "Als Administrator ausführen..." starten und dann "Custom Settings" auswählen und hier alles abwählen wie in der Anleitung beschrieben. Die MSDN-CDs brauchst nicht wirklich zu installieren. Da gibt es Probleme mit den alten Helper-Files-Format, bzw mit dem Betrachter, der ab WinXXX? deaktiviert wurde. Nach der Installation muss dann nur noch die VB6.Exe (oder der Link dahin) angepasst werden (siehe ScreenShot). Dieses Tool nuke.vbcorner.net/Articles/VB6…nguage/en-US/Default.aspx soll ebenfalls bei der Installation vn VB6 helfen. Muss ebenfalls mit "Als Administrator ausführen..." gestartet werden. Gibt auch eine Anleitung zu diesem Tool auf Youtube. Habe dieses Tool allerdings noch nie gebraucht oder eingesetzt.

    Ansonsten: Wie schon geschrieben. VisualStudio Community installieren und mit .NET arbeiten.
    Bilder
    • VB6.png

      19,97 kB, 414×543, 62 mal angesehen
    Mfg -Franky-

    lagoCostanza schrieb:

    Vielleicht darf ich bei Problemen noch einmal auf Dich zukommen.

    Aber sicher doch.

    Edit: Nur bei Datenbanken kann ich dir nicht helfen.
    Mfg -Franky-

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „-Franky-“ ()

    Ich habe mir eine VB6-Umgebung abgespeichert, indem ich eine virtuelle Maschine (VirtualBox) erzeugt habe auf der ich XP installierte und mit den entsprechenden Entwicklertools der damaligen Zeit bestückte.

    Ich habe sie lange nicht mehr gebraucht, aber falls tatsächlich noch irgendein Kunde mi einem historischen Problem kommt, kann ich damit quasi die Zeit zurück drehen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    VB6 unter Windows 10 21H2 x64 habe ich selbst erfolgreich am Laufen. Man sollte aber auch alle Updates installieren: Welche Updates für Visual Basic 6.0 - Hat jemand einen Überblick?

    Bei mir war es aber einfacher als unter obiger Anleitung in Post #13. Nur als Admin starten und den ODBC-Treiber nicht mitinstallieren. Und die MSDN-Libary klappt auch noch gut.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum