如何将长号从csv导入数据库而不转换为VBA中的科学记数法

时间:2017-03-01 17:26:57

标签: vba csv scientific-notation

我有一个CSV文件,我想在其上导入所有数据。到目前为止,我可以将文件中的所有数据读取到我的数据库中,但我在那里的长数字转换为科学记数法,使我的数据多余。当我在notepad ++中打开我的CSV文件时,数据在其原始格式中看起来很好但是当我在excel中打开相同的文件时,数据是科学记数法。问题是我使用VBA excel来读取我的CSV文件所以数据我得到的是与我在excel中打开文件时相同。我希望能够使用VBA excel进行导入,但得到的原始数字不是科学记法,有一种方法可以操作,所以当我进行导入时,我得到原始格式的长号。 到目前为止,这是我导入的代码

con.Provider = "Microsoft.Ace.OLEDB.12.0"
con.ConnectionString = "Data Source=" & currentDataFilePath & ";" & "Extended Properties=""text;HDR=Yes;FMT=Delimited;"""
'MsgBox currentDataFilePath

con.Open

rs.Open "SELECT * FROM [" & currentDataFileName & "] ", con
rs.MoveFirst
'nextRow = Worksheets("Sheet3").UsedRange.Rows.Count + 1
'Worksheets("Sheet3").Cells(nextRow, 1).CopyFromRecordset rs

'MsgBox rs.RecordCount
With rs
Do Until .EOF

'check the field is not null before process

 If Not IsNull(rs("Invoice Number")) Then
 InvoiceNum = rs("Invoice Number")
 End If
    If Not IsNull(rs("Payer Name")) Then
 PayerName = rs("Payer Name")
 End If
    If Not IsNull(rs("Card Number")) Then
 CardNumber = """" & rs("Card Number") & """"
 End If
    If Not IsNull(rs("Licence Number")) Then
 LicenceNumber = rs("Licence Number")
 End If
    If Not IsNull(rs("Driver Name")) Then
 DriverName = rs("Driver Name")
 End If
    If Not IsNull(rs("Transaction Date")) Then
 TransactionDate = rs("Transaction Date")
 End If

sqlstring="INSERT INTO tabledata set InvoiceNum='"& InvoiceNum &"',PayerName='" & PayerName &"',CardNumber='" & CardNumber &"',TransactionDate='" & TransactionDate &"'"
call insertQuery(sqlstring)
.movenext
Loop
 End With

0 个答案:

没有答案