Ik ben bezig om via een Access frontend diverse informatie van een MySQL database te halen. Dit gaat allemaal prima echter nu wil ik graag een query maken die mij per leverancier een export csv file maakt genaamd "leverancier - datumtijd - export.csv"
In de tabel zelf staan een 5 tal velden (id, sku, qty, supplier, cost). Hiervan heb ik alleen sku,qty en cost nodig per leverancier.
Ik dacht dat het makkelijkste zou zijn om een formulier te maken met een knop waarmee ik een vba script oproep en dat dan automatisch de files gemaakt worden op een plek ergens. Daarna mag die betreffende database leeg gemaakt worden.
Ik heb onderstaande VBA met wat knip en plak werk gemaakt echter doet hij alleen de volledige database opslaan als ik daarheen verwijs. In die database staan echter nog meer velden welke ik niet wil hebben in de query.
Ik heb hier de hele middag diverse dingen zitten te proberen echter kom ik er niet wijs uit. Steeds weer als ik iets aanpas krijg ik weer andere foutmeldingen waardoor ik vast zit hiermee.
Wie kan mij vertellen wat ik fout doe of hoe ik dit het makkelijkste kan oplossen.
In de tabel zelf staan een 5 tal velden (id, sku, qty, supplier, cost). Hiervan heb ik alleen sku,qty en cost nodig per leverancier.
Ik dacht dat het makkelijkste zou zijn om een formulier te maken met een knop waarmee ik een vba script oproep en dat dan automatisch de files gemaakt worden op een plek ergens. Daarna mag die betreffende database leeg gemaakt worden.
Ik heb onderstaande VBA met wat knip en plak werk gemaakt echter doet hij alleen de volledige database opslaan als ik daarheen verwijs. In die database staan echter nog meer velden welke ik niet wil hebben in de query.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| Private Sub Exports_Click()
Dim strSQL As String
Dim testSQL As String
Dim rs As DAO.Recordset
Dim ranSupplier As String
Dim LDate As String
Dim qd As DAO.QueryDef
Dim iQdef As Variant
Dim db As DAO.Database
Dim opslag As String
Set db = CurrentDb
For Each iQdef In db.QueryDefs
If iQdef.Name = "tmpExport" Then
db.QueryDefs.Delete ("tmpExport")
End If
Next iQdef
LDate = Date
strSQL = "SELECT DISTINCT inkoop_orders.supplier FROM inkoop_orders" 'define the SQL result that you want to loop
Set rs = CurrentDb.OpenRecordset(strSQL)
If Not rs.BOF And Not rs.EOF Then
rs.MoveFirst
While (Not rs.EOF)
ranSupplier = rs.Fields("supplier")
testSQL = "SELECT inkoop_orders.sku, inkoop_orders.qty, inkoop_orders.cost FROM inkoop_orders WHERE supplier like '*" & ranSupplier & "*'"
MsgBox testSQL
Set qd = db.CreateQueryDef("tmpExport", testSQL)
opslag = "d:\export.csv"
DoCmd.TransferText acExportDelim, "inkoop_orders", "tmpExport", "opslag", True
MsgBox (rs.Fields("supplier")) 'define the field you want to return data
db.QueryDefs.Delete "tmpExport"
rs.MoveNext
Wend
End If
rs.Close
Set rs = Nothing
db.QueryDefs.Delete "tmpExport"
db.Close
Set db = Nothing
Set qd = Nothing
End Sub |
Ik heb hier de hele middag diverse dingen zitten te proberen echter kom ik er niet wijs uit. Steeds weer als ik iets aanpas krijg ik weer andere foutmeldingen waardoor ik vast zit hiermee.
Wie kan mij vertellen wat ik fout doe of hoe ik dit het makkelijkste kan oplossen.
-Te huur