powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access + MySql
11 сообщений из 11, страница 1 из 1
Access + MySql
    #39758074
PWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех.

Задача сделать базу на MySql + Access2003

На сервере MySql завел базу и сделал в базе табличку.

Код: sql
1.
SELECT id2, txt2 FROM pww2_schema.new_table;



Задача вывести в табличую форму ее содержание.

Сделал подключение к базе
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    Dim oConn As Object
    Set oConn = New ADODB.Connection
 
    oConn.Open "DRIVER={MySQL ODBC 8.0 Unicode Driver};" & _
               "SERVER=127.0.0.1;" & _
               "DATABASE=pww2_schema;" & _
               "UID=root;" & _
               "PASSWORD=pww41900;" & _
               "PORT:3306;" & _
               "Option=3;"
    
    If oConn.State = adStateOpen Then
        'MsgBox "Ok connected!"
    Else
        MsgBox "Error - not connect... "
    End If



К серверу могу обратиться и получить записи вот так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Dim cmd As ADODB.Command  'переменная в которой будет запрос
    Set cmd = New ADODB.Command
    
    Dim rec As ADODB.Recordset 'переменная в которой будет результат запроса
    Set rec = New ADODB.Recordset
    
    Set cmd.ActiveConnection = oConn 'указываем соединение см.выше
    cmd.CommandText = "SELECT * FROM pww2_schema.new_table;" 'запрос к БД
    cmd.CommandType = adCmdText
    cmd.Execute
     
    Set rec.ActiveConnection = oConn
    rec.Open cmd
    Debug.Print (rec.Fields("id2").Value)
    'потом закрыть и прибить rec, cmd, oConn 



А дальше не получается отобразить содержание таблицы в форму.
Побывал и mdb, и adp форматы.
В интернете находил решения на DAO, но не проверял их (не знаком с DAO близко).

Отзовитесь кто знает решение подобной проблемы.
...
Рейтинг: 0 / 0
Access + MySql
    #39758079
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PWW,
Приветствую, я активно использую связку MySQL + MS Access.

У меня здесь есть отдельный топик по данному вопросу. Сейчас пороюсь ,найду.

Предварительно могу сказать, что выводить данные сразу в грид табличной формы очень отвратительно.
Потому что при попытке присвоить форме отвязанный рекордсет (ну к примеру SET Me.recordset = rs 'канонический вид присвоения рекордсета форме. ) оно то все работает и присваивается, и редактируется , но эта бодяга работает так медленно, что можно состариться и умереть. Фильтры кстати пользовательские не работают при таком способе присвоения.
Сейчас найду и пришлю.
...
Рейтинг: 0 / 0
Access + MySql
    #39758085
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как передать значение набора данных ADO.recordset на табличную форму (6 лет назад писал, вспомнил прослезился:))

ТУТ

При таком способе на форме ,сразу после присвоения можно в обычном ручном режиме менять данные , они автоматом будут меняться и на сервере итд.итп.( Не забудьте проиндексировать/создать ключевые поля в таблицах на самом сервере!)
Но есть одно НО, даже несколько НО. При больших размерах таблицы работает крайне медленно, слетают сортировки, не работает пользовательский фильтр. В общем плохо.

Лучше линкуйте таблицы с MySQL server в аксесс. И линкованную таблицу уже транслируйте на форму. В этом случае все работает великолепно.
...
Рейтинг: 0 / 0
Access + MySql
    #39758088
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловЛучше линкуйте таблицы с MySQL server в аксесс. И линкованную таблицу уже транслируйте на форму. В этом случае все работает великолепно.

ну да, что мудрить то... такой подход самый эффективный в любых случаях, Связь с таблицами - > Внешние данные -> Источники ODBC и в путь
...
Рейтинг: 0 / 0
Access + MySql
    #39758093
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, что не ADP - работает ужасно. И чем больше данных - тем ужаснее работает.
Линковать и так далее - зло, надо чуть-чуть изменять мышление и получать через ADO фильтрованные (отсортированные) данные и с ними уже работать. Привыкнуть к тому, что есть limit записей (WHERE limit). Любые join`ы - хоронят ваше произведение, потому делать через нативные запросы к самой MySQL, либо через созданные предварительно там запросы или view.
...
Рейтинг: 0 / 0
Access + MySql
    #39758132
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

adp - вещь!!!
...
Рейтинг: 0 / 0
Access + MySql
    #39758292
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag....
ну да, что мудрить то... такой подход самый эффективный в любых случаях, Связь с таблицами - > Внешние данные -> Источники ODBC и в путь

Очень удобно и вариант бюджетный и синтаксис MySQL очень дружелюбен , и тут же можно параллельно писать веб морды на народных JS+PHP+HTML :)
...
Рейтинг: 0 / 0
Access + MySql
    #39758316
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинВсе, что не ADP - работает ужасно. И чем больше данных - тем ужаснее работает.
Линковать и так далее - зло, надо чуть-чуть изменять мышление и получать через ADO фильтрованные (отсортированные) данные и с ними уже работать. Привыкнуть к тому, что есть limit записей (WHERE limit). Любые join`ы - хоронят ваше произведение, потому делать через нативные запросы к самой MySQL, либо через созданные предварительно там запросы или view.

ADP весчь, но её больше не поддерживают , начиная с MS Access 2013, RIP. Последние года два в основном в компаниях ставят уже MS 2013.
...
Рейтинг: 0 / 0
Access + MySql
    #39758436
PWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,


Ну в общем попробовал, спасибо ("какая гадость это ваша заливная рыба").

Форма выводится пустая

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim rst As New ADODB.Recordset
Dim strSQL As String
strSQL = "SELECT id2,ttt2 FROM pww2_schema.new_table;"

rst.Open strSQL, oConn, adOpenDynamic, adLockOptimistic
Set Me.Recordset = rst

''''''''''

rst.Close
oConn.Close
Set rst = Nothing
Set oConn = Nothing
...
Рейтинг: 0 / 0
Access + MySql
    #39758440
PWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжу:
Попробовал побегать по Recordset, по серверному рекорсету бегает, но на форму перенести по строкам не получилось. По ней, я так понимаю, надо тоже перемещаться, а это как раз и не получилось.
...
Рейтинг: 0 / 0
Access + MySql
    #39758537
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PWWПродолжу:
Попробовал побегать по Recordset, по серверному рекорсету бегает, но на форму перенести по строкам не получилось. По ней, я так понимаю, надо тоже перемещаться, а это как раз и не получилось.

Возникала подобная проблема, когда место в гриде табличной формы резервируется по количеству строк, но самих записей не видно.

1) Посмотрите в какой кодировке у вас данные в базе на MYSQL (я всегда ставлю стандартную UTF 8 general ci)
2) Проверьте там же на сервере в таблице базы ,что есть ключевое поле, PRIMARY KEY. Если нет, то обязательно нужно назначить.
3) Скачайте на компьютер сразу и 32х b 64x битную версию MySQL ODBC driver.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access + MySql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]