Dar MS Access poate comunica cu alte SQL-Server, și Microsoft ne împinge să interacționeze cu MS SQL Server, oferindu-ne tot ce este necesar pentru asta. Dar am ales "musculare", ghidat de următoarele motive.
-- Oficial gratuit pentru dezvoltator
-- Posibilitatea descărcării legale a kitului de distribuție (de la 16 până la 50 megabytes, în funcție de tipul de distribuție) de pe Internet
-- Cross-platform (nu vă faceți griji, sub ce OS funcționează serverul)
-- Instalare simplă (până la copierea simplă!) Și actualizări
-- Prezența unei documentații complete și clare
-- Aceasta este, MySQL este un server care este întotdeauna cu tine
Etape de organizare a lucrărilor MS Access-aplicații cu MySQL
Trebuie să faceți următoarele:
Instalarea pe un server MySQL
Pentru Windows, există trei tipuri de distibutivitate
MySQL rulează sub WIndows în două moduri:
Rularea fișierului mysqld.exe
Lansarea serviciului creat în timpul instalării (dacă ați specificat în timpul instalării necesitatea creării unui serviciu MySQL)
Configurarea suportului chirilic pentru MySQL
Atunci când MySQL rulează sub Windows, puteți să configurați parametrii utilizând fișierul My.ini
Deci, fișierul de configurare este my.ini.
# Parametrii de configurare pentru serverul MySQL
[Mysqld]
port = 3306
socket = /tmp/mysql.sock
skip blocare
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
# Instalarea chirilică pe server
default-character-set = cp1251 # Specificarea setului de caractere
seturi de caractere-dir = g: / mysql / share / charsets # Specificați calea spre folderul de codificare (corect pentru serverul dvs.!)
# Configurați setările pentru programul de backup
[Mysqldump]
rapid
max_allowed_packet = 16M
# Instalarea chirilică pe server
default-character-set = cp1251 # Specificarea setului de caractere
seturi de caractere-dir = g: / mysql / share / charsets # Specificați calea spre folderul de codificare (corect pentru serverul dvs.!)
# Parametrii de configurare pentru programul client mysql.exe
[Mysql]
nu-auto-rehash
# Instalarea chirilică pe server
default-character-set = cp1251 # Specificarea setului de caractere
seturi de caractere-dir = g: / mysql / share / charsets # Specificați calea spre folderul de codificare (corect pentru serverul dvs.!)
[Isamchk]
key_buffer = 8M
sort_buffer_size = 8M
[Myisamchk]
key_buffer = 8M
sort_buffer_size = 8M
Creați o bază de date pentru aplicația dvs.
Conectarea la baza de date se efectuează în numele utilizatorului. După instalarea pe server, există un utilizator root @ localhost cu o parolă goală (în versiunile anterioare a mai existat încă unul - root @ '%', dar în ultimele versiuni nu mai există). Cred că din motive de securitate). Deci, prima acțiune va trebui să faceți pe server.
Introduceți linia de comandă Windows (Start → Run → Run → cmd), setați directorul curent în directorul bin din directorul MySQL (în cazul meu este G: \ mysql \ bin):
F: \> G:
G: \> cd mysql \ bin
și tastați comanda pentru a vă conecta la MySQL
Gazdă și port au luat valorile implicite - respectiv localhost și 3306, parola de root nu este încă (acum o vom rezolva). Iar promptul MySQL a apărut pentru a intra în comenzi SQL:
G: \ mysql \ bin> mysql -uroot
Bun venit pe monitorul MySQL. Comenzile se încheie cu; sau \ g.
ID-ul de conectare MySQL este de la 2 la versiunea de server: 5.0.27-comunitate
Introduceți "ajutor"; sau '\ h' pentru ajutor. Introduceți '\ c' pentru a șterge tamponul.
Primul lucru pe care îl vom face este să modificăm parola de root: aceasta este o cerință de securitate evidentă.
mysql> actualizați mysql.user set password = parola ('Your Password') unde user = 'root' și host = 'localhost';
Interogare OK, 0 rânduri afectate (0.06 sec)
Rânduri potrivite: 1 Modificat: 0 Avertismente: 0
mysql> privilegii de culoare;
Interogare OK, 0 rânduri afectate (0.08 sec)
Parola a fost modificată. Dar sesiunea noastră este încă sub parola veche. Vom întrerupe sesiunea noastră și vom veni cu o nouă parolă.
G: \ mysql \ bin> mysql -uroot -p
Introduceți parola: *********
mysql> / * a crea un utilizator în care aplicația MS Access * /
mysql> acordă toate privilegiile din DataBaseName. * la 'login'@'192.168%' identificat prin 'parola';
Interogare OK, 0 rânduri afectate (0.03 sec)
mysql> / * Creați o bază de date a aplicației noastre * /
mysql> a crea baza de date DataBaseName;
Interogare OK, 1 rând afectat (0,00 sec)
mysql> / * Crearea de tabele * /
mysql>
Crearea de tabele în linia de comandă MySQL este prea obositoare. Prin urmare, ar trebui să alegeți unul din cele două moduri optime.
G: \ mysql \ bin> mysql -uroot -p DataBasesName<Путь к файлу с инструкциями create table
Veți fi solicitat o parolă și, dacă nu ați făcut o greșeală, vor fi create mesele
Instalarea driverului ODBC pe toate mașinile pe care rulează aplicația dvs.
Rulați instalatorul, fără probleme semnificative pentru instalare, nu va întreba. Nici măcar nu am auzit de probleme cu instalarea acestui driver.
Modificați codul aplicației - pentru a conecta automat tabelele
Crearea manuală a unei surse ODBC și conectarea tabelelor la aceasta nu este o metodă de dezvoltare profesională. Voi oferi exemple ale codului VBA pentru crearea unei surse ODBC și conectarea tabelelor la aceasta
Creați o sursă ODBC
Sursa ODBC este creată sau rescrisă cu următoarea instrucțiune:
DBEngine.RegisterDatabase ImyaIstochnikaODBC, conducător auto ImyaODBC, True, StrokaParametrovPodklyucheniya
Dim conectați ca String
connect = "server = 192.168.1.1; user = manager; password = zorro; port = 3306; stmt = set nume cp1251"
DBEngine.RegisterDatabase "tm", "MySQL ODBC 3.51 driver", Adevărat, conectați
Fiți atenți la parametrul stmt: permite MS Access să sprijine corect chirilicul.
Ștergerea tuturor tabelelor conectate
"Ștergerea tuturor tabelelor conectate
Funcția Drop_linked_tables () Ca boolean
Pe eroare GoTo oblom
Dim TD ca TableDef
Dim tabName ca șir
Pentru fiecare TD în CurrentDb.TableDefs
Dacă (stânga (TD.connect, 5) = "ODBC;") sau (stânga (TD.connect, 10) = "; DATABASE =")
tableName = TD.Numele
CurrentDb.TableDefs.Delete (tableName)
Sfârșit Dacă
Următorul TD
CurrentDb.TableDefs.Refresh
Ieșire Funcție
oblom:
Drop_linked_tables = False
Conectarea tabelelor MySQL prin ODBC
'Conectarea tabelelor MySQL prin ODBC
Funcția StartConnectMySQL (ByVal login ca șir, ByVal odbcName ca șir, ByVal db ca șir) As Boolean
Pe eroare GoTo oblom
Apelați Drop_linked_tables "Șterse toate tabelele asociate
Dim newTD As TableDef
Dim ws As Workspace
Set ws = CreateWorkspace ( "ws_MySQL", "", "", dbUseODBC)
Dim conectați ca șir
connect = "ODBC; database =" db "DSN =" odbcName
Dim MySQL Ca DAO.Connection
Set MySQL = ws.OpenConnection (odbcName, dbDriverComplete, fals, conectați)
Dim interogare ca șir
interogare = "utilizarea" db
MySQL.Execute (interogare)
interogare = "afișarea tabelelor"
Dim prima ca DAO.Recordset
Setați rst = MySQL.OpenRecordset (interogare, dbOpenDynaset)
În timp ce nu rst.EOF
Setați newTD = CurrentDb.CreateTableDef (rst (0))
newTD.connect = "ODBC; DSN =" odbcName "; baza de date =" db
newTD.SourceTableName = rst (0)
CurrentDb.TableDefs.Append newTD
rst.MoveNext
buclă
Ieșire Funcție
oblom:
StartConnectMySQL = False
Am analizat întregul proces de deplasare a aplicației MS Access în MySQL. Rezultatul plătește pentru efortul care vă va fi solicitat de-a lungul drumului: veți primi o cerere în care au fost deja îndeplinite următoarele sarcini:
Protejarea bazei de date împotriva deteriorării de către utilizatori
Înregistrați acțiunile utilizatorilor (fișierele jurnal)
În plus, aveți acum următoarele opțiuni:
-- Dezvoltarea vederii, procedurile stocate, declanșatoarele
-- Utilizarea tranzacțiilor
-- Interacțiunea cu aplicația WEB
-- Configurație server de bază de date la distanță
Sper că v-am ajutat cumva pe drumul spre aceste oportunități.