Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
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

Schreibgeschütztes Recordset

Schreibgeschütztes Recordset
20.01.2023 10:18:27
Thomas
Hi, ich habe folgendes Problem:
Ich importiere Daten aus einem Excel Sheet in ein Recordset, um diese anschließend im eine SQL Datenbank zu exportieren. Um Zweiteres tun zu können, muss ich vorher bei einigen Werten das Format verändern. Allerdings erhalte ich die Fehlermeldung, dass das Recordset schreibgeschützt ist. Dabei habe ich es meines Erachtens nach mit Schreibzugriff definiert.
conn2.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
rs2.Open "SELECT * FROM [Tabelle1$]", conn2, adOpenDynamic, adLockOptimistic 'Schreiben der Daten aus xlxs Datei in ein Recordset
...
If IsNumeric(rs2(i).Value) And i > 0 And i > 4 And i > 10 And i > 16 And i > 21 And i > 22 And i > 23 And i > 24 Then
rs2(i).Value = CDbl(rs2(i).Value) ' ändern des Datentyps
rs2(i).Value = Replace(Format(rs2(i).Value, "0.########"), ",", "") ' In das Standard-Fließkommaformat ändern und tausender- Trennpunkt entfernen
MsgBox (rs2(i).Value)
End If

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibgeschütztes Recordset
20.01.2023 14:17:08
Yal
Hallo Thomas,
Es heisst nicht "'Schreiben der Daten aus xlsx Datei in ein Recordset" sondern "'Lesen der Daten aus xlsx Datei mit einem Recordset". Bei "Schreiben" wird ein persistantes Ablegen der Daten, z.B. in eine Datei oder Datenbank gesehen. Recordset sind nur in-memory Konstrukt (Freitag ist Klugscheisser-Tag ;-)
Ich würde eher nach einem SQL-Client für dein Ziel-DB, einen odbc auf dem Excel einrichten und per SQL direkt von Quell zu Ziel abfragen.
Wenn Du die Version Pro von Office hast, hast Du MS Access dabei. Darin müsstest Du nur den Excel und die Ziel-DB anbinden und mit einer Abfrage übertragen.
Du könntest auch die Daten aus Excel per Power Query abfragen und mit einem Conn3.Execute "insert into .." gen Datenbank (Conn3) Zeile für Zeile schreiben.
Es ist aberwitzig, dass Du die Wert zuerst zu einem Zahl wandelst, um sie anschliessend als Text ("replace") zu behandeln. Zwar funktioniert es nicht aber, aber dann wäre es nutzlos.
Tausender Trennpunkte gibt es nur bei der Anzeige. Der Zahl selbst, wenn er als Zahl im Speicher vorliegt, hat keine tausender Trennzeichen und kein länderabhängige dezimale Trennzeichen.
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige