在vb中,将excel数据导入到数据库(SQL)中。

hz03zhuhaowen 2009-08-19 10:50:18
我会设计一个公共对话框,

With CommonDialog1
.FileName = "*.xls"
.DialogTitle = "Select Excel file to open"
.Filter = "Excel files|(*.xls)"
.FilterIndex = 0
.InitDir = App.Path
.Flags = cdlOFNHideReadOnly
.ShowOpen
If .FileName = "*.xls" Then Exit Sub
End With

得到Excel文件后,怎么样把Execl数据导入到数据库中?
比如说:
有Materical.xls中有结构如下:
物料代码 物料名称 数量
A.A001 A货 1
B.B001 B货 1
C.C001 C货 1
我在SQL有张表Table,表结构如下:
FNumber FName FStatus
我现在应该怎么把Materical中的“物料代码”数据对应的给Table中的“FNumber”,“物料名称”数据对应的给“FName” ?
...全文
609 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
水猿兵团五哥 2009-08-19
  • 打赏
  • 举报
回复

'先打开EXCEL,得到EXCEL内容
Dim con As New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & Maintext.Text)
’Maintext.Text 为EXCEL的路径
con.Open()
Dim cmd As New OleDb.OleDbCommand("select * from [sheet1]", con)
Dim adapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(cmd)
Dim DS As New DataSet
Try
adapter.Fill(DS, "DS")
Catch EX As Exception
MsgBox(EX.ToString, MsgBoxStyle.Critical)
Exit Sub
End Try
‘下面再把EXCEL中的内容插入数据库
Dim UF As New System.Text.StringBuilder
DIM I AS INTEGER
Try
FOR I =0 TO DS.TABLES(0).ROWS.COUNT -1
UF.Append(" INSERT INTO table( ")
UF.Append(" FNumber ,")
UF.Append(" FName ,")
UF.Append(" FStatus) ")
UF.Append(" VALUES( ")
UF.Append(" '").Append(DS.TABLES(0).ROWS(I).ITEM(0)).Append("', ")
UF.Append(" '").Append(DS.TABLES(0).ROWS(I).ITEM(1)).Append("', ")
UF.Append(" '").Append(DS.TABLES(0).ROWS(I).ITEM(2)).Append("') ")


Debug.WriteLine("")
Debug.WriteLine(UF.ToString)

UFselect = New SqlClient.SqlCommand(UF.ToString, CNUF)
UFselect.CommandTimeout = 300
UFselect.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "用友Error")
Exit Sub
End Try

NEXT




以上仅供参考,没有完全重新写,部分修改而已,功能已经具备了
jhone99 2009-08-19
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim cn As ADODB.Connection

Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\f1.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"

cn.Execute "Insert Into [;database=" & App.Path & "\mydb2.mdb].[f2](id,item1,item2) Select id,item1,item2 From [Sheet1$]"

cn.Close
Set cn = Nothing
End Sub

chinaboyzyq 2009-08-19
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cn1 As New ADODB.Connection

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Materical.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
Set rs = cn.Execute("Select id,item1,item2 From [Sheet1$]")
cn1.Open "Provider=SQLOLEDB.1;Password=dg;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=."

Do While Not rs.EOF
cn1.Execute ("Insert Into t1(FNumber,FName,FStatus) VALUES ('" & Format(rs(0)) & "','" & Format(rs(1)) & "','" & Format(rs(2)) & "')")
rs.MoveNext
Loop
rs.Close: cn.Close: cn1.Close
Set rs = Nothing: Set cn = Nothing: Set cn1 = Nothing
End Sub

7,762

社区成员

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

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