在文件夹C:\Excel
中,我具有以下文件:
Schema.ini
包含:
[test.csv]
Format=Delimited(;)
ColNameHeader=True
MaxScanRows=2
CharacterSet=ANSI
DecimalSymbol=,
Col1=Lot Char
Col2=dateResa1 Date
Col3=PRIXLOG_IMMO Double
Col4=MONTANT_CA_ESTIME Double
在MS Access中,我有一个导出例程,该例程将csv文件数据加载到创建的表中:TEST
Private Sub importCSV_Click()
Dim strSQL As String
On Error Resume Next: DoCmd.DeleteObject acTable, "TEST": On Error GoTo 0
strSQL = " SELECT CStr(t.lot), CDate(t.dateResa1), CDbl(t.PRIXLOG_IMMO), CDbl(t.MONTANT_CA_ESTIME) " & _
" INTO TEST " & _
" FROM [Text;FMT=Delimited;HDR=YES;CharacterSet=ANSI;DATABASE=C:\Excel].[test.csv] t"
CurrentDb.Execute strSQL
End Sub
它很好用,但是表MS-Access TEST的列名被命名为:
是否可以通过仅使用SQL和Schema.ini
来强制列表TEST的名称?
解决方案:
因为我使用CStr,CDate ...强制转换了字段,所以必须使用别名重新定义字段名称,并且蛋糕上要覆冰,别名可以与字段名称相同。我测试了
答案 0 :(得分:0)
为避免在Access SQL中强制转换字段,在Schema.ini中为每个列声明类型就足够了,并允许在Access查询中使用*!