Thema Datum  Von Nutzer Rating
Antwort
Rot Import von Excel nach T-SQL Zeilen gehen verloren
30.10.2015 18:24:37 Chris
Solved
02.11.2015 21:10:23 Chris
NotSolved

Ansicht des Beitrags:
Von:
Chris
Datum:
30.10.2015 18:24:37
Views:
1093
Rating: Antwort:
 Nein
Thema:
Import von Excel nach T-SQL Zeilen gehen verloren

Hallo allerseits!

 

ich möchte gerne ein Makro erstellen, mit dem man per Knopfdruck das aktuelle Registerblatt in den SQL Server exportiert.

Das hat eigentlich auch schon sehr gut funktioniert, leider hat sich jetzt bei einer Excelauswertung mit ca. 70.000 Zeilen das Problem ergeben, dass nur 4497 Zeilen in die neue Tabelle auf dem Server importiert werden. Ich habe versucht, die Daten in ein neues Registerblatt als Wert neu einzufügen und nur einzelne Spalten zu exportieren, aber immer das selbe Ergebnis. Wenn ich Zeilen im Umkreis von Zeile 4500 lösche, werden auch immer ca. 4500 Zeilen eingefügt, die Zahlt unterscheidet sich dann aber immer ein bisschen.

Ich habe außerdem versucht, die Spalten mit 1 zu multiplizieren, danach werden über 65.000 Zeilen eingefügt,aber auch nicht alle. Scheinbar gibt es irgendein Problem mit dem Datenformat, aber welches? Egal ob nur Text oder nur Zahlen in den Spalten, immer dasselbe Problem.

Bei anderen Excel-Auswertungen mit noch mehr Zeilen funktioniert alles einwandfrei, ich bin absolut ratos.

 

Mein Makro baut prinzipiell auf folgendem Code auf (von https://support.microsoft.com/en-us/kb/321686):

 Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\test\xltestt.xls;" & _
        "Extended Properties=Excel 8.0"
    
    'Import by using Jet Provider.
    strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
        "Server=<server>;Database=<database>;" & _
        "UID=<user>;PWD=<password>].XLImport9 " & _
        "FROM [Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff
        
    cn.Close
    Set cn = Nothing

Openrowset und Opendataset sind aus Sicherheitsgründen keine Option.
Kann mir jemand weiterhelfen oder alternative Vorgehensweisen vorschlagen?

Vielen Dank!!

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Import von Excel nach T-SQL Zeilen gehen verloren
30.10.2015 18:24:37 Chris
Solved
02.11.2015 21:10:23 Chris
NotSolved