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

String-Variable als Source für SQL

String-Variable als Source für SQL
12.04.2020 10:20:57
Martin
Hallo,
ich lese per TCP/IP eine Zeichenkette nach VBA ein. Diese Zeichenkette ist wie eine CSV-Datei aufgebaut (Semikolon-Trennung der Spaltenfelder und vbNewLine als Abschluss jeder Zeile). Gerne würde ich diese Zeichenkette (eine normale String-Variable) per SQL verarbeiten.
Auf eine CSV-Datei kann per SQL mit folgendem Connection-String zugegriffen werden:
sconnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Extended Properties='text;HDR=YES;FMT=Delimited';"

Gibt es eine Möglichkeiten statt auf eine CSV-Datei auf eine String-Variable als Source für SQL zu verweisen? Oder bleibt mir nichts anderes übrig als die String-Variable in eine CSV-Datei zu schreiben oder in ein Excel-Sheet zu überführen, um anschließend auf die Daten per SQL zugreifen zu können?
Ich suche eine möglichst effiziente Lösung, daher möchte ich eigentlich ungern die Daten der String-Variable irgendwo temporär zur Weiterverarbeitung auslagern.
Viele Grüße
Martin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String-Variable als Source für SQL
13.04.2020 08:23:58
Oberschlumpf
Hi Martin,
wenn der Inhalt deiner einfachen String-Variablen einen eindeutigen Trenner, z Bsp ";", enthält, dann kannst du diesen Inhalt in z Bsp eine eindimensionale Array-Variable übertragen.
Eine Array-Var ist auch nix anderes als eine Tabelle.
DeineVar = "das;ist;ein;test"
Dim ArrVar() As String
ArrVar = Split(DeineVar, ";")
Inhalt ArrVar:
ArrVar(0) = "das"
ArrVar(1) = "ist"
ArrVar(2) = "ein"
ArrVar(3) = "test"
So könnte es aussehen.
Hilfts?
Ciao
Thorsten
AW: String-Variable als Source für SQL
13.04.2020 11:27:22
Martin
Hallo Thorsten,
ich danke dir für deine Antwort. Da es sich in der Regel um eine mehrzeilige CSV-artige String-Variable handelt (Semikolon als Spalten-Trenner und Zeilenumbruch als Zeilen-Trenner), müsste ich es in ein zweidimemnsionales Array übertragen. Das wäre auch kein Problem. Aber die Überführung der Daten in ein Array würde mir nur helfen, wenn ich dieses Array anchließend mit SQL weiterverarbeiten könnte. Mir ist auch nicht bekannt wie man mit SQL auf ein zweidimensionales Array zugreifen könnte. Kannst du mir dafür bitte ein Beispiel zeigen?
Viele Grüße
Martin
Anzeige
AW: String-Variable als Source für SQL
13.04.2020 12:29:06
Oberschlumpf
Hi Martin,
meine Idee war nur, um an SQL "vorbeizukommen".
Da bei deinem Vorhaben (welches du rein gar nicht erwähnst) es aber ohne SQL nicht zu gehen scheint, bin ich raus, da ich mich in SQL nur rudimentär auskenne.
Ciao
Thorsten
..ne Bsp-Datei mit Bsp-Daten und ner Erklärung, wie deine Daten in die Variable kommen, könnte für weitere Antworter hilfreich sein...
AW: String-Variable als Source für SQL
13.04.2020 13:36:03
Martin
Hallo Thorsten,
ich bin wirklich für jeden Vorschlag dankbar. Eine Beispieldatei habe ich nicht hochgeladen, weil ich mein Anliegen nicht unnötig verkomplizieren wollte und zum Beispiel die Kommunikation per TCP/IP mit einer Microsoft-fremden DLL realisiert habe. Ich kann es niemandem zumuten fremde Komponenten zu installieren. Ich wollte die Aufgabenbeschreibung so einfach und verständlich wie möglich darstellen.
Aber einen Beispiel-String hätte ich selbstverständlich in vereinfachter Form hier posten können. Hier ein stark vereinfachtes Beispiel, wobei ich den Zeilenumbruch "Chr(13)" + "Chr(10)" als vbCrLf darstelle:
strTCPIP = "Z1S1;Z1S2;Z1S3;Z1S4;Z1S5;Z1S6;Z1S7;Z1S8;Z1S9;Z1S10;" & vbCrLf &_
"Z2S1;Z2S2;Z2S3;Z2S4;Z2S5;Z2S6;Z2S7;Z2S8;Z2S9;Z2S10;" & vbCrLf &_
"Z3S1;Z3S2;Z3S3;Z3S4;Z3S5;Z3S6;Z3S7;Z3S8;Z3S9;Z3S10;"
Der SQL-Zugriff ist mir so wichtig, um die Datensätze unter viruellen Rechenoperationen sortieren zu können. Stark vereinfacht dargestellt: Zum Beispiel Sortierung nach der Summe aus Spalte 9 + Spalte 10 gefiltert nach Kriterien aus Spalte 7.
Viele Grüße
Martin
Anzeige
AW: String-Variable als Source für SQL
13.04.2020 13:51:17
Martin
Hallo Firmus,
vielen Dank für den Link. Dort steht jedoch:
"You could put this into an Execute call on your ADO connection or write it out to a text file."
Das ist genau die umständlichere Alternative, die ich in meiner Aufgabenstellung angeführt habe. Das wäre der Umweg die Daten in eine externe Datenbank oder CSV-Datei zu überführen, um anschließend die Daten per SQL weiterverarbeiten zu können.
Wahrscheinlich geht es tatsächlich nicht anders... :-(
Hab trotzdem vielen Dank für deine Bemühungen!
Ich lasse den Beitrag mal offen, falls doch noch jemand eine Idee hat.
Viele Grüße
Martin
Anzeige
AW: String-Variable als Source für SQL
13.04.2020 15:34:11
Firmus
Hi Martin,
bin verwundert. Ich sehe den Vorschlag von diesem Link durchaus als Lösung - bei kleinen Datenmengen.
Ich lese den Ansatz so:
1. Bilde aus den ankommenden Daten ein Array (1 bis n-DIM)
2. Bilde aus den Daten im Array passende SQL-Insert statements
3. Führe diese Insert-statements aus, damit kommen die Daten in die SQL-Datenbank.
Als Alternative wird Execute und txt-file aufgeführt.
Nach meinem SQL-Verständnis wäre das ein gangbarer Weg, ist aber mit etwas eigenem Codingaufwand verbunden.
Ich habe ähnliche Dinge schon umgesetzt - allerdings in Assembler+Cobol auf Mainframe (mit incore-Tables), vor zig Jahren.
Gruß,
Firmus
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige