Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatisierungsproblem beim Recordset

Automatisierungsproblem beim Recordset
18.11.2020 09:22:48
Sanselm
Hallo zusammen,
ich habe eine Funktion die bei allen Kollegen läuft, bloss bei einem einzigen funktioniert diese Funktion nicht. Er hat die gleiche Excel und Windows Version, was die ganze Geschichte in meinen Augen recht komisch macht. Ebenfalls habe ich auch schon die Verweise überprüft und hier ist mir nichts ungewöhnliches aufgefallen.
Bei folgendem Code bricht das Programm, beim Prüfen der Recordset Verbindung (letzte if Abfrage) mit einem Automatisierungsfehler ab.

Function check_Authority() As Boolean
Dim lib                        As String
Dim cn                         As ADODB.Connection
Dim rs                         As ADODB.Recordset
On Error Resume Next
check_Authority = False
sSYS = ThisWorkbook.Sheets("Config").Cells(5, 3).value
lib = "CS" & sEnvironment & "DTA" & sLanguage
sSql = "SELECT PW001 FROM " & lib & ".APCPW WHERE PW007 = '" + UCase(sUser) + "'"
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
With cn
.ConnectionString = "DSN=" & sODBC & ";UID=" & sUser & ";PWD=" & sPWD
.Properties("Prompt") = adPromptCompleteRequired
.Open
End With
If cn.State  adStateOpen Then
MsgBox "Verbindung zu " & sODBC & " fehlgeschlagen!", vbCritical + vbApplicationModal, " _
Verbindung zu " & sODBC
Exit Function
End If
rs.Open sSql, cn, adOpenDynamic, adLockReadOnly
If rs.State  adStateOpen Or (rs.EOF = True And rs.BOF = True) Then
MsgBox "Fuer keine Firma berechtigt", vbCritical + vbApplicationModal, "Datenuebertragung"
Exit Function
End If
Hat jemand eine Lösung parat? Mir gehen die Ideen aus...
PS: Habe den Code nur auf die nötigen Funktionen runtergebrochen.
Grüße,
Sanselm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei löschen; Kopie von anderem PC nutzen owT
18.11.2020 12:27:24
anderem
AW: Datei löschen; Kopie von anderem PC nutzen owT
18.11.2020 12:40:54
anderem
füge vor dem letzte If einen
If Not rs is Nothing Then

AW: Datei löschen; Kopie von anderem PC nutzen owT
19.11.2020 10:19:00
anderem
Vielen Dank,
jedoch wurde die Datei bereits komplett neu installiert und das hat das Problem leider nicht gelöst.
Den letzten Ansatz mit der If werde ich definitiv testen, hoffe das löst das Problem.
Grüße,
Sanselm
AW: Datei löschen; Kopie von anderem PC nutzen owT
19.11.2020 11:49:15
anderem
Update:
Die If Anweisung davor hat auch nichts gebracht, er springt weiter in die nächste If Anweisung und scheitert nach wie folgt dort.
Hat jemand vielleicht andere Ansätze oder weiß, wieso es zu diesem Problem kommen könnte?
Grüße,
Sanselm
Anzeige
AW: Automatisierungsproblem beim Recordset
23.11.2020 11:36:50
Sanselm
Hat noch jemand eine Idee woran das liegen kann oder kommt niemand drauf, woran der Fehler liegt?
Wäre für jede Hilfe dankbar!
Grüße,
Sanselm
AW: Automatisierungsproblem beim Recordset
23.11.2020 13:37:19
JoWE
... welchen Sinn haben die Klammern hier:
"(rs.EOF = True And rs.BOF = True)"
AW: Automatisierungsproblem beim Recordset
23.11.2020 14:26:49
Sanselm
Diese Klammern haben den Sinn einer zusätzlichen Prüfung die ein Kollege vor mir
eingebaut hat. Lässt man diese weg, kommt es jedoch erneut zum Automatisierungsfehler sobald das Recordset angesprochen wird...
AW: Automatisierungsproblem beim Recordset
23.11.2020 22:22:47
Yal
Die Klammer ergeben schon Sinn aber der Ausdruck selbst kein.
Entweder ist der Cursor (so nennt man die Positionierung in einem Recordset)
_ "BOF" (beginning of file) oder
_ "EOF" (end of file) oder
_ dazwischen
aber niemals kann er gleichzeitig EOF und BOF sein, also beide True.
Aber es ist ja nicht, da wo es klemmt.
Viel Erfolg
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige