2016-06-15 8 views
0

Ich bin bulk das Einfügen des Arbeitsblattes in eine temporäre Tabelle in SQL, danach ich eine gespeicherte Prozedur aufrufen, um Daten von Temp zu Haupttabelle zu verschieben.Excel nicht den Bereich in der Abfrage angegebenen

für Einsatz Ich bin mit dem folgende Statement

s = "select * into [" & ThisWorkbook.Sheets("Master Control").Range("F2") & "].[" & Environ("username") & "] FROM [ABC$A13:IU5000] " 
cn.Execute s 

das Problem ist, dass auch nach dem Bereich in der Abfrage setzen, es nur bis zu der letzten Spalte ist Kommissionierung, die Daten haben, die Probleme schafft.

Wie kann ich es machen, genau den Bereich auszuwählen, den ich angegeben habe?

Antwort

0

Ich habe gerade gebucht meinen Code Transfer an Excel Range INTO a Database

Dies funktioniert für mich.

SELECT * INTO [TagetTable] FROM [Excel 8.0;HDR=YES;DATABASE=C:\stackoverflow\test-stub.xlsx].[ABC$A13:IU5000] 

Das ist Ihr Abfragestring:

select * in [F2] [best buy] FROM [ABC $ A13: IU5000].

Ist F2 der Name die Datenbank, die Sie abfragen möchten? Sie fehlen den Dateipfad in der FROM-Klausel

+0

meine Abfrage läuft gut, das einzige Problem ist, dass statt bis Spalte IU einfügen, es nur bis DD einfügen. – Vikky

+0

die Anzahl der Spalten variiert von Benutzer zu Benutzer, ich habe den maximalen Bereich bis IU entschieden, aber es hat nicht funktioniert. – Vikky

+0

Ich würde eine Dummy-Zeile der Daten in Row (14) einfügen. Dies kann dazu führen, dass die Abfrage alle Zeilen und Spalten einfügt. Sie können den Dummy-Datensatz jederzeit aus Ihrer Datenbank löschen. –

Verwandte Themen