이것은 내 코드이지만 1700 만 행을 모두 mdb로 내보내는 데 약 1 시간이 걸립니다. 이 목적을 위해 mysql 또는 sql 서버를 사용할 수 없습니다. Access db에서이 작업을 수행해야하며이 프로세스가 일주일에 한 번 실행됩니다. Plz은이 작업ADS를 사용하여 큰 csv 파일을 mdb로 가져올 때
Sub insertDataIntoMDB()
Dim Dbfilepath As String
Set cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rst = CreateObject("ADODB.Recordset")
Dim arrData() As String
Dim s As String
Dim i As Integer
Dbfilepath = ThisWorkbook.Path & "\DB\Interface.accdb"
cnn.Open "Provider= Microsoft.ACE.OLEDB.12.0;" & " Data Source=" & Dbfilepath & ";" & "Persist Security Info =False;"
q1 = "DELETE * FROM MYTABLE"
Set rs = cnn.Execute(q1)
'q1 = "ALTER TABLE MyTable ALTER COLUMN ID autonumber(1,1)"
'Set rs = cnn.Execute(q1)
p = UserForm1.csvFolder & "\" & sItem & ".csv"
Open p For Input As #1
Do While Not EOF(1)
Close #1
Line Input #1, s
arrData = Split(s, ",")
q1 = "INSERT INTO MyTable(F1,F2,F3) values(" & arrData(0) & "," & arrData(1) & "," & arrData(2) & ")"
Set rst = cnn.Execute(q1)
Loop
Close #1
rs.Close
rs`enter code here`t.Close
Set rst = Nothing
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
(MYTABLE) 및 CSV 파일로 작업하는 모든 테이블에 대해 더 자세히 알려주십시오. 어떻게 생겼습니까? (구조, 데이터) 등 –
MS Access를 사용하고 싶지 않은 이유가 무엇입니까? 예 : DoCmd.TransferText? – user1917229