Frage zu ListView + Access Query

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Frage zu ListView + Access Query

Re: Frage zu ListView + Access Query

Post by jNizM » 14 Nov 2018, 09:34

Weil ich es gerade selbst gebraucht habe:

Columns := rs.Count -> Columns := rs.Fields.Count

Re: Frage zu ListView + Access Query

Post by just me » 26 Jan 2017, 12:12

Mit etwas Glück (nicht getestet):

Code: Select all

#NoEnv
conn := ComObjCreate("ADODB.Connection")
conn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=G:\apps\COMMERCI\DBASE\GENERAL\Agent.mdb;")
rs := conn.Execute("SELECT Agent.Agent, Agent.Nom FROM Agent WHERE (((Agent.Nom) Like "*feyde*"));")
; --------------------------------------------------------------------------------------------------
Gui, Add, ListView, w800 r20 +Grid
Fields := rs.Fields
Columns := rs.Count
Loop % Columns ; Header
   LV_InsertCol(A_Index, , Fields.Item(A_Index - 1).Name)
While !(rs.EOF) { ; Rows
   Row := []
   Row.SetCapacity(Columns)
   Loop % Columns
      Row[A_Index] := Fields.Item(A_Index - 1).Value
   LV_Add("", Row*)
   rs.MoveNext()
}
Loop, % LV_GetCount("Column")
   LV_ModifyCol(A_Index, "AutoHdr")
; --------------------------------------------------------------------------------------------------
rs.Close(), rs := ""
conn.Close(), conn := ""
; --------------------------------------------------------------------------------------------------
Gui, Show, , Ergebnis
Return
GuiClose:
ExitApp

Re: Frage zu ListView + Access Query

Post by nnnik » 26 Jan 2017, 10:27

Auf die Inhalte eines RecordSet Objektes kann man mit der Funktion getRows zugreifen:
https://msdn.microsoft.com/en-us/librar ... s.85).aspx
Danach muss du nur noch für jede Zeile einmal LV_Add ausführen um die Zeile der ListView hinzuzufügen:

Code: Select all

rows := rs.getRows()
Loop % rows.1.MaxIndex() ;hole dir die Anzahl der Zeilen
	LV_Add( "", row.1[A_Index], row.2[A_Index]... )
Leider ist das ganze blöd sortiert ( zuerst die Spalten dann die Zeilen ) also muss man ein bisschen umsortieren.
Natürlich musst du die ListView erstmal erzeugen bevor du LV_Add verwendest.

Frage zu ListView + Access Query

Post by fef » 26 Jan 2017, 09:26

Hallo

Ich benutze eine MS-Access Datenbank un möchte gerne dass das Resultat einer Abfrage (SQL-Query) in einem einfachen Fenster angezeigt wird.
Das Resultat sollte in Form eines Fenster mit der Funktion ListView angezeigt werden.
Ungefähr so wie hier: https://ahkde.github.io/docs/commands/L ... .htm#Intro


Um Access aufzurufen will ich diesen Code hier benützen. Weiss aber irdendwie nicht weiter wie ich das Resultat der Query mit ListView verbinde ... :think: :

Code: Select all

conn := ComObjCreate("ADODB.Connection")
conn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=G:\apps\COMMERCI\DBASE\GENERAL\Agent.mdb;")
rs := conn.Execute("SELECT Agent.Agent, Agent.Nom FROM Agent WHERE (((Agent.Nom) Like "*feyde*"));")

????? <- hier müste die ListView ja dann kommen...

rs.Close(), rs := ""
conn.Close(), conn := ""
10.jpg
10.jpg (75.95 KiB) Viewed 2123 times

Top