Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dostęp do MySql z Accessa

1,207 views
Skip to first unread message

krokodyl

unread,
Apr 16, 2008, 8:52:32 AM4/16/08
to
witam.

jak połączyć się z accessa 2003 do serwera MySql.
Próbowałem z opcją "Połącz tabele..." Pliki Typu : Bazy danych ODBC" ale po
wybraniu tego typu wyłącza mi się okienko z wyborem bazy. :(

Celem jest trzymanie danych w MySql a z poziomu Accessa urzywać formularzy i
raportów oraz kwerend.

--
Pozdrawiam
Paweł


Tomasz Kiełpiński

unread,
Apr 16, 2008, 9:04:12 AM4/16/08
to

Po kolei:

- ściągnąć i zainstalować MySQL Connector/ODBC ze strony:
http://dev.mysql.com/downloads/connector/odbc/3.51.html

- w narzędziach administracyjnych (w panelu sterowania) uruchomić
Administratora źródeł danych ODBC i stworzyć DSN użytkownika oparty na tym
sterowniku

- podpiąć w bazie (bazy danych ODBC, komputerowe źródło danych)

- voila

PS. U mnie problem stwarzają polskie znaki diakrytyczne (wyświetlają się
znaki zapytania). Jakbyś sobie z tym poradził będę wdzięczny za info.

Pozdrawiam,
Kiełpiś

Przemysław Rachwał

unread,
Apr 16, 2008, 3:09:45 PM4/16/08
to
Tomasz Kiełpiński pisze:

jakie kodowanie masz ustawione w tabeli w MySQL? pewnie jakieś szwedzkie ;)

eme...@tlen.pl

unread,
Apr 16, 2008, 5:16:30 PM4/16/08
to

Kodowanie UTF8 u mnie rozwiązało problem znaków. Czasem zmiana w
utworzonej tabeli niewiele daje - trzeba utworzyć od nowa... Ale
niedałbym sobie niczego uciąć..,
Co do łączenia można łączyć poprzez DSN ale nie polecam - wtedy takie
źródło danych można podejrzeć a nawet edytować poprzez OpenOffice
Base.
Lepiej wybrać plikowe źródło danych i stworzyć plik z rozszerzeniem
dsn a w nim coś na wzór:
[ODBC]
DRIVER={MySQL ODBC 3.51 Driver}
SERVER=192.168.0.1
DATABASE=plikbazy
USER=uzytkownik
PASSWORD=haslo
OPTION=3

Też OPTION=35 jest dobre pod Access.
Wtedy tak podłączone tabele działają na każdym kompie z zainstalowanym
ODBC MySQL. I nigdzie w systemie nic nie trzeba tworzyc itp.
Zdecydowanie bezpieczniejsze przy Runtime.

MS

Grzegorz Danowski

unread,
Apr 17, 2008, 2:41:35 AM4/17/08
to
Użytkownik <eme...@tlen.pl> napisał w wiadomości
news:a6b0af77-fd8f-4240...@c65g2000hsa.googlegroups.com...
<cite>

Co do łączenia można łączyć poprzez DSN ale nie polecam - wtedy takie
źródło danych można podejrzeć a nawet edytować poprzez OpenOffice
Base.
Lepiej wybrać plikowe źródło danych i stworzyć plik z rozszerzeniem
dsn a w nim coś na wzór:
[ODBC]
DRIVER={MySQL ODBC 3.51 Driver}
...

Wtedy tak podłączone tabele działają na każdym kompie z zainstalowanym
ODBC MySQL. I nigdzie w systemie nic nie trzeba tworzyc itp.
Zdecydowanie bezpieczniejsze przy Runtime.
</cite>

A z tego plikowego dsn nie będą mogły korzystać inne aplikacje?
G.


krokodyl

unread,
Apr 17, 2008, 3:07:13 AM4/17/08
to
Witam.

Dzięki za szybkie odpowiedzi, Mam zainstalowany sterownik MySQL i
skonfigurowane połąćzenie w ODBC ale nie działa mi z jakiegoś powodu wybór
ODBC w ACCESSIE.
Tak jak pisałem wcześniej


