Daten in eine SQL Datenbank wegschreiben (GUI)

  • Guten Morgen zusammen,

    ich bin in der Programmierung neu und habe ein Script erstellt. Dieses Script hat 3 Fragen bzw. 3 InputBoxen, die Antworten möchte per "Speichern" Button
    ich eine Access Datenbank wegschreiben, wie funktioniert das genau?


    Quellcode:


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <SQLite.au3>


    #Region ### START Koda GUI section ### Form=c:\users\*\documents\autoit\erstegui.kxf
    $Erste = GUICreate("Erste", 525, 336, 193, 149)
    GUISetBkColor(0xFFFFFF)
    $Label1 = GUICtrlCreateLabel("Mein erstes Programm", 16, 16, 207, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Reference Sans Serif")
    Global $IO1 = GUICtrlCreateInput("", 24, 72, 129, 21)
    Global $IO2 = GUICtrlCreateInput("", 24, 128, 129, 21)
    Global $IO3 = GUICtrlCreateInput("", 24, 184, 129, 21)
    $Radio1 = GUICtrlCreateRadio("Vorkenntnisse vorhanden", 200, 72, 161, 17)
    $Radio2 = GUICtrlCreateRadio("Bist du bereit auch Sonntags zu Arbeiten (24/7)", 200, 128, 300, 17)
    $Radio3 = GUICtrlCreateRadio("Wärst du einverstanden, wenn wir dich ausspionieren?", 200, 184, 300, 17)
    $Exit = GUICtrlCreateButton("Exit", 16, 264, 75, 25)
    $Button2 = GUICtrlCreateButton("Speichern", 112, 264, 107, 25)
    $Label2 = GUICtrlCreateLabel("Wie heitßt du?", 24, 48, 73, 17)
    $Label3 = GUICtrlCreateLabel("Interessierst du dich für Technik?", 24, 104, 161, 17)
    $Label4 = GUICtrlCreateLabel("Trage deine sonstigen Interessen ein:", 24, 160,2000, 17)
    $Label5 = GUICtrlCreateLabel("Welche Interessen oder Ziele hast du?", 200, 48, 187, 17)
    GUICtrlCreateCombo("Wähle aus!", 200, 224, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1,"mit Abschluss|ohne Abschluss|evt. Vorkenntnisse")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Exit
    Exit
    Case $Button2
    Local $oRS
    Local $oConn
    $oConn = ObjCreate("ADODB.Connection")
    $oRS = ObjCreate("ADODB.Recordset")
    $oConn.Open("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\Users\*\Documents\AutoIT\First Steps\SafeMe.accdb")
    $oRS.Open("INSERT INTO SafeMeMI (Name, Interessen, Sonstiges) VALUES (" & GUICtrlRead($IO1) & "," & GUICtrlRead($IO2) & "," & GUICtrlRead($IO3) &")", $oConn, 1, 3)
    ;MsgBox(0,"Test",GUICtrlRead($IO1))
    EndSwitch
    WEnd

  • Was willst du denn nun genau? Im Titel schreibst von einen SQL Datenbank und im Text von einer Access Datenbank.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    • Offizieller Beitrag

    Wenn du eh Access verwendest, warum jetzt noch AutoIt dazu mixen? Access bietet dir eine programmierbare Datenbankoberfläche mit Userinterface, kannst du doch dann auch nutzen (wobei ich mit Access nie richtig warm geworden bin).
    Und was bitte ist eine "SQL-Datenbank in Access"? Das ist eine Access Datenbank (mdb). Kannst du natürlich auch mit AutoIt ansprechen. Ich glaube ich habe auch dazu mal eine (ansatzweise) UDF gesehen. Aber nicht immer ist alles auch gut, was möglich ist.

    • Offizieller Beitrag

    Wenn du mit ADODB arbeitest, musst du auch die richtigen Methoden wählen. Es erstaunt mich, dass du jetzt schon der 2.te User bist, der ein Query mit .Open ausführen will, statt mit .Execute.

    Schau dir mal die Verwendung von ADODB hier an.
    Und bist du dir sicher beim Verbindungsstring? Ich habe in einem alten Bsp. für mdb-Verbindung stehen "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=DB_PATH;")

  • Hallo, ich bin mir sicher, da ich eine Error Funktion eingebaut habe, die mir anzeigt, wenn die DB nicht geöffnet werden kann.
    Das eigentliche Problem ist, dass ich ein Button am programmieren bin, der mir die Daten aus der DB in ein 2D Array anzeigen soll, jedoch zeigt der mir jede der Daten in jeweils eine ganze Tabelle/Array an, wie bekomm ich das hin, dass er mir die Daten in nur ein Array anzeigt?

    MFg

  • Hallo,

    hier ein Beispiel für das schreiben in eine Access mdb und das auslesen einer Access accdb über die Access.au3.
    Willst du direkt auf eine MS SQL Zugreifen, kannst du dir die sql_udf.au3 ansehen.
    Hier habe ich leider nur Beispiel zum lesen, falls du was benötigst.

    Beispiele sollten auch hier oder im englischen Forum zu finden sein.

    gruß gmmg

    3 Mal editiert, zuletzt von gmmg (24. September 2015 um 12:26)