Public Function fnBulkInsertTab(sFilename As String) On Error GoTo fnBulkInsertTab_Error_Routine Dim sErrFilename As String sErrFilename = "c:\logs\err" & Format(Now(), "yyyymmddHHMMSS") & ".txt" Dim i As Long Dim s As String Dim sInputChar As String Dim sSQL01 As String Dim sSQL02 As String Dim f As Integer If fnTableExists("tblBulkInsert") Then DoCmd.RunSQL "DROP TABLE tblBulkInsert" DoCmd.RunSQL "CREATE TABLE tblBulkInsert (" & _ "f1 varchar,f2 varchar,f3 varchar,f4 varchar,f5 varchar," & _ "f6 varchar," & _ "f7 varchar," & _ "f8 varchar," & _ "f9 varchar," & _ "f10 varchar," & _ "f11 varchar," & _ "f12 varchar," & _ "f13 varchar," & _ "f14 varchar," & _ "f15 varchar," & _ "f16 varchar," & _ "f17 varchar," & _ "f18 varchar," & _ "f19 varchar," & _ "f20 varchar," & _ "f21 varchar," & _ "f22 varchar," & _ "f23 varchar," & _ "f24 varchar," & _ "f25 varchar," & _ "f26 varchar" & _ ");" i = 1 f = 1 s = "" sInputChar = "" sSQL01 = "" sSQL02 = "" Open sFilename For Input As #10 Do Until EOF(10) sInputChar = Input(1, #10) If Asc(sInputChar) < 127 Then If sInputChar = "'" Then GoTo Next_Char End If If sInputChar = vbTab Then If f = 1 Then sSQL01 = "INSERT INTO tblBulkInsert (f1" sSQL02 = "VALUES ('" & s & "'" End If If f > 1 Then sSQL01 = sSQL01 & ",f" & f sSQL02 = sSQL02 & ",'" & s & "'" End If s = "" f = f + 1 GoTo Next_Char End If If sInputChar = vbCr Then ' MsgBox (s) ' MsgBox ("CR") ' Debug.Print "CR" sSQL01 = sSQL01 & ",f" & f & ") " sSQL02 = sSQL02 & ",'" & s & "');" sSQL01 = sSQL01 & sSQL02 ' MsgBox sSQL01 DoCmd.RunSQL sSQL01 s = "" sSQL01 = "" sSQL02 = "" f = 1 GoTo Next_Char End If If sInputChar = vbLf Then ' MsgBox ("LF") ' Debug.Print "LF" s = "" GoTo Next_Char End If s = s & sInputChar End If Next_Char: i = i + 1 ' If i = 40 Then Exit Do Loop fnBulkInsertTab_Exit_Routine: ' MsgBox "Exit Routine" Close #10 Exit Function fnBulkInsertTab_Error_Routine: Open sErrFilename For Output As #9 Print #9, "Error Log - 15th May 2014" Print #9, Now() Print #9, Err.Number Print #9, Err.Description Print #9, CurrentDb.Name Print #9, "fnBulkInsertTab" Print #9, sSQL01 Print #9, sSQL02 Print #9, "**END**" Close #9 Resume fnBulkInsertTab_Exit_Routine End_Function: End Function Public Function fnTableExists(sTablename As String) As Boolean On Error GoTo Exit_Function fnTableExists = False If IsObject(CurrentDb.TableDefs(sTablename)) Then fnTableExists = True Exit_Function: End Function |