Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1712to1716
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

ADODB Daten aus verknüpfter Exceltabelle löschen

ADODB Daten aus verknüpfter Exceltabelle löschen
25.09.2019 09:42:18
Mike
Hallo zusammen,
ich möchte gern Daten via Recordset aus einer verknüpften Exceltabelle löschen.
Zunächst baue ich eine Verbindung auf. Danach den entsprechenden Recordset. Wenn ich dann im Weiteren Recordset.Delete verwende oder auch eine Löschabfrage (SqlAbfrg = "DELETE* FROM [ZoomWerte$A3:K]" erhalte ich stets die gleiche Fehlermeldung: "ISAM unterstützt das Löschen von Daten in einer verknüpften Tabelle nicht."
Nun habe ich schon viel recherchiert und hatte die Aussagen gefunden, dass das Löschen von Daten eines Recordsets über ADODB nicht unterstützt wird. Man könne anstatt dessen den Inhalt der einzelnen Felder löschen. Auch das hatte ich versucht erhielt aber immer nach dem Löschen von mehreren Feldern die Fehlermeldung: "Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen Sie die einzelnen Statuswerte."
Access kann ich nicht verwenden, da es im Unternehmen nicht eingesetzt wird. Die Excel-Datendatei verdeckt zu starten, dann die Daten löschen und die Datei wieder zu schließen wäre für mich nicht so wirklich eine Option.
Hätte jemand da noch eine Lösungsmöglichkeit?
Vielen Dank!

Option Explicit
Public AdoCon As Object
Public ZoomRSet As Object
Dim SqlAbfrg As String
Function ADO_Verbindung()
101 Dim DateiSuObj As Object
102 Const TabName = ""
103 Const ModName = "A_SQL_DatenBezug"
104 Const ProzName = "ADO_Verbindung"
105 Const FehlerKat = 2
106 On Error GoTo Fehler
'Sql-Verbindung aufbauen
108 Set AdoCon = CreateObject("ADODB.CONNECTION")
With AdoCon
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Properties("Data Source") = ActiveWorkbook.path & "\AnalyticsDaten.xlsm"
.Properties("Extended Properties") = "Excel 12.0;HDR=NO"
.CursorLocation = 3 'adUseClient
.Mode = 3 '16 = adModeShareDenyNone // 3 = adModeReadWrite
.Open
End With
111 If AdoCon.State = 0 Then  'Die Verbindung "SQL_Connection" ist nicht geöffnet worden
112   MsgBox "Die SQL-Verbindung konnte nicht geöffnet" & Chr(13) & _
"werden. Das Programm kann daher nicht" & Chr(13) & _
"gestartet werden. Bitte wenden Sie sich an" & Chr(13) & _
"den Administrator des Programms."
113 End If
114 Exit Function
115 Fehler:
116 If AdoCon.State = 1 Then  'Die Verbindung "SQL_Connection" ist geöffnet
117   AdoCon.Close
118   Set AdoCon = Nothing
119 End If
120 Call Fehler_Aufz(TabName, ModName, ProzName, FehlerKat)
End Function

Function ZoomWerte_RSet()
100 Const TabName = ""
101 Const ModName = "A_SQL_DatenBezug"
102 Const ProzName = "ZoomWerteRSet"
103 Const FehlerKat = 2
104 On Error GoTo Fehler
105 Set ZoomRSet = CreateObject("ADODB.RECORDSET")
'Daten aus der ZoomWerte-Tabelle abfragen
106 SqlAbfrg = "SELECT * FROM [ZoomWerte$A3:K]"
107 With ZoomRSet
108   .Source = SqlAbfrg
109   .ActiveConnection = AdoCon
110   .CursorLocation = 3 'adUseClient
111   .CursorType = 1 '1 = adOpenKeyset  //  2 = adOpenDynamic  // 3 = adOpenStatic
112   .LockType = 3 '3 = adLockOptimistic  // 4 = adLockBatchOptimistic
113   .Open
114   .MoveFirst
115 End With
116 Exit Function
117 Fehler:
'Einstellungen-Recordset schließen
118 If Not ZoomRSet Is Nothing Then
119   If ZoomRSet.State And 1 = 1 Then
120      ZoomRSet.Close
121      Set ZoomRSet = Nothing
122   End If
123 End If
124 Call Fehler_Aufz(TabName, ModName, ProzName, FehlerKat)
End Function

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ADODB Daten aus verknüpfter Exceltabelle löschen
25.09.2019 14:27:05
EtoPHG
Hallo Mike,
Zitat: Die Excel-Datendatei verdeckt zu starten, dann die Daten löschen und die Datei wieder zu schließen wäre für mich nicht so wirklich eine Option.
Es ist aber die Einzige, die funktioniert, den der Treiber für XL lässt keine anderen Manipulationen am Dateninhalt zu, ausser den erwähnten.
Gruess Hansueli
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige