cadelpigott
Goto Top

MS Access Datenbankverknüpfung auf MySQL erstellen

Eine kleine Vorgeschichte:
Wir setzen eine MS Access Applikation ein, welche auf einem schreibgeschützten Netzlaufwerk liegt. Nur ein Sachbearbeiter hat schreibenden Zugriff.
Dieser Mitarbeiter hat die Datenbank den ganzen Tag offen und sperrt diese (dank der schreibgeschützen .ldb Datei) für die anderen User.
Nun hatte ich folgende Idee:

Ich möchte die Daten aus der Access Applikation in eine MySQL Datenbank auslagern und die Lese- bzw. Schreibberechtigungen auf Datenbankebene steuern.
Das funktioniert soweit auch.

Meine Frage ist nun, wie ich die MySQL Tabellen in Access verknüpfe ohne bei jedem User eine ODBC Schnittstelle erstellen zu müssen.
Erschwerend kommt dazu, dass die User keine lokalen Adminrechte besitzen und somit eine automatisierte Erstellung der Datenquelle nicht möglich ist.

Vielen Dank für eure Hilfe

Gruß
Cadel

Content-ID: 143015

Url: https://administrator.de/contentid/143015

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

NetWolf
NetWolf 18.05.2010, aktualisiert am 18.10.2012 um 18:42:10 Uhr
Goto Top
Hallo,

Ich möchte die Daten aus der Access Applikation in eine MySQL Datenbank auslagern und die Lese- bzw. Schreibberechtigungen
auf Datenbankebene steuern.
das geht mit Access genau so gut, wenn man die Access-Applikation in Front- und Backend trennt. Lokal hat der User dann das Frontend und greift auf die Tabellen im Backend zu.

Meine Frage ist nun, wie ich die MySQL Tabellen in Access verknüpfe ohne bei jedem User eine ODBC Schnittstelle erstellen zu
müssen.
wie soll das gehen? Ohne ODBC -> keine Verbindung.

Erschwerend kommt dazu, dass die User keine lokalen Adminrechte besitzen und somit eine automatisierte Erstellung der Datenquelle
nicht möglich ist.
per GPO ist das ohne weiteres möglich, wenn du einen Server hast. Lese z.B. hier ODBC Connection kopieren - Sichern!?

Grüße aus Rostock
Wolfgang
(Netwolf)


Grüße aus Rostock
Wolfgang
(Netwolf)
CadelPigott
CadelPigott 19.05.2010, aktualisiert am 18.10.2012 um 18:42:11 Uhr
Goto Top
Zitat von @NetWolf:

Hallo netwolf,

Hallo,

das geht mit Access genau so gut, wenn man die Access-Applikation in Front- und Backend trennt. Lokal hat der User dann das
Frontend und greift auf die Tabellen im Backend zu.

und wie soll das mit der Lese- bzw. Schreibberechtigung funktionieren? Nach meinem Verständnis hätten dann wieder alle User die Möglichkeit die Daten zu ändern.


wie soll das gehen? Ohne ODBC -> keine Verbindung.

Naja, zum Beispiel kann jede anständige Programmiersprache einen DB Connect per libmysql.dll realisieren.
Geht das mit Access auch irgendwie?
Google ist mir hierbei keine große Hilfe.

per GPO ist das ohne weiteres möglich, wenn du einen Server hast. Lese z.B. hier
ODBC Connection kopieren - Sichern!?

Das ist ne Möglichkeit. Danke für den Hinweis. Stellt sich mir nur noch die Frage, wie ich das mit domänenfremden Rechner realisiere und wie ich den MySQL Treiber ohne Installation rein bekomme.

Vielen Dank
Gruß
Cadel


Grüße aus Rostock
Wolfgang
(Netwolf)


Grüße aus Rostock
Wolfgang
(Netwolf)


NetWolf
NetWolf 19.05.2010 um 14:35:30 Uhr
Goto Top
Hallo Cadel,

und wie soll das mit der Lese- bzw. Schreibberechtigung funktionieren? Nach meinem Verständnis hätten dann wieder alle
User die Möglichkeit die Daten zu ändern.
da gibt es viele Möglichkeiten:
1. der Ordner mit dem Backend hat entsprechende Rechte
2. Eine "lesende" und eine "lesen/schreiben" Version des Frontends erstellen
3. Access interne Benutzerverwaltung verwenden
4. Eine lese/schreib Berechtigung im Frontend anhand des Netzwerk-Benutzernamens programmieren

zu 4. kleines Beispiel mit einer Zeile Code (pro Formular):

Private Sub Form_Current()
Me.AllowEdits = IIf(CurrentUser() = "Chef",TRUE,FALSE)
End Sub

Naja, zum Beispiel kann jede anständige Programmiersprache einen DB Connect per libmysql.dll realisieren.
Geht das mit Access auch irgendwie?
Google ist mir hierbei keine große Hilfe.
ich denke, die VBA Referenz in Access wäre da auch die richtige Stelle zum suchen:

Ein kleiner Auszug:
Mit der OpenConnection-Methode können Sie aus einem ODBC-Arbeitsbereich eine Verbindung zu einer ODBC-Datenquelle herstellen. Die OpenConnection-Methode ähnelt der OpenDatabase-Methode. Der wichtigste Unterschied besteht darin, dass OpenConnection nur in einem ODBCDirect-Arbeitsbereich verfügbar ist.

Stellt sich mir nur noch die Frage, wie ich das mit domänenfremden Rechner realisiere und wie ich den MySQL Treiber ohne Installation rein bekomme.

Du kannst den Treiber mit dem Frontend pro Arbeitsplatz ausliefern, und per Batch (oder auch über Access) installieren lassen. RUNAS.exe http://www.winfaq.de/faq_html/Content/tip1000/onlinefaq.php?h=tip1010.h ... dürfte dir dabei eine Hilfe sein.

Grüße aus Rostock
Wolfgang
(Netwolf)
CadelPigott
CadelPigott 19.05.2010 um 15:04:45 Uhr
Goto Top
Hallo Netwolf,

Danke nochmal für die Tipps.
Ich habe mich nun für folgende Lösung entschieden:
- Die Access-Programmierung bleibt wie sie ist, da diese von einem anderen Mitarbeiter erstellt wurde und ich mich nicht erst reindenken will.
- Die Daten werden ausgelagert in eine MySQL Datenbank. Dort lege ich die Rechte anhand des Rechnernamens fest.
- Der mysql-connector-odbc-noinstall-5.1.6-win32 wird unattendet über das Logonscript bei jedem einmalig installiert.
- Die ODBC Verbindung wird, ebenfalls über Logon-Script, erstellt (zwei Registry Keys)

Du hast mir sehr geholfen face-smile

Gruß
Cadel