Kombinationsfeld aus ext. DB füllen

Hai, Ahnungsvolle,

folgendes Problem:
ich benutze Access als Frontend, um auf Daten einer mysql-DB zuzugreifen. So weit, so lässig.
Jetzt soll aber ein Kombinationsfeld zur Auswahl von Namen zur Verfügung gestellt werden - die SQL-Anweisung steht, nur mit den Verbindungsdaten haperts irgendwie:

  • verknüpfte Tabelle ist ungünstig, weil eben nicht die kompletten Daten gezogen werden sollen (das kann bei gefüllter DB dauern…)
  • Abfrage funzt nicht, weil ich die Verbindungsdaten (User, Passwort) nur fest eingeben kann und nicht aus der vorhandenen Variable gezogen kriege (Obwohl in der Hilfe was von „per VB einstellen“ steht, gibt’s da scheinbar keinen Zugriff drauf)
  • im Formular/Kombinationsfeld direkt den Zugriff machen, krieg ich auch irgendwie nicht hin, weil ich wieder den Zugriff auf die Verbindungsdaten-Variable nicht unterkriege, und wenn, krieg ich die Daten nicht ins Kombinationsfeld

Die Verbindungsdaten müssen als Variable laufen, weil jeder Nutzer andere Zugriffsrechte hat (überraschend, nicht?)

Ich hab das Gefühl, daß ich mich nur wieder mal blöd anstelle und die Lösung super-simpel ist… Hat hier jemand 'nen Tip für mich???

Gruß
Sibylle

hi!

ohne jetzt viel ahnung von access bzw. mysql zu haben: in mysql eine view anlegen (gleich mit div. einschränkungen bzw. berechtigungen) und diese dann mit access verknüpfen?

grüße,
tomh

Hai, tomh,

ohne jetzt viel ahnung von access bzw. mysql zu haben: in
mysql eine view anlegen (gleich mit div. einschränkungen bzw.
berechtigungen) und diese dann mit access verknüpfen?

bringt mich leider nicht weiter, da auch die ja aus der mysql-DB geholt werden müsste und dafür will Access die Zugangsdaten haben…

Gruß
Sibylle

Das müsste etwa so gehen:

Dim Conn As New ADODB.Connection, RS As New ADODB.Recordset, \_
 strConn As String, Tmp as string

 Set Conn = New ADODB.Connection
 strConn = "Driver={MySQL};Server=DeinServer;DATABASE=DeineDb;" & \_
 "UID=DeinUser:stuck\_out\_tongue\_winking\_eye:WD=DeinPasswort;"
 Conn.Open strConn
 RS.Open "SELECT DeinFeld FROM DeineTabelle WHERE Wasauchimmer", \_
 Conn, adOpenForwardOnly, adLockOptimistic
 Do Until RS.EOF
 Tmp = Tmp & ";" & RS!DeinFeld
 RS.Movenext
 Loop
 Me!DeinKombifeld.Rowsource = Mid(Tmp,2)
 RS.Close
 Conn.Close

das Kombifeld als Wertliste anlegen!

Gruß aus dem Norden
Reinhard Kraasch (http://www.kraasch.de - Access Tipps & Tricks)

Hai, Reinhard,

sowas hab ich gesucht - fühl Dir jeknuutscht und umärmelt
Gruß
Sibylle