Hallo Zusammen,
ich war auf der Suche zum Auslesen der Spaltennamen der Tabelle. Die Funktion _ReadOneFld($_sql, $_dbname, $_field) hat mir aber immer nur die Ergebnisse ohne die Spaltennamen geliefert.
Im englischen Forum habe ich nun ein Code Schnipsel gefunden und entsprechend die _ReadOneFld() angepasst.
Hier nun das Ergebnis.
Code
#include <Array.au3>
Local $DB_Array[1][1]
;--------- Modify the variables below as desired or applicable -------
$dbname = "\\DB-PFfad\datenbank.mdb"
$tblname = "Tabellenname"
;---------------------------------------------------------------------
;$query = "SELECT * FROM " & $tblname
$query = "SELECT * FROM " & $tblname & " WHERE PCName = " & "'" & @ComputerName & "'"
_ReadonField_with_Name($query, $dbname)
_ArrayDisplay($DB_Array)
Func _ReadonField_with_Name($_sql, $_dbname)
$adoCon = ObjCreate("ADODB.Connection")
$adoCon.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $_dbname)
$adoRs = ObjCreate("ADODB.Recordset")
$adoRs.CursorType = 1
$adoRs.LockType = 3
$adoRs.Open($_sql, $adoCon)
With $adoRs
$dimension = .Fields.Count
;ConsoleWrite($dimension & @cr)
ReDim $DB_Array[1][$dimension]
; Column header
$Title = ""
For $i = 0 To .Fields.Count - 1
$Title = $Title & .Fields( $i ).Name & @TAB
$DB_Array[0][$i] = .Fields( $i ).Name ; set the array elements
Next
;ConsoleWrite($Title & @CR & "----------------------------------" & @CR)
; loop through the records
$element = 1
If .RecordCount Then
While Not .EOF
$element = $element + 1
ReDim $DB_Array[$element][$dimension]
$Item = ""
For $i = 0 To .Fields.Count - 1
$Item = $Item & .Fields( $i ).Value & @TAB
$DB_Array[$element - 1][$i] = .Fields( $i ).Value ; set the array element
Next
;ConsoleWrite($Item & @CR)
.MoveNext
WEnd
EndIf
EndWith
$adoCon.Close ; close connection
Return $DB_Array
EndFunc
Alles anzeigen
Falls es einen einfacherer Weg gibt, einfach einmal Antworten.
Gruß gmmg