Ich versuche, Benutzerformulardaten von Excel (2013) an eine Access-Datenbank zu senden.Daten von Excel-Benutzerformular an passwortgeschützte Access-Datenbank senden
ohne Passwort funktioniert dieser Code einwandfrei.
Private Sub Addoer_Click()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim dbPath
dbPath = Sheet16.Range("K18").Value
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & dbPath
Jetzt versuche ich, gleiche Methode zu verwenden, um Daten aus Excel in einem passwortgeschützten Datenbank zu senden (jeder Benutzer unterschiedliche Passwort hat). In der Excel-Datei ist die Benutzer-ID an Sheet16.Range ("K17") und das Passwort ist bei Sheet16.Range ("K19")
userid = Sheet16.Range("K17").Value
pw = Sheet16.Range("K19").Value
i der cnn.open Linie
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data source=" & dbPath, userid, pw, -1
zu folgenden geändert
und ich erhalte diese Störung:
Fehler -2147217843 (. Kann nicht Ihre application.The Arbeitsgruppen-Informationsdatei starten fehlt oder exklusiv von einem anderen Benutzer geöffnet)
ändert es die cnn.open Linie zu dieser
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=" & dbPath, """ & userid & """, """ & pw & """, -1
und ich bekomme diesen Fehler
Fehler -2147217843 (Keine gültige Kontonamen oder Passwort).
Gibt es jemanden, der Ihnen helfen kann, zu zeigen, wo ich falsch gehandelt habe?
Die adodb Verbindungssyntax fordert den Benutzer-ID und das Kennwort in Zeichenfolge geschrieben werden. Wenn ich es wie den Wert einer bestimmten Zelle wie oben definiert hätte, muss ich es nicht darum herum setzen? – KZMN
Ja, ich kann Tabellen und Abfragen in der Access-Datenbank erstellen. Bedeutet dies, dass der Code funktioniert Muss ich die Datenbank so einstellen, dass sie nicht exklusiv geöffnet wird? – KZMN
@KZMN Nicht sicher, aber ich würde vermuten, dass Sie, wie Sie sagen, nur die doppelten Anführungszeichen um den Benutzernamen und das Passwort benötigen, wenn sie Teil der regulären Verbindungszeichenfolge sind Du übergibst sie als Parameter in 'conn.Open', dann brauchst du sie wahrscheinlich nicht. –