"Próbowałem z opcją "Połącz tabele..." Pliki Typu : Bazy danych ODBC" ale po
wybraniu tego typu wyłącza mi się okienko z wyborem bazy. :("

Pozdrawiam
Paweł


eme...@tlen.pl

unread,
Apr 17, 2008, 4:40:32 PM4/17/08
to
On 17 Kwi, 08:41, "Grzegorz Danowski"
<gdn__na@serwerze__poczta.onet.pl> wrote:
> Użytkownik <eme...@tlen.pl> napisał w wiadomościnews:a6b0af77-fd8f-4240...@c65g2000hsa.googlegroups.com...

Pewnie że nie - bo plik dsn jest tylko na kompie tego co tworzy bazkę.
I zupełnie nie jest wymagane na komputerze klienta. Po prostu Access
dane z pliku dsn na sztywno ustawia w bazce i więcej nic do szczęścia
nie potrzebuje. Zapewne dotyczy to także innych silników bazodanowych.
To rozwiązanie podaje MySQL w manualu.
DSN ustawiany w Windows jest upierdliwy.

emes

Adax

unread,
May 3, 2008, 10:19:27 AM5/3/08
to
(...)

> [ODBC]
> DRIVER={MySQL ODBC 3.51 Driver}
> SERVER=192.168.0.1
> DATABASE=plikbazy
> USER=uzytkownik
> PASSWORD=haslo
> OPTION=3
> Też OPTION=35 jest dobre pod Access.
> Wtedy tak podłączone tabele działają na każdym kompie z zainstalowanym
> ODBC MySQL. I nigdzie w systemie nic nie trzeba tworzyc itp.

Witam, pozwolisz, że podłącze się do wątku. Piszeż, że: "Wtedy tak

podłączone tabele działają na każdym kompie z zainstalowanym

> ODBC MySQL". Czt to znaczy, że na wyznaczonym kompie z dostepem do sieci
> należy zainstalować tylko ODBC MySQL, bez kopiowania tego pliku plik.dsn?
> Wydaje mi sie, ze po skopiowaniu bazki na wyznaczony komp trzeba tez
> skopiować plik.dsn... Czy nie tak? Bo inaczej to nie rozumiem, jak to
> połączenie bedzie dzialac. Pozdrawiam


eme...@tlen.pl

unread,
May 3, 2008, 3:59:58 PM5/3/08
to

Oczywiście - tylko instalacja ODBC (czyli zasilasz system w sterownik)
- i będzie działać. Polega to na tym że łącząc w ten sposób access
przechowuje informacje nt ustawień DSN w podłączonych tabelach i już
nic do szczęścia mu nie potrzeba. Należy tylko trzymac się jednej
wersji MyODBC - w tym przypadku 3.51 - "DRIVER={MySQL ODBC 3.51
Driver}" - bo inaczej to go nie rozpozna...
Zresztą polecam spróbować - tak będzie szybciej - bo widzę że na słowo
nikt nie wierzy... ;-)

Pozdrawiam

emes

Adax

unread,
May 3, 2008, 4:47:25 PM5/3/08
to
Użytkownik <eme...@tlen.pl> napisał w wiadomości
news:f707ac82-05d0-4fc1...@2g2000hsn.googlegroups.com...

Już zaczynam pooowoli wierzyć... ;) Dzięki

Adax

unread,
May 3, 2008, 5:25:02 PM5/3/08
to
(...)

>>> OPTION=3
>>> Też OPTION=35 jest dobre pod Access.

Witam jeszcze raz. Pragnę donieść, że wykonalem wiele testow i access jako
fronton źle widzi polskie ogonki w tabelach polaczonych do mySQL. Otóż w
mySQL mam UTF8 i widze ogonki, ale w tabelach accessa już nie. Robilem
pzreróżne próby i na razie nie wpadlem na trop. Moze wiecie i podpowiecie.
B. proszę

eme...@tlen.pl

unread,
May 4, 2008, 11:39:16 AM5/4/08
to

