powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access + MySQL
25 сообщений из 49, страница 1 из 2
Access + MySQL
    #39587589
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Прошу помощи в разъеснении

есть подключение
On Error Resume Next

Dim oConn As Object
Set oConn = New ADODB.Connection

oConn.Open "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
"SERVER=test;" & _
"DATABASE=test;" & _
"UID=test;" & _
"PASSWORD=test;" & _
"PORT:3306;" & _
"Option=3;"

If oConn.State = adStateOpen Then
MsgBox "Здрасти, я ваша Тетя =)"
Else
MsgBox "Фигасе... =("
End If

Дальше необходимо вытащить данные из какой нибудь таблицы, помогите написать пример...


И еще вопросик, на каждое событие мне надо открывать подключение (написано выше), если необходимо вытащить данные???
...
Рейтинг: 0 / 0
Access + MySQL
    #39587665
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и к примеру поместить в лист бокс
...
Рейтинг: 0 / 0
Access + MySQL
    #39587842
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поизучав данный вопрос я понял что это данные из таблицы вытаскиваются только рекордсетом, и что бы вставить в listbox необходимо организовывать переборку циклом. Можно ли .RecordSource = ???
...
Рейтинг: 0 / 0
Access + MySQL
    #39587848
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986, ну почему сразу перебором... У литбокса есть свойство Recordset , вот этому свойству можно присвоить полученный набор данных.
Можно воспользоваться и свойством RowSource , указав свойству RowSourceType "Список значений". А из набора данных (надеюсь это ADODB.Recordset ) получить правильную строку с помощью метода GetString и присвоить её как источник строк листбокса.
...
Рейтинг: 0 / 0
Access + MySQL
    #39587859
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

не могли бы Вы привести примерчик (синтаксис), заранее спасибо!
...
Рейтинг: 0 / 0
Access + MySQL
    #39587872
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986не могли бы Вы привести примерчик (синтаксис)Синтаксис чего?
Я привёл все ключевые слова (объекты, свойства), поискать по форуму сложно?
listbox.RowSource + ADP
...
Рейтинг: 0 / 0
Access + MySQL
    #39587873
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавлю.

В предложеном треде присвоение набора напрямую не пошло. Видимо неправильно был настроен список, т.к. с 2003 точно работает.
...
Рейтинг: 0 / 0
Access + MySQL
    #39587882
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Пробовал, ошибку выдает...говорит в коллекции нет, явно указываю столбец, ошибку выдает
...
Рейтинг: 0 / 0
Access + MySQL
    #39587890
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986ПробовалГде? Не вижу. У меня плохо со зрением?

SergeyL1986ошибку выдаетКто выдаёт? Имя, адрес, возраст.

SergeyL1986говорит в коллекции нетКто говорит? Имя, адрес, возраст.

SergeyL1986явно указываю столбецКому указываешь и где?

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

Пробовал, ошибку выдает...говорит в коллекции нет, явно указываю столбец, ошибку выдает

Сергей, ты с простым вопросом затеррорил всю ветку.

Вот код , проверку на ошибки только сам напиши)

Код: vbnet
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.
....
Dim oConn As ADODB.Connection
Dim rs As ADODB.Recordset

Set oConn = New ADODB.Connection

'настройки подключения/cоединения
oConn.Open "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
"SERVER=xxxxxxx;" & _
"DATABASE=xxxxxx;" & _
"UID=xxxxxxx;" & _
"PASSWORD=xxxxx;" & _
"PORT:3306;" & _
"Option=3;"

' выборка данных 
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM Твоя_таблица", oConn

' передача в листбокс
Me.listbox1.RowSource = rs.GetString(, , ";", ";") 'почитай про свойства rs.GetString, те что в скобках

'закрытие активного соединения и рекордсета
rs.Close
oConn.Close
Set rs = Nothing
Set oConn = Nothing
....
...
Рейтинг: 0 / 0
Access + MySQL
    #39587949
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

Спасибо, лист бокс заполнился, в догонку читал по ссылке ранее написанной, данный метод имеет изъян в количестве символов?
...
Рейтинг: 0 / 0
Access + MySQL
    #39587950
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986 ,

Сергей, просто ради интереса. На какую тему пилишь базу в связке Access + MySQL?
Сам долблю в этом направлении.
...
Рейтинг: 0 / 0
Access + MySQL
    #39587959
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

В каком смысле тему?
Попросили написать небольшую софтинку для хранения информации. Эксес выбран ввиду того что легко и быстро накидать формы и отчеты, а мускл ввиду того что БД должна быть доступна из разных мест (с эксевской БД что то у меня не получилось).
По сути в эксес можно БД мускула прилинковать как таблицы и работать, но хочется сделать что бы этого не было
...
Рейтинг: 0 / 0
Access + MySQL
    #39587963
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

GetString что то чем дальше в лес тем ментше толковый информации где можно было бы почитать))))
...
Рейтинг: 0 / 0
Access + MySQL
    #39587968
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986Сергей Лалов,

В каком смысле тему?

По сути в эксес можно БД мускула прилинковать как таблицы и работать, но хочется сделать что бы этого не было

Это самый нормальный вариант, залинковать таблицы. Но таким образом, чтобы при открытии проекта выскакивала входная форма mysql, с просьбой ввести логин и пароль. При линке таблиц просто не сохраняй пароль и все, при каждом запуске аксесса и будет эта форма выскакивать.
Это все шляпа, что линкованные таблицы вредны с точки зрения безопасности. Это в родном аксесовском исполнении в них влезть можно, а если они на сервере, то все по другому.
Но для паранойи могу отметить , что у тебя в любом случае используется логин и пароль. Так зная логин и пароль можно и без линкованных таблиц посмотреть структуру бд , с позиции прав доступа этого юзера. Сделать запросов, которые выведут и названия таблиц и прочую информацию.
Просто сделай линкованные таблицы скрытыми, и все. Для конспирации линкованные таблицы можно обозвать совсем не так как на сервере:)
...
Рейтинг: 0 / 0
Access + MySQL
    #39587969
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

Что бы понять всю мысль мне надо еще месяца два-три читать книжки про это хозяйство ))))). За совет спасибо!
...
Рейтинг: 0 / 0
Access + MySQL
    #39587977
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986Сергей Лалов,

Что бы понять всю мысль мне надо еще месяца два-три читать книжки про это хозяйство ))))). За совет спасибо!

Вот, попробуй, с линкованными таблицами, приложил тестовый вариант. Права доступа написаны на стороне сервера mysql. При запуске никакого лишнего кода нет. При вводе выскакивает родное окно mysql с просьбой ввести логин и пароль. Логин user1,пароль 12012018. У этого пользователя доступ только на выборку. Это тестовая прошлая база, но с реализованным вводом логина и пароля.
...
Рейтинг: 0 / 0
Access + MySQL
    #39588204
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,
Либо сервер не доступен, либо Логин и Пароль не верный(
...
Рейтинг: 0 / 0
Access + MySQL
    #39588211
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

в приницпе все так и сделал, только драйвер настроил изначально что бы они были сразу прилинкованы + таблицы скрыты от юзера. Вроде работает)

Но хочется сделать так что бы клиент есть клиент, бд на сервере, у меня по крайне мере такое понимание)))

К стати у меня тут возник следующий ворпос, если recordset является таблицой, которая в памяти, наверное сущестует просто метод перевести ее в "объект типа таблица", что бы потом ее легко вставить в listbox.RecordSource или в таблицу Form.RecordSource , так как я понял recordset в чистом виде туда не поставить
Так как я не силен, можно это сделать?
...
Рейтинг: 0 / 0
Access + MySQL
    #39588473
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986Сергей Лалов,

К стати у меня тут возник следующий ворпос, если recordset является таблицой, которая в памяти, наверное сущестует просто метод перевести ее в "объект типа таблица", что бы потом ее легко вставить в listbox.RecordSource или в таблицу Form.RecordSource , так как я понял recordset в чистом виде туда не поставить
Так как я не силен, можно это сделать?

Да, в форму рекордсет вставить/натянуть на грид формы можно.
Я делал это так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
.....

Set objMyConn = New ADODB.Connection

objMyConn.ConnectionString = "ODBC;Driver={MySQL ODBC 5.3 ANSI Driver};SERVER=localhost;UID=xxxxxxx;PASSWORD=xxxxxxx;DATABASE=xxxxxxx;"
objMyConn.Open

Set objMyRecordset = New ADODB.Recordset

      With objMyRecordset
         Set .ActiveConnection = objMyConn
         .Source = "SELECT * FROM таблица"
         .LockType = adLockOptimistic
         .CursorType = adOpenKeyset
         .Open
      End With
   

      Set Me.Recordset = objMyRecordset ' передать рекордсет на форму

     Set rs = Nothing
      Set cn = Nothing
.......



Очень медленно работает, очень, на форме, если это табличная перестают работать фильтры и сортировка обычные.

На изменение, добавление данных приходится писать отдельные блоки обработки. Тупит по страшному.

С листбоксом не пробовал, так как у него нет свойства recordset. Есть свойство controlsource. Попробуй,хз.

Сервер я ночью отключил дома, ибо не хочу оставлять работающий комп дома на день, поэтому и не подключился ты)
...
Рейтинг: 0 / 0
Access + MySQL
    #39588498
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

Вот тут спотыкается
Set Me.Recordset = objMyRecordset ' передать рекордсет на форму

говорит не "в коллекции не удается найти элемент..."

Я так понимаю вот тут лежит таблица, полученная запросо с сервера objMyRecordset
Me.Recordset - а вот это что? к кому относиться (к форме, если к форме может какие то надо настрйоки еще провести)?

Заранее спасибо!
...
Рейтинг: 0 / 0
Access + MySQL
    #39588503
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986Сергей Лалов,


Me.Recordset - а вот это что? к кому относиться (к форме, если к форме может какие то надо настрйоки еще провести)?

Заранее спасибо!

Me это текущая форма
...
Рейтинг: 0 / 0
Access + MySQL
    #39588510
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MsgBox objMyRecordset.GetString(, , ";", ";") данные вывел, то есть они там есть! я так понимаю форма не может сопоставить столбцы что ли?
...
Рейтинг: 0 / 0
Access + MySQL
    #39588517
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986MsgBox objMyRecordset.GetString(, , ";", ";") данные вывел, то есть они там есть! я так понимаю форма не может сопоставить столбцы что ли?

Да, не может сопоставить, у тебя поля на форме должны иметь такие же системные имена, как и поля в таблицах на сервере
...
Рейтинг: 0 / 0
Access + MySQL
    #39588525
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,
...
Рейтинг: 0 / 0
25 сообщений из 49, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access + MySQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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