When you’d like to register Excel worksheets in database, you could ‘BULK INSERT’ txt file into database. In this article, I’d like to explain VBA code that exports Excel worksheets to sql file. It’s assumed that worksheet name is same as table name and first column order is same as table attribute order.
Option Explicit Sub EXPORT_SQL() Dim mySht As Worksheet Dim myAr As Variant Dim i As Long Dim j As Long Dim mySQL As String Dim SQLAr() As String Dim myFSO As Object Dim myTS As Object Dim myPath As String Dim n As Long myPath = ThisWorkbook.Path For Each mySht In Worksheets myAr = mySht.UsedRange.Resize(mySht.UsedRange.Rows.Count - 1).Offset(1) ReDim SQLAr(LBound(myAr) To UBound(myAr)) For i = LBound(myAr) To UBound(myAr) For j = LBound(myAr, 2) To UBound(myAr, 2) If myAr(i, j) = Empty Then mySQL = mySQL & "NULL, " Else mySQL = mySQL & "'" & myAr(i, j) & "', " End If Next j mySQL = "INSERT INTO " & mySht.Name & " VALUES (" & Left(mySQL, Len(mySQL) - 2) & ")" SQLAr(i) = mySQL mySQL = "" Next i Set myFSO = CreateObject("Scripting.FileSystemObject") Set myTS = myFSO.CreateTextFile(Filename:=myPath & "\" & mySht.Name & ".sql", Overwrite:=True) For n = LBound(SQLAr) To UBound(SQLAr) myTS.writeline SQLAr(n) Next n myTS.Close Set myFSO = Nothing Set myTS = Nothing Next mySht End Sub