导入的一个列既有字符型又有日期型,该咋办?(有代码)
还是刚才那代码,这是用ADO把Excel导入追加到Access的代码,连接之前的语句就省略不写了,下面是连接之后的
xlsrs.Open "select * from [Sheet1$]", xlsconn, 3, 1
Dim i As Integer
Dim a_name As String
Dim a_point As String
Dim a_day As String
i = 1
Do While Not xlsrs.EOF
a_name = xlsrs("名字")
a_point = xlsrs("点数")
a_day = xlsrs("日子")
Dim sql As String
sql = "insert into everyday(名字,点数,日子) Values('" & a_name & "','" & a_point & "','" & a_day & "')"
conn.Execute sql
i = i + 1
xlsrs.MoveNext
Loop
如果EXCEL文件中“日子”这一列有“2010-01-17”和“today”这样的数据,这就麻烦了,如果把 a_day 设成 String(如红色字体的代码),“2010-01-17”导进去后就会变成“40195”,而如果把 a_day 设成 date ,就会出错,因为“today”不是 date 类型,该咋办呢
[解决办法]
呵...日期型态我说了 我没转过, 但只要 .xls是日期型态 Access对应的字段也是日期型态, 应该是可以直接转的, 你试看在那个字段转换时 加上Format, yyyy-mm-dd
With objWorksheet
.Select
intRows = .UsedRange.Rows.Count
intCols = .UsedRange.Columns.Count
End With
'将Excel写入Access
Screen.MousePointer = vbHourglass
For intCnt = 2 To intRows
With Rs
.AddNew
For i = 1 To Rs.Fields.Count - 1
.Fields(i) = objWorksheet.Cells(intCnt, i)
'这里加上 If i=日期字段号 加上Format涵数
Next
.Update
End With
Next
Screen.MousePointer = vbDefault
MsgBox Me.cboAccess.Text & "导入数据库完毕!", vbOKOnly, "提示"