Dziwne rzeczy się więc dzieją... Spróbuj może stworzyć testową tabelę
od podstaw (i już w fazie tworzenia dać jej domyślnie UTF8) - i wtedy
podpiąć do accessa i wprowadzić jakieś dane z krzaczkami. Jeśli nadal
będzie źle, to może podeślę Tobie na maila tabelę z MySQL - wrzucisz
ją sobie do bazki i sprawdzić jak ona działa.

emes

Adax

unread,
May 4, 2008, 1:14:03 PM5/4/08
to
Użytkownik <eme...@tlen.pl> napisał w wiadomości
news:1c5bfa84-c9ef-4793...@34g2000hsf.googlegroups.com...


Poradzilem sobie doraznie. Mianowicie olalem krzaki w mySQL, natomisast przy
edycji, dodawaniu rekordow z poziomu Accesa wszsytko dzila dobrze, tzn. w
tabelach polaczonych Accesa do mySQL widze polskie ogonki OK. Ale jak
zrobic, zeby w bazie widziec dobrze? Moze to sprawa nawigatora, ktory zle
pokazuje, ale probowalem roznymi narzedziami pzregladac mySQL i za kazdym
razem widzialem krzaki, pomimo kodoawania w mySQL UTF8. Jak cos wywalzce,
to dam znac. Pozdrawiam

conn...@interia.pl

unread,
Dec 21, 2012, 6:29:06 AM12/21/12
to
Aby zrobić połączenie z bazą MySQL bez konieczności trzymania źródła danych DSN
wystarczy kilka linijek kodu - tutaj przykład połączenia z bazą MySQL bez utworzonego systemowego DSN.
Opisana metoda działa w przypadku sterownika:
mysql-connector-odbc-5.1.6-win32.msi (na tym działa w 100%)

Oto instrukcja:

Po kolei:
1. Instalujemy sterownik: mysql-connector-odbc-5.1.6-win32.msi

2. Tworzymy sobie bazę Accessa np. baza.mdb

2. Tworzymy DSN na w/w sterowniku i podłączamy w pliku baza.mdb tabele jako tabele połączone żeby Access miał ścieżki do tabel.

3. Jak utworzymy już tabele połączone w pliku baza.mdb to możemy usunąć nasze systemowe źródło danych DSN. Dzięki temu nikt nie podłączy się już do tabel przez Excela,Accessa lub Open Office'a

4. W pliku baza.mdb tworzymy nowy moduł o nazwie Connection_open() i uzupełniamy w nim tylko parametry Server, Database, Uid, Pwd,PORT naszymi parametrami połączenia.

Kod modułu:
---------------------------------------------------
Sub Connection_open()
Dim db As Database
Set db = CurrentDb()
Dim tbldef As TableDef
mysql_connection = "DRIVER={MySQL ODBC 5.1
Driver};Server=adres.serwera.pl;Database=nazwa_bazy;Uid=nazwa_usera;Pwd=hasło_do_bazy;Option=3;PORT=3306;"
For Each tbldef In db.TableDefs
If (tbldef.Attributes And TableDefAttributeEnum.dbAttachedODBC) Then
tbldef.Connect = mysql_connection
tbldef.RefreshLink
End If
Next
End Sub
------------------------------------------------------------------------
Potem tworzymy w np formularzu Accessa przycisk otwierający połączenie z bazą MySQL. Do zdarzenia przycisku "przy kliknięciu"
podpinamy poniższy kod:

Private Sub Przycisk_Click()
Call Connection_open 'odwołanie do naszego modułu
End Sub

I cała sprawa wygląda tak że bez kliknięcia w przycisk połączenia nie będzie można otworzyć tabel połączonych. Kliknięcie w przycisk otwiera nam połączenie.
Nie muszę tłumaczyć co dalej (konwersja bazy do MDE i ten co chciałby wejść w naszą bazę przez Excela może nas cmoknąć:))))

Jacek

unread,
Dec 21, 2012, 10:33:07 AM12/21/12
to
Komu Kolega odpisuje?
http://connectionstrings.com/
0 new messages