подскажите, нужно чтобы ацесс работал с мускулом. в интернете нашел такой код:
Dim connect as String
connect="server=192.168.1.1;user=manager;password=zorro;port=3306;stmt=set names cp1251"
DBEngine.RegisterDatabase "tm", "MySQL ODBC 3.51 Driver", True, connect
'Удаление всех связанных таблиц
Function Drop_linked_tables() As Boolean
On Error GoTo oblom
Dim TD As TableDef
Dim tableName As String
For Each TD In CurrentDb.TableDefs
If (left(TD.connect, 5) = "ODBC;") Or (left(TD.connect, 10) = ";DATABASE=") Then
tableName = TD.Name
CurrentDb.TableDefs.Delete (tableName)
End If
Next TD
CurrentDb.TableDefs.Refresh
Drop_linked_tables = True
Exit Function
oblom:
Drop_linked_tables = False
End Function
'Подключение таблиц MySQL через ODBC
Function StartConnectMySQL(ByVal login As String,ByVal odbcName As String,ByVal db As String) As Boolean
On Error GoTo oblom
Call Drop_linked_tables 'Удалили все связанные таблицы
Dim newTD As TableDef
Dim ws As Workspace
Set ws = CreateWorkspace("ws_MySQL", "", "", dbUseODBC)
Dim connect As String
connect = "ODBC;database=" & db & ";DSN=" & odbcName
Dim MySQL As DAO.Connection
Set MySQL = ws.OpenConnection(odbcName, dbDriverComplete, False, connect)
Dim query As String
query = "use " & db
MySQL.Execute (query)
query = "show tables"
Dim rst As DAO.Recordset
Set rst = MySQL.OpenRecordset(query, dbOpenDynaset)
Do While Not rst.EOF
Set newTD = CurrentDb.CreateTableDef(rst(0))
newTD.connect = "ODBC;DSN=" & odbcName & ";database=" & db
newTD.SourceTableName = rst(0)
CurrentDb.TableDefs.Append newTD
rst.MoveNext
Loop
StartConnectMySQL = True
Exit Function
oblom:
StartConnectMySQL = False
End Function
но он у меня не работает, возможно потому что драйвер я скачал не 3.51 а 5.00.11.00, ибо 3.51 оказался битым
, хотя качал с офф сайта эскуэля. прога вываливается после Set rst = MySQL.OpenRecordset(query, dbOpenDynaset)
Подскажите как сделать эту операцию с драйвером 5.0 или же где можно скачать не битый 3.51. Или же может быть тут что-то другое, а не проблема с дровами.
Так же интересно, когда я делаю вручную Файл-Внешние данные-Связь с таблицами, и через одбц подключаю их, то все таблицы появляются, но в них во всех полях написано #Удалено и лишь в одной таблице все норм но и то в неправильной кодировке. Как решить эту проблему?
Ответить
|