Verwenden der SQL-Insert-Anweisung zum effizienten Übertragen von Daten von Excel nach Access
In Ihrem Excel-VBA-Code haben Sie jede Zeile manuell durchlaufen Daten, um Werte in eine Access-Tabelle einzufügen. Während dieser Ansatz für kleine Datensätze funktioniert, wird er für große Datensätze wie 25.000 Datensätze ineffizient.
Stattdessen können Sie SQL-INSERT-Anweisungen verwenden, um mehrere Zeilen gleichzeitig einzufügen, wodurch die Verarbeitungszeit drastisch verkürzt wird. Der folgende überarbeitete Code zeigt, wie:
Public Sub DoTrans() Set cn = CreateObject("ADODB.Connection") dbPath = Application.ActiveWorkbook.Path & "\FDData.mdb" dbWb = Application.ActiveWorkbook.FullName dbWs = Application.ActiveSheet.Name scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath dsh = "[" & Application.ActiveSheet.Name & "$]" cn.Open scn ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh cn.Execute ssql End Sub
Durch die Verwendung der in Zeile 11 gezeigten SQL INSERT-Anweisung werden alle Zeilen aus dem Excel-Bereich auf einmal in die Access-Tabelle eingefügt. Dadurch entfällt die Notwendigkeit einer Schleife und die Leistung wird erheblich verbessert.
Obwohl Sie erwähnt haben, dass Sie Feldnamen angeben möchten, anstatt „SELECT *“ zu verwenden, zeigt der bereitgestellte Code dies nicht. Wenn Sie Hilfe beim Festlegen bestimmter Feldnamen benötigen, geben Sie bitte die gewünschten Feldnamen an. Wir können Ihnen dann dabei helfen, den Code entsprechend zu ändern.
Das obige ist der detaillierte Inhalt vonWie kann ich große Datensätze mithilfe von SQL effizient von Excel nach Access übertragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!