Zoals al in eerdere topics aangegeven probeer ik een VBA-script te schrijven dat een MySQL-server gebruikt voor een online backup. Nu heb ik de verbinding op zich gaande en mijn script werkt nu, totdat een tabelnaam spaties bevat.
Nu heb ik twee opties
Wat ik al geprobeerd heb:
Heeft iemand een tip? Hier volgt de code (in VBA dus).
Nu heb ik twee opties
- geen spaties gebruiken
- het script aanpassen
Wat ik al geprobeerd heb:
- tabelnamen tussen haken plaatsen '[' en ']'
- tabelnamen tussen aanhalingstekens plaatsen (chr(34)
- tabelnamen tussen enkelvoudige aanhalingstekens plaatsen "`" en "'"
Heeft iemand een tip? Hier volgt de code (in VBA dus).
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| Public Sub online_exporteren()
'declaratie variabelen
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Dim sql As String
Dim mysql_server As String
Dim mysql_username As String
Dim mysql_password As String
Dim mysql_database As String
Dim connectstring As String
Dim Secretariaat As New Collection
Dim Lesgegevens As New Collection
Dim Instrumenten As New Collection
Dim financien As New Collection
'eerst de variabelen voor de verbinding invullen
mysql_server = "jubalvarsseveld.nl"
mysql_username = "*****"
mysql_password = "****"
mysql_database = "*****"
'invullen tabelvariabelen
With Secretariaat
.Add "Adresgegevens"
.Add "Functies"
.Add "Functie aan Lid"
.Add "Postcodes"
.Add "Straatnamen"
.Add "Woonplaatsen"
.Add "Lidmaatschapsonderbreking"
End With
With Lesgegevens
.Add "Les_docenten"
.Add "Lesdagen"
.Add "Lesgegevens"
.Add "Leslokaties"
End With
With Instrumenten
.Add "Instrument aan Lid"
.Add "Instrumenten - onderhoudsstaat"
.Add "Instrumenten - overige uitleen"
.Add "Instrumentenlijst"
.Add "Instrumentenmerken"
.Add "Instrumenttypes"
End With
With financien
.Add "Contributie aan Functies"
.Add "Korting aan Functies"
.Add "Transacties"
.Add "Transactiesoorten"
End With
'vervolgens connectiestring
connectstring = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=" & mysql_server & ";" _
& "DATABASE=" & mysql_database & ";" _
& "UID=" & mysql_username & _
";PWD=" & mysql_password & _
";OPTION=131072"
'connect to MySQL server using MySQL ODBC 3.51 Driver
Set conn = New ADODB.Connection
conn.ConnectionString = connectstring
'eerst huidige tabellen hernoemen
For x = 1 To Secretariaat.Count
conn.Open
conn.Execute ("DROP TABLE IF EXISTS `" & Secretariaat(x) & "_backup`")
sql = "ALTER TABLE `" & Secretariaat(x) & "` RENAME `" & Secretariaat(x) & "_backup`"
conn.Execute (sql)
conn.Close
Next
'alles exporteren
For x = 1 To Secretariaat.Count
DoCmd.TransferDatabase acExport, "ODBC", "ODBC;" & connectstring, acTable, Secretariaat(x), Secretariaat(x)
Next
End Sub |