Hallo,
ich stehe gerade etwas auf dem Schlauch und hoffe ihr könnt mir weiterhelfen.
Ich bin gerade dabei ein recht großes Word Makro zu schreiben und dabei wird des öfteren auf eine Datenbank zugegriffen. Jetzt schreibe ich gerade eine neue Abfrage, welche vor allen anderen Abfragen aufgerufen wird. Dabei erscheint die oben genannte Fehlermeldung.
Hier zunächst einmal der Quellcode. Ich habe einige unrelevanten Stellen vereinfacht.
jetzt wird aus einer Userform die Folgende Funktion aufgerufen.
In der Zeile "Set .ActiveConnection = cnn" erscheint dann die Fehlermeldung
Das Interessante ist, dass ich in der nächsten Userform die exakt gleiche Abfrage starte und mir ein Ergebnis geliefert wird. Auch alle anderen Abfragen laufen problemlos.
Ich hoffe ihr könnt mir weiterhelfen.
Gruß
KronSii
ich stehe gerade etwas auf dem Schlauch und hoffe ihr könnt mir weiterhelfen.
Ich bin gerade dabei ein recht großes Word Makro zu schreiben und dabei wird des öfteren auf eine Datenbank zugegriffen. Jetzt schreibe ich gerade eine neue Abfrage, welche vor allen anderen Abfragen aufgerufen wird. Dabei erscheint die oben genannte Fehlermeldung.
Hier zunächst einmal der Quellcode. Ich habe einige unrelevanten Stellen vereinfacht.
Visual Basic-Quellcode
- Public cnn As New ADODB.Connection
- Public rec As New ADODB.Recordset
- Function CnnDatabase()
- On Error Resume Next
- cnn.Close
- cnn.Mode = adModeRead
- If Is64BitWin() = True Then '64 Bit
- cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
- "Data Source=C:\Program Files (x86)\abc\abcLocal.mdb;" & _
- "Jet OLEDB:Database Password=" & pw & "#1;"
- Else '32 Bit
- cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
- "Data Source=C:\Program Files\abc\abcLocal.mdb;" & _
- "Jet OLEDB:Database Password=" & pw & "#1;"
- End If
- End Function
jetzt wird aus einer Userform die Folgende Funktion aufgerufen.
Visual Basic-Quellcode
- Function getUser()
- Dim cmd As New ADODB.Command
- Dim oyear As Integer
- Dim otypenumber As Integer
- oyear = 2012
- otypenumber = 1111
- Call CnnDatabase
- rec.CursorType = adOpenKeyset
- rec.LockType = adLockReadOnly
- With cmd
- Set .ActiveConnection = cnn
- .CommandType = adCmdText
- .CommandText = "SELECT Orders.Orderident AS [ID], " & _
- "Orders.Tasknumber AS [TASK] " & _
- "FROM Orders " & _
- "WHERE Orders.OBJECTYEAR = ? AND Orders.OBJECTTYPENUMBER = ?"
- .Parameters.Append .CreateParameter("oyear", adSmallInt, adParamInput, 100, oyear)
- .Parameters.Append .CreateParameter("otypenumber", adSmallInt, adParamInput, 100, otypenumber)
- Set rec = .Execute
- End With
- On Error GoTo Ende:
- rec.MoveFirst
- MsgBox "ich habe etwas gefunden"
- Ende:
- MsgBox "Ende"
- rec.Close
- End Function
In der Zeile "Set .ActiveConnection = cnn" erscheint dann die Fehlermeldung
Das Interessante ist, dass ich in der nächsten Userform die exakt gleiche Abfrage starte und mir ein Ergebnis geliefert wird. Auch alle anderen Abfragen laufen problemlos.
Ich hoffe ihr könnt mir weiterhelfen.
Gruß
KronSii