Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Access and MySQL Добавлено: 05.07.07 17:57  

Автор вопроса:  Skywalker | Web-сайт: iSkywalker.ru | ICQ: 300-70-6пятьЪ 
подскажите, нужно чтобы ацесс работал с мускулом. в интернете нашел такой код:

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. Или же может быть тут что-то другое, а не проблема с дровами.

Так же интересно, когда я делаю вручную Файл-Внешние данные-Связь с таблицами, и через одбц подключаю их, то все таблицы появляются, но в них во всех полях написано #Удалено и лишь в одной таблице все норм но и то в неправильной кодировке. Как решить эту проблему?

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #1
Добавлено: 05.07.07 22:18
так, нашел небитый 3.51 драйвер. Код описанный выше замечательно работает и линкует таблицы. НО во всех полях таблиц значение #Удалено
Этого я не помнимаю, почему так???? Одна таблица даже нормаьно прилинковалась, другие пишут в полях #Удалено, а третьи вообще при открывании говорят ODBC - ошибка вызова. Помогите с эти разобраться.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам