Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: SQL Tabellendaten via VBA kopieren

SQL Tabellendaten via VBA kopieren
04.10.2007 18:15:00
maik
Hallo allerseits,
eine Frage an die SQL - Experten unter Euch:
Ich möchte aus Excel via VBA Daten die ein bestimmtes Kriterium erfüllen (z.b. Spalte "name" = "Müller") von einer Tabelle auf einem SQL Server auf eine andere Tabelle auf einem SQL-Server kopieren.
Bei folgendem Quellcode bekomme ich eine Fehlermeldung:
StrSQL4 = "INSERT INTO TABELLE2 (name, datum, anzahl) "
strSQL5 = "Select (name, datum, anzahl) "
strSQL6 = "FROM TABELLE1 "
StrSQL7 = "WHERE name='" + username + "'" 'username wird vorher im Makro korrekt ausgelesen
StrSQL8 = StrSQL4 + strSQL5 + strSQL6 + StrSQL7
conntemp.Execute (StrSQL8)

Verbindung zum Server vorher etc. funktioniert, wenn ich nur den "name" kopieren lasse (ohne "datum" und "anzahl") funktioniert es ebenfalls. Ich bin etwas ratlos...
Hat jemand eine Idee?
DANKE + Grüße
maik

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SQL Tabellendaten via VBA kopieren
05.10.2007 03:34:00
ChrisL
Hallo Maik
Bin auch kein SQL Profi, aber ich denke du bekommst als Resultat von Select ein Array zurück, aber für Insert brauchst du die Daten als String, Komma getrennt.
Kürzlich habe ich für PHP folgende Funktion geschrieben...
function returnstring($ar) {
for($i=0; $i<=(count($ar)/2)-1; $i = $i+1)
if ($i == 0)
$str = "'$ar[$i]'";
else
$str .= ",'$ar[$i]'";
return $str;
}
Musst halt noch nach VBA übersetzen, aber macht aus...
Resultat = Array("Daten1","Daten2","Daten3")
Resultat = "Daten1,Daten2,Daten3"
Hoffe du kommst so weiter
cu
Chris

Anzeige
AW: SQL Tabellendaten via VBA kopieren
08.10.2007 06:29:00
Rene
Hallo Maik,
das kann gar nicht gehen!
Du schreibst:
StrSQL4 = "INSERT INTO TABELLE2 (name, datum, anzahl) "
strSQL5 = "Select (name, datum, anzahl) "
strSQL6 = "FROM TABELLE1 "
StrSQL7 = "WHERE name='" + username + "'" 'username wird vorher im Makro korrekt ausgelesen
... und willst dann alles auf einmal gegen die DB schicken.
Du kannst aber nicht in einem Statement Daten schreiben und gleich wieder abfragen.
Du musst erst die Daten schreiben (StrSQL4) und dann kannst du sie wieder lesen (5 bis 7).
Das könnte also so aussehen:
StrSQL8 = strSQL5 + strSQL6 + StrSQL7
conntemp.Execute(StrSQL4)
conntemp.Execute (StrSQL8)
Gruß
René
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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