怎么样实现把本地的excel文件用VB写入远程的sql数据库,求教.....

liaijian 2008-03-17 08:34:20
本人愚钝,对VB不太熟,请各位解答详细点(主要是想学习)......情况如下:我在远程sql下建了数据库“vb_a”,里面有3个自段“fnumber,fname,fmodel”,我想把本地D:\test.xls中sheet1(字段也是这3个)表里的数据导入到数据库中,怎么用VB实现????我主要有几点没弄明白:(1)读取excel的代码怎么写?读取的数据存到哪了呢?(2)用什么语句写入数据库中?那个"select into 数据库路径+数据表..."中的'数据库路径+数据表'我到现在也没弄明白,远程数据库的路径怎么写.(3)把从数据表中导出到excel的代码也给我吧.谢谢!
...全文
146 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
三色 2008-03-17
  • 打赏
  • 举报
回复
Public Function LoadExl(exlf As String, exlsht As String, tbl As String)
的功能是把本地excel文件(exlf)中sheet(exlsht)的内容拷贝到远程TABEL(tbl)中
exlf->exlsht中字段名应与tbl中的字段名一致,如果不一致简单修改一下过程也就可以了。根据实际需求
三色 2008-03-17
  • 打赏
  • 举报
回复
我前几天刚搞过这个,贴个过程
Public Function LoadExl(exlf As String, exlsht As String, tbl As String)
Dim myDbOper As New DbOperation
Dim adoCnn As New ADODB.Connection
Dim r1 As New ADODB.Recordset
Dim r2 As ADODB.Recordset
Dim sql As String
myDbOper.DB_Connect
sql = "SELECT * FROM " & tbl
Set r2 = myDbOper.querySQL(sql)
'打开Excel
adoCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & exlf & ";Extended Properties='Excel 8.0;HDR=Yes'"
r1.Open "Select * From [" & exlsht & "$]", adoCnn, adOpenKeyset, adLockOptimistic

If r1.BOF = False Or r1.EOF = False Then
r1.MoveFirst
Do While r1.EOF <> True
r2.AddNew
For i = 0 To r1.Fields.count - 1
r2.Fields(r1.Fields(i).name) = r1.Fields(i).Value
Next i
r2.Update
r1.MoveNext
Loop
End If
r1.Close
r2.Close
adoCnn.Close
Set adoCnn = Nothing
myDbOper.DB_DisConnect
End Function

'以上r1是打开的Excel查询,直接在过程里面定义了。
'r2远程SQL 查询,定义时我专门建了一个类模块,方便到处定义的,以下是这个类模块
'以下放在类模块里,名字取DbOperation
'声明一个连接
Dim conn As ADODB.Connection
'声明一个数据集对象
Dim rst As ADODB.Recordset
Public Sub DB_Connect()
'建立连接
Set conn = New ADODB.Connection
conn.ConnectionTimeout = 8 '设置连接超时,8s内无法连接视为服务器不可用
conn.Open ConnectString '连接服务器
End Sub
Public Function querySQL(ByVal sql As String) As ADODB.Recordset
'执行查询
Set rst = New ADODB.Recordset
rst.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic
'rst.MoveLast 'get RecordCount
Set querySQL = rst

End Function
Public Sub executeSQL(ByVal sql As String)
'执行sql语句
conn.Execute (sql)

End Sub
Public Sub DB_DisConnect()
'关闭连接
conn.Close
'释放连接
Set conn = Nothing
End Sub


7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