1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. gmmg

Beiträge von gmmg

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 13. Mai 2014 um 10:12

    kannst du nicht einfach ein (Select ID FROM "&$tabellenname&" WHERE Stick = '" &$iStick&"'" AND Box = '" &$iBox&"'" ) machen?

    [autoit]


    $datenbankpfad = "d:\Test.accdb"
    $tabellenname = "Tabellentest"
    $Spalte0 = "ID"
    $Spalte1 = "Stick"
    $Spalte2 = "Box"

    [/autoit][autoit][/autoit][autoit]

    $query = "SELECT * FROM " & $tabellenname & " WHERE Box = '12' AND Stick = '3'"
    $strData1 = _ReadOneFld($query, $datenbankpfad,$Spalte0)

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite($query& @CRLF &$strData1)
    MsgBox(0,"",$query & @CRLF & "Ergebnis: " & $strData1)

    [/autoit][autoit][/autoit][autoit]

    Func _ReadOneFld($_sql, $_datenbankpfad, $_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $datenbankpfad & ";")
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_sql, $adoCon)

    [/autoit][autoit][/autoit][autoit]

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields($_field).Value
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc

    [/autoit]

    so in etwa ...

    gruß gmmg

  • MSSQL 2008 Abfrage = keine Ergebnisse, bzw. kein Update

    • gmmg
    • 12. Mai 2014 um 15:32

    funktioniert den dein SQL Statement in der "SQL Server Management Studio" Console?

    gruß gmmg

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 7. Mai 2014 um 12:30

    super wenn es jetzt geht :)

    Gruß gmmg ;)

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 6. Mai 2014 um 20:26

    hallo MadCatz ...

    hast du denn mal eine exe daraus erstellt und die dann getestet?

    meine exe mit datenbank hat ja bei dir auch funktioniert ...

    Was hast du denn Überhaupt für ein Betriebssystem? Ich habe Win7 Professional X64.

    im englischen Forum gibts noch den Hinweis, dass man folgenden code am anfang des scriptes einfügen soll!

    [autoit]


    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

    [/autoit]

    und hier noch ein weiteres Thema dazu [ gelöst ] Verbindung zu Access 2010 DB nicht möglich

    2007 Office System Driver: Data Connectivity Components
    http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=23734

    gruß gmmg

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 6. Mai 2014 um 09:17

    OK ...

    Falls du nochmal hilfe benötigst, schreib einfach ...

    Gruß gmmg ;)

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 6. Mai 2014 um 08:40

    ok ...

    wenn das script bei anderen auch geht, ist das schon seltsam!
    hast du das mal an einem anderen client getestet?

    mit der ID in der Datenbank hat das eigentlich nichts zu tun! Könntest aber die DB mal bearbeiten und die Splate ID entfernen ...
    und bei dir geht das auch nicht, wenn du eine exe aus deinem script erstellst und diese dann startest?

    gruß gmmg :)

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 5. Mai 2014 um 15:36

    welche autoit version benutzt du denn?

    ich habe die Autoit 3.3.10.2 (siehe Bild) und Scite Version 3.3.7

    gruß gmmg ;)

    Dateien

    version.PNG 23,03 kB – 0 Downloads
  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 5. Mai 2014 um 15:23

    hallo MadCatz ...

    auch mit der au3 und test datenbank von mir bekommst du den fehler?

    entferne mal das "@crlf" bei "$_output = $_output & .Fields($_field).Value @crlf"

    [autoit]


    $_output = $_output & .Fields($_field).Value

    [/autoit]

    leerzeichen hast du hoffentlich nicht in den feldwerten ... kommt ja manchmal beim kopieren und einfügen vor ...
    ansonsten, würde ich nochmal aud der Test.accdb eine Test.mdb machen und den code wie folgt ändern

    [autoit]


    $adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)

    [/autoit]

    gruß gmmg

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 5. Mai 2014 um 12:21

    hab dir mal meine dateien als zip per privater nachricht gesendet ..

    gruß gmmg

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 5. Mai 2014 um 10:47

    dazu gibt es im netz jede menge anleitungen :)

    http://www.youtube.com/watch?v=QVX0VsE7_Xk

    siehe Bilder ...

    Dateien

    Abfrage.jpg 845,85 kB – 0 Downloads abfrage2.PNG 42,83 kB – 0 Downloads
  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 5. Mai 2014 um 09:47

    Also bei mir funktioniert das!

    hast du mal im access selbst die SQL Abfrage gemacht? (siehe Bild)

    [autoit]


    $datenbankpfad = "d:\Test.accdb"
    $tabellenname = "Tabellentest"
    $Spalte1 = "Stick" ;nicht ID Spalte
    $Spalte2 = "Box" ;nicht ID Spalte

    [/autoit][autoit][/autoit][autoit]

    $query = "SELECT * FROM " & $tabellenname & " WHERE Box = '22'"
    $strData1 = _ReadOneFld($query, $datenbankpfad,$Spalte1)

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite($query& @CRLF &$strData1)
    MsgBox(0,"",$query & @CRLF & "Ergebnis: " & $strData1)

    [/autoit][autoit][/autoit][autoit]

    Func _ReadOneFld($_sql, $_datenbankpfad, $_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $datenbankpfad & ";")
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_sql, $adoCon)

    [/autoit][autoit][/autoit][autoit]

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields($_field).Value & @CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit]

    gruß gmmg

    Dateien

    Abfrage_Access.PNG 82,09 kB – 0 Downloads
  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 5. Mai 2014 um 09:11

    Hallo MadCatz :)

    deine Abfrage (Select + From ...) ist falsch, zumindest hier in deinem angegeben Quelltext!
    Muss heißen Select * From ....

    Gruß gmmg ;)

  • Kompiliertes Script soll "sich selbst" löschen können.

    • gmmg
    • 30. April 2014 um 15:25

    kannst du nicht deine exe in die Ausnahmeliste in den Bitdefender einfügen!
    oder hast du das schon gemacht!

    gruß gmmg

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 26. April 2014 um 18:18

    Hallo MadCatz,

    1. bitte alle Leerzeichen aus den Datenbanknamen, Tabellennamen, Spaltenüberschriften entfernen!
    2. Umlaute gehören da auch nicht rein ü, ä, ö usw ... :)

    Teste mal deine Abfrage mit MS Access ... Im SQL Modus ...

    Erstelle mal eine Access DB nach meinem Beispiel, mit den paar feldern und teste mal den geposteten Code ...

    Gruß gmmg ;)

  • Access (.accdb) Datenbank auslesen etc.

    • gmmg
    • 25. April 2014 um 11:51

    hallo,

    hier nochmal ein beispiel zum auslesen einer access accdb :)

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ;--------- Modify the variables below as desired or applicable -------
    $dbname = "d:\dbtest.accdb"
    $tblname = "Tabelle1"
    $fldname01 = "Feld1"
    $format = "Text(50)"
    $fldname02 = "Feld2"
    $format = "Text(50)"

    [/autoit] [autoit][/autoit] [autoit]

    $query = "SELECT * FROM "& $tblname & " WHERE Feld2 = 'test2'"
    $strData1 = _ReadOneFld($query, $dbname, $fldname01)

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite( $query & @crlf & $strData1)
    MsgBox(0,"",$query & @crlf & "ergebnis: " & $strData1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;------access DB auslesen -------------
    Func _ReadOneFld($_sql, $_dbname, $_field)
    Dim $_output
    $adoCon = ObjCreate("ADODB.Connection")
    $adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $dbname & ";")
    $adoRs = ObjCreate("ADODB.Recordset")
    $adoRs.CursorType = 1
    $adoRs.LockType = 3
    $adoRs.Open($_sql, $adoCon)

    [/autoit] [autoit][/autoit] [autoit]

    With $adoRs
    If .RecordCount Then
    While Not .EOF
    $_output = $_output & .Fields($_field).Value & @CRLF
    .MoveNext
    WEnd
    EndIf
    EndWith
    $adoCon.Close
    Return $_output
    EndFunc ;==>_ReadOneFld

    [/autoit]

    gruß gmmg :)

    Bilder

    • TestACCDB.PNG
      • 11,94 kB
      • 450 × 169
  • Aktualisierung der Exe

    • gmmg
    • 24. April 2014 um 14:48

    hallo zusammen,

    ich mach das immer wie folgt!
    entweder über eine ini datei, die dann beim start auf dem server und local überprüft wird oder wie unten im script zu sehen, über die fileversion, die beim kompilieren vergeben wird!

    Beispiel des Inhaltes einer ini datei

    [INFO]
    VERSION=1.0.2.3

    der grobe Ablauf wäre wie folgt ...
    man startet das programm, dieses prüft nun die fileversion oder ini lokal und auf dem server und je nach ergebnis, wird eine updater exe gestartet, die dann die neue programmversion in den programmpfad kopiert ...

    [autoit][/autoit][autoit][/autoit][autoit]

    _Programm_pruefen()

    [/autoit][autoit][/autoit][autoit]

    Func _Programm_pruefen()

    [/autoit][autoit][/autoit][autoit]

    ;---Fileversion abrufen------
    $sV1 = $vlw_path & "\Programm.exe" ; exe auf dem server
    $sV2 = "C:\Programm.exe" ;exe auf dem client

    [/autoit][autoit][/autoit][autoit]

    $v1 = FileGetVersion($sV1) ;server File 1
    $v2 = FileGetVersion($sV2) ;local File 2

    [/autoit][autoit][/autoit][autoit]

    $v1split = StringSplit($v1, ".")
    $v2split = StringSplit($v2, ".")

    [/autoit][autoit][/autoit][autoit]

    ;----------- prüfe ----
    $spl_1 = $v1split[1] & $v1split[2] & $v1split[3] & $v1split[4]
    $spl_2 = $v2split[1] & $v2split[2] & $v2split[3] & $v2split[4]

    [/autoit][autoit][/autoit][autoit]

    $spl_erg = $spl_2 - $spl_1

    [/autoit][autoit][/autoit][autoit]

    If $spl_erg < 0 Then
    Msgbox(0,"",'... Update vorhanden ...')
    Sleep(1000)
    Run($Scriptdir & "\Updater.exe")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]


    ;updater
    Sleep(2000)

    [/autoit][autoit][/autoit][autoit]

    $sV1 = "\\server\Programm.exe"

    [/autoit][autoit][/autoit][autoit]

    FileCopy($sV1, "C:\Programm.exe",1)
    Sleep(2000)

    [/autoit][autoit][/autoit][autoit]

    Run("C:\Programm.exe")

    [/autoit]

    du müsstest das halt dann umbauen, das dein updater die version prüft und die entsprechende exe dann lokal kopiert!
    somit hat jeder user beim neustart der anwendung die aktuelle version vom server ...

    gruß gmmg :)

  • Run Problem

    • gmmg
    • 13. März 2014 um 16:50

    man muss den backslash auch nicht einzeln angeben, sondern kann ihn ja wie folgt übergeben ...

    @ScriptDir & "\Meine.au3"

    [autoit]


    $ProgLink = @ScriptDir & "\Meine.au3" ; hier ist das Script das gestartet werden soll
    MsgBox(0,"", @AutoItExe & ' /AutoIt3ExecuteScript ' & $ProgLink)

    [/autoit]

    gruß gmmg

  • Text aktualisieren

    • gmmg
    • 12. März 2014 um 13:54

    wie schnitzel schon schreibt, du machst oben im Case $bnFilecode eine fileclose rein und im Case $btnsave ein fileopen mit entsprechendem parameter und wieder ein fileclose ..

    sollte doch so gehen ..


    gruß gmmg

  • Verfügbare Papierfachcodes von Drucker ermitteln

    • gmmg
    • 12. März 2014 um 10:01

    hallo Maxxer,

    wir hatten auch schon mal so ein problem, bei druckern mit mehreren fächern!
    ich habe dann den drucker einfach für jedes fach nochmal dem printserver z.b. als HP Laserjet Fach 1 und HP Laserjet Fach 2 angelegt.

    wenn ich nach "change paper tray" oder "set paper tray" kommt einiges ..ob das jetzt für dich passend ist, musst du mal schauen :)

    https://github.com/frogmore/print…ript%20file.vbs

    eventuell hat hier Water noch ne idee, er hat ja im engl. Forum gepostet ...

    gruß gmmg

  • Verfügbare Papierfachcodes von Drucker ermitteln

    • gmmg
    • 11. März 2014 um 14:09

    hier mal was aus dem englischen forum ...

    http://www.autoitscript.com/forum/topic/15…ngs-paper-tray/

    gruß gmmg ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™