Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schreibgeschütztes Recordset

Forumthread: 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
Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige