Hallo,
Ik heb nooit eerder in Microsoft Excel gewerkt, laat staan geprogrammeerd. Nu moet ik voor m'n werk iets ontwikkelen op grafiekjes te maken aan de hand van een log tabel op de database. Ik mocht geen Java of .Net gebruiken, maar enkel VBA.
Nu heb ik een verbinding gemaakt met een DB2 database, via een userform waar de gebruiker zijn login & pass moet ingeven. Daarna ga ik een sheet vullen met data uit die log tabel. Dat lukt perfect. Ik heb enkel een klein probleempje met de titels van die kolom. Hoe kan ik die automatisch op de eerste lijn van de juiste kolom zetten ?
Het stukje code ziet er als volgt uit:
Het probleem stukje is dit:
Met Google Groups heb ik niet veel kunnen vinden. Allemaal het geval van rows
Alvast bedankt ^^
Ik heb nooit eerder in Microsoft Excel gewerkt, laat staan geprogrammeerd. Nu moet ik voor m'n werk iets ontwikkelen op grafiekjes te maken aan de hand van een log tabel op de database. Ik mocht geen Java of .Net gebruiken, maar enkel VBA.
Nu heb ik een verbinding gemaakt met een DB2 database, via een userform waar de gebruiker zijn login & pass moet ingeven. Daarna ga ik een sheet vullen met data uit die log tabel. Dat lukt perfect. Ik heb enkel een klein probleempje met de titels van die kolom. Hoe kan ik die automatisch op de eerste lijn van de juiste kolom zetten ?
Het stukje code ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| Set ObjWorkSheet = ThisWorkbook.Worksheets("RAW")
'Clear old results
Range("A1", Columns.Count & ":" & Rows.Count).Clear
AppendToLog ("Old data cleared")
'Set up cell formatting
Range("A1", "A" & Rows.Count).NumberFormat = "m/d/yyyy"
Range("D1", "D" & Rows.Count).NumberFormat = "m/d/yyyy hh:mm:ss AM/PM"
Range("E1", "E" & Rows.Count).NumberFormat = "m/d/yyyy hh:mm:ss AM/PM"
'Open connection
On Error GoTo error_login
ObjConnect.Open (StrConnect)
'Fetch data
ObjRec.Open StrSql, ObjConnect
On Error GoTo error_fetch
Dim jInt As Integer
jInt = 0
For Each j In ObjRec.Fields
ObjWorkSheet.Range("" & Chr(Asc(A) + jInt) & "1").Value = j.Name
jInt = jInt + 1
Next j
While Not ObjRec.EOF
i = i + 1
ObjWorkSheet.[A2].Cells(i) = ObjRec!RUN_DATE
ObjWorkSheet.[B2].Cells(i) = ObjRec!QueryName
ObjWorkSheet.[C2].Cells(i) = ObjRec!Output_To
ObjWorkSheet.[D2].Cells(i) = ObjRec!Start_Time
ObjWorkSheet.[E2].Cells(i) = ObjRec!End_Time
ObjWorkSheet.[F2].Cells(i) = ObjRec!RunSequence
ObjWorkSheet.[G2].Cells(i) = ObjRec!Center
ObjWorkSheet.[H2].Cells(i) = Abs(DateDiff("s", ObjRec!End_Time, ObjRec!Start_Time))
ObjRec.MoveNext
Wend
AppendToLog ("Data retrieved")
'Close connection
ObjRec.Close: ObjConnect.Close |
Het probleem stukje is dit:
code:
Hoe kan ik die celnaam dynamisch gaan aanmaken ?1
2
3
4
| For Each j In ObjRec.Fields
ObjWorkSheet.Range("" & Chr(Asc(A) + jInt) & "1").Value = j.Name
jInt = jInt + 1
Next j |
Met Google Groups heb ik niet veel kunnen vinden. Allemaal het geval van rows
Alvast bedankt ^^