powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access + MySQL
49 сообщений из 49, показаны все 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
Access + MySQL
    #39588526
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Access + MySQL
    #39588528
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

Выложил две картинки, в упор не понимаю где ошибка(
...
Рейтинг: 0 / 0
Access + MySQL
    #39588532
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На картинке там вот так должно быть, но так же ругается))))
Set Me.Recordset = objMyRecordset
...
Рейтинг: 0 / 0
Access + MySQL
    #39588579
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986,
ну пили, экспериментируй, ищи ошибку
...
Рейтинг: 0 / 0
Access + MySQL
    #39588606
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловДа, не может сопоставить, у тебя поля на форме должны иметь такие же системные имена, как и поля в таблицах на сервереПоля могут иметь любое имя, всем поф. Источники данных полей должны соответствовать полям рекрдсета
...
Рейтинг: 0 / 0
Access + MySQL
    #39588608
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986, ладно, сделаю завтра небольшой пример чтобы цепляться к любому источнику (к которому есть odbc-подключение)
...
Рейтинг: 0 / 0
Access + MySQL
    #39588620
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургSergeyL1986, ладно, сделаю завтра небольшой пример чтобы цепляться к любому источнику (к которому есть odbc-подключение)

Не,он хочет прилепить на форму отвязанный рекордсет. Чтобы нигде кроме формы данные не светились. Чтобы форма сжевала общее выражение типа select * и поля автоматом заполнились. Для этого просто достаточно названий полей на форме,без привязки к источнику данных.

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

Вот примерчик накидал с БД тестовой Мускл
...
Рейтинг: 0 / 0
Access + MySQL
    #39588626
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В книгах написано именно так как написано выше, но у меня по чему не хочет так работать...пишет не в колекции, хотя если запросить имя столбца он выдает ответ что есть такой...
...
Рейтинг: 0 / 0
Access + MySQL
    #39588807
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986, MySQL нет, поэтому всё равно тестировать не на чем.
Пример работает следующим образом. Создай файл *.dsl (в примере приложил возможный вариант, требует проверки) или *.udl . Проверь, что всё работает (про создание файлов смотри в интернете). Файлы помещаешь рядом с примером. Запускаешь пример. В комбобоксе "Источники данных" выбираешь свой файл и нажимаешь на кнопку подключится. Если подключение произошло, то в табе в списках должны выводится имена таблиц, вьюшек и процедур которые есть в источнике на соответствующих вкладках. С списке выбираешь нужный объект (процедуры не выведутся!, можно не кликать) и кликаешь по нему. Содержимое должно вывестись в подчинённую табличную форму.
С MySQL не пробовал, работает с Access, MS SQL Server и Sybase (нужен был универсальный инструмент глянуть содержимое этих БД).
...
Рейтинг: 0 / 0
Access + MySQL
    #39588824
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

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

Попробую разобраться, спасибо
...
Рейтинг: 0 / 0
Access + MySQL
    #39588892
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyL1986, ну что? Подключилось? Али нет?
...
Рейтинг: 0 / 0
Access + MySQL
    #39588895
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловПанургSergeyL1986, ладно, сделаю завтра небольшой пример чтобы цепляться к любому источнику (к которому есть odbc-подключение)

Не,он хочет прилепить на форму отвязанный рекордсет. Чтобы нигде кроме формы данные не светились. Чтобы форма сжевала общее выражение типа select * и поля автоматом заполнились. Для этого просто достаточно названий полей на форме,без привязки к источнику данных.

Вот интересный момент, есть ли возможность у аксесса поддерживать соединение без линкованных таблиц, без потери функциональности форм и проседания по скорости? Интересует работа с табличными формами.Именно всё это и реализовано в примере.
...
Рейтинг: 0 / 0
Access + MySQL
    #39588896
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лаловон хочет прилепить на форму отвязанный рекордсетТолько почему же отвязанный? И привязанный нормально работает. Можно редактировать данные.
...
Рейтинг: 0 / 0
Access + MySQL
    #39589317
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургСергей Лаловон хочет прилепить на форму отвязанный рекордсетТолько почему же отвязанный? И привязанный нормально работает. Можно редактировать данные.

Попробовал пример ваш. Да, крутой инструмент для снятия данных о базе, объектах, быстрой правке.
Глянул модули, он писался в середине 2000х наверное еще)
...
Рейтинг: 0 / 0
Access + MySQL
    #39589488
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловГлянул модули, он писался в середине 2000х наверное еще)Почему? Класс не мой. А сам код писался совсем недавно. Всякие специфические вещи оттуда удалены, оставлена только получение данных. Я и сейчас туда пишу по мере надобности. Эта приблуда исключительно для себя.
...
Рейтинг: 0 / 0
Access + MySQL
    #39589549
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Спасибо за отзывчивость!)))Пропробывал пример, что куча ошибок выдает(((...
К стати пример что я выложил он с действующей БД на мускуле...

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

SergeyL1986К стати пример что я выложил он с действующей БД на мускуле...А толку? "Действующая БД на мускуле" где находится? У тебя. Так-то в примере кроме строки подключения и нет ничего.

SergeyL1986Тепер надо понять как рекордсет засунуть в форму "обычным" способом)))Тебе уже писали
Код: vbnet
1.
Set Me.Recordset = rs


Да и в примере есть.
...
Рейтинг: 0 / 0
Access + MySQL
    #39589633
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловПопробовал пример ваш.А на чём попробовал?
...
Рейтинг: 0 / 0
Access + MySQL
    #39589750
SergeyL1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

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

По ошибке скрин скину
...
Рейтинг: 0 / 0
Access + MySQL
    #39590198
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургСергей ЛаловПопробовал пример ваш.А на чём попробовал?

На своей тестовой базке в mysql, под различными юзерами заходил. Еще ради интереса системную базу sys промониторил , чтобы посмотреть названия процедур и прочего окружения. Классная штука.
...
Рейтинг: 0 / 0
Access + MySQL
    #39590314
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ЛаловНа своей тестовой базке в mysqlЗначит работает. Спасибо. Видимо ТС файл dsl или udl не настроил...
...
Рейтинг: 0 / 0
49 сообщений из 49, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access + MySQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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