У меня есть CSV, содержащий длинные числа (например, 3-4 миллиарда), которые я хотел бы вставить их в базу данных доступа через ADOBD sql в Excel. Код работает, но все эти числа становятся пустыми, когда я открываю таблицу в базе данных Access.
Я дважды проверил в Designed View в Access, что тип доступа "Double" в доступе, и я понятия не имею, почему длинные интергеры будут потеряны. Могу ли я попросить вашего руководства по этому вопросу, пожалуйста? Код был упрощен, но ключевой момент заключается в том, как я мог бы что-то сделать в строке INSERT INTO, чтобы заставить ее считывать длинные числа в базу данных доступа? Большое спасибо.
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
Dim MyConn
Dim strSQL, strSQL2, strSWL3 As String
Dim InsertDate As Date
Dim FileDate As String
Set cnn = New ADODB.Connection
MyConn = ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open MyConn
End With
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = cnn
Set rst = New ADODB.Recordset
rst.Open "SELECT [Date] FROM [Text;DATABASE=C:\].[Source.csv];", cnn, adOpenDynamic, adLockOptimistic
strSQL = "INSERT INTO [Daily] "
strSQL = strSQL & "SELECT [Date] As WDate, Code, [#Sold] As QtySold"
strSQL = strSQL & " FROM [Text;DATABASE=C:\].[TargetDB.csv]"
cmd.CommandText = strSQL
cmd.Execute
Set cmd = Nothing
rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing