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-Key: 143015

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

Printed on: April 19, 2024 at 08:04 o'clock

Member: NetWolf
NetWolf May 18, 2010, updated at Oct 18, 2012 at 16:42:10 (UTC)
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)
Member: CadelPigott
CadelPigott May 19, 2010, updated at Oct 18, 2012 at 16:42:11 (UTC)
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)


Member: NetWolf
NetWolf May 19, 2010 at 12:35:30 (UTC)
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)
Member: CadelPigott
CadelPigott May 19, 2010 at 13:04:45 (UTC)
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