VB控制Excel数据导入Access出现怪事

来源:百度知道 编辑:UC知道 时间:2024/05/29 03:20:32
Private Sub Command1_Click()
Dim n As Long
Dim oConn As New ADODB.Connection
Dim oRS As New ADODB.Recordset
Dim strl As String
Dim conn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset

'打开读取excel
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Text1.Text & ";" & _
"Extended Properties=""Excel 8.0;"""
oRS.Open "Select * from [报价记录表$]", oConn, adOpenStatic

'打开数据库
str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Text2.Text & ";Jet OLEDB:Database Password="
conn.Open str1
strSQL1 = "delete * from 报价信息"
rs1.Open strSQL1, conn, 3, 3
'rs1.Close

strSQL1 = "select * from 报价信息"
rs1.Open strSQL1, conn, 3, 3

'指针到第一条记录
If rs1.RecordCount <> 0 Then
rs

大家说的没错,要转换一下数据类型
不过你这样的导入方法效率太低了,给你一个另一种思路的示例:
Private Sub Command1_Click()

Dim cn As Connection
Dim rs As Recordset
Dim sql As String
Dim n As Long, m As Long

Set cn = New Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\test.mdb;"

sql = "SELECT * From [Sheet1$] IN " & Chr(34) & App.Path & "\test.xls" & Chr(34) & Chr(32) & Chr(34) & "EXCEL 8.0;" & Chr(34)
Debug.Print sql
Set rs = cn.Execute(sql)
While Not rs.EOF
sql = "insert into tb(id,num,dt) values ('" & rs.Fields(0) & "'," & Val(rs.Fields(1)) & ",#" & rs.Fields(2) & "#)"
cn.Execute sql, n
m = m + n
rs.MoveNext
Wend
Set rs = Nothing
Set cn = Nothing