首页 > 解决方案 > 将 Excel VBA SQL 插入 Access 数据库时丢失冗长的整数

问题描述

我有一个包含冗长数字(如 3-4 亿)的 csv,我想通过 Excel 中的 ADOBD sql 将它们插入到访问数据库中。代码可以通过,但是当我在 Access 数据库中打开表时,所有这些数字都变为空。

我在 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

标签: sqlvbams-accessdoubleadodb

解决方案


推荐阅读