UserForm mit Access-Daten ausführen?

  • Word

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    UserForm mit Access-Daten ausführen?

    Hallo Leute,

    ich habe eine UserForm erstellt, die wie unten dargestellt aussieht. Gibt man dort Daten ein, dann werden in vorformulierte Sätze die entsprechenden Lücken mit dem Inhalt der Textfelder gefüllt.

    Ich würde die UserForm nun gerne so anpassen, dass man per Knopfdruck eine beliebige .accdb-Datei einlesen kann, in der genau diese Daten enthalten sind, auswählen kann und automatisch ein Zeugnis für jeden DB-Eintrag erstellt wird.

    Dass für jeden Eintrag ein Zeugnis erstellt wird, könnte man wohl mit einer For Each-Schleife realisieren, mein Wissen scheitert allerdings schon daran, wie man eine accdb-Datei einliest.

    Könnte mir da jemand weiterhelfen? Ich vermute, es geht wohl irgendwie mit einem FileSystemObject, aber ich habe bisher nur Hinweise zum Erstellen von Textdateien gefunden und das hilft mir nicht wirklich weiter..

    Ich hoffe da voll und ganz auf die Community hier :)
    Bilder
    • Unbenannt.PNG

      27,2 kB, 663×594, 670 mal angesehen
    Ahoi,

    mit also deine accdb als datei zu verwenden, würde ich lasse. Nutze sie als Datenbank.
    Also Connection aufbauen, Sql-Abragen drüber und Daten auswerten.
    ein Tipp ADODB
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Hi Manü,

    das Problem ist, dass ich weder von ADO noch von SQL wirklich Ahnung habe (also eigentlich überhaupt keine) und es mir daher schlicht einfacher erschien, die Datei direkt einzulesen.

    Mir schwebte da sowas vor wie dieses hier, mit dem ich gut umgehen konnte (allerdings halt nur Excel):

    Visual Basic-Quellcode

    1. Sub ExcelEinlesen()
    2. Dim Excel As Object
    3. Set Excel = CreateObject("Excel.Application")
    4. Excel.Workbooks.Open ThisDocument.Path & "\Mappe1.xlsx"
    5. Excel.Application.Visible = False
    6. wert1 = Excel.Worksheets("Liste1").Range("B2").Value
    7. Excel.Quit
    8. Set Excel = Nothing
    9. Selection.TypeText (wert1)
    10. End Sub


    Gibts sowas in der Art auch für Access?
    ja das gibt es, aber schau mal hierrein

    und ich würde auch sagen, gerade weil du wenig ahnung von SQL und DB-Verbindung hast solltest du es darüber machen um dann kannst du am ende sagen, du hast was neues gelernt

    in diesem Sinne: "... Wer sich nicht bewegt spührt seine Ketten nicht..." Zitat: Betontod
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    In der Theorie stimme ich dir zu. Praktisch ist es allerdings ein Versuch, was Zusätzliches in meine Bachelorarbeit einzubringen, die ich nächste Woche abgeben soll, so viel Zeit zum Lernen habe ich also nicht. :thumbdown:

    Wie kann ich denn mittels ADOdb eine Abfrage machen? Bisher hab ich nur verstanden, dass man eine Connection und ein Recordset braucht, das sieht bei mir so aus:

    Visual Basic-Quellcode

    1. Private Sub CommandButton1_Click()
    2. Dim Cn As New ADODB.Connection
    3. Cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    4. Cn.ConnectionString = "Data Source=C:/Benutzer/Name/Desktop/Database1.accdb"
    5. Dim Rs As New ADODB.Recordset
    6. rs.CursorType = adOpenKeyset
    7. rs.LockType = adLockPessimistic
    8. End Sub
    hier habe ich noch einiges gefunden.
    Du gibst an den Recordset eine SQL Anweisung also

    SQL-Abfrage

    1. SELECT * FROM Tabelle WHERE irgendwas = irgendwas ...

    Dann sollte dein Recordset etwas zurückbekommen, was du dann durchgehen und ausgeben kannst.
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Hm, also ich hab das Ganze nochmal etwas umgeschrieben, aber funktionieren tut es noch nicht.

    Visual Basic-Quellcode

    1. Dim nAdoConnection As New ADODB.Connection
    2. Dim nAdoRecordset As New ADODB.Recordset
    3. Dim sAdoConnectString As String
    4. Dim sQuery As String
    5. sAdoConnectString = ThisDocument.Path & "\Database1.accdb"
    6. nAdoConnection.Open sAdoConnectString
    7. sQuery = "Select [Vorname] from [DB1] where ID=1"
    8. With nAdoRecordset
    9. .Source = squeryy
    10. .ActiveConnection = nAdoConnection
    11. .Open
    12. MsgBox .Fields(0).Value
    13. End With


    Wenn ich das ausführe und auf den Button klicke, kommt die Fehlermeldung:
    [Microsoft][ODBC Driver Manager] Der Datenquellname ist zu lang.

    Was nun?