如何在vb中将execl数据导入到SQL中

Ice1982 2010-04-28 09:12:44
在execl表格中填写内容

在VB中进行操作

把execl中数据导入到SQL数据库的相应表格中

请问如何实现上述操作

请举例说明
...全文
199 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
孤独剑_LPZ 2010-06-03
[Quote=引用 9 楼 ice1982 的回复:]
运行后为何会提示:"OLE DB 提供程序 MICROSOFT.JET.OLEDB.4.0" 报错?
[/Quote]
可能问题:
1. 是否引用excel对象? office 2003 工程中引用 Microsoft office 11.0 Object;
2. excel文件是否含有Sheet1工作博?
3. 确认被导入的表已经存在?
  • 打赏
  • 举报
回复
Ice1982 2010-06-03
运行后为何会提示:"OLE DB 提供程序 MICROSOFT.JET.OLEDB.4.0" 报错?
  • 打赏
  • 举报
回复
Ice1982 2010-05-26
如果sql中已经有一条数据,我想用execl表中填写一条数据以便替换原有sql中的数据,请问应该如何办理
  • 打赏
  • 举报
回复
赵4老师 2010-05-26
[Quote=引用 7 楼 chinaboyzyq 的回复:]
引用楼主 ice1982 的回复:
在execl表格中填写内容
在VB中进行操作
把execl中数据导入到SQL数据库的相应表格中
请问如何实现上述操作
请举例说明


SQL code

INSERT INTO t1
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'EXCEL 8.0;HDR=NO;……
[/Quote]
强顶!
  • 打赏
  • 举报
回复
chinaboyzyq 2010-05-26
[Quote=引用楼主 ice1982 的回复:]
在execl表格中填写内容
在VB中进行操作
把execl中数据导入到SQL数据库的相应表格中
请问如何实现上述操作
请举例说明
[/Quote]

INSERT INTO t1
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'EXCEL 8.0;HDR=NO;IMEX=1; DATABASE=c:\book1.xls', Sheet1$) Rowset_1


[Quote=引用 6 楼 ice1982 的回复:]
如果sql中已经有一条数据,我想用execl表中填写一条数据以便替换原有sql中的数据,请问应该如何办理
[/Quote]

UPDATE b
SET b.fname = a.f2, b.fstatus = a.f3
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'EXCEL 8.0;HDR=NO;IMEX=1; DATABASE=c:\book1.xls', Sheet1$) AS a INNER JOIN
t1 AS b ON a.f1 = b.fnumber
WHERE b.fstatus = 1234

以上是最简单的办法,以上这此SQL语句可以在VB的ADO中使用(能不能看懂,全凭你自己的造化)。

另一种方法就是建立excel对象,并读出数据,然后用ADO读出SQL数据库的数据,然后逐字段赋值,最后再更新记录,这是比较笨的做法。
  • 打赏
  • 举报
回复
bancxc 2010-04-28
CreateObject("Excel.Application")
  • 打赏
  • 举报
回复
zhaoleinefu 2010-04-28
网上这样的代码很多的,可以找一下,如果真的需要可以找我,我给你个例子
  • 打赏
  • 举报
回复
lxq19851204 2010-04-28
首先是EXCEL的格式与数据库的表的格式一样,然后选择EXCEL,IMPORT去SQL
Private Sub cmdImport_Click()
Dim sExcelPath As String
Dim sExcelCustomerNumber As String
Dim sExcelID As String
Dim sExcelCustomerName As String
Dim iExcelCompanyName As String
Dim cExcelOpenDate As Date
Dim cExcelLastDate As Date
Dim cExcelBirthday As Date
Dim cExcelExpiryDate As Date
Dim sExcelAddress As String
Dim sExcelPostalCode As String
Dim sExcelCity As String
Dim sExcelStateOrProvince As String
Dim sExcelCountry As String
Dim sExcelTel1 As String
Dim sExcelTel2 As String
Dim sExcelMobile As String

Dim iExcelX As Integer
Dim iExcelY As Integer

Dim xlsApplication As Object
Dim xlsWorkBook As Object
Dim xlsWorkSheet As Object

On Error GoTo FileError

If txtExcelPath.Text = "" Then Exit Sub
sExcelPath = txtExcelPath.Text

Set xlsApplication = CreateObject("Excel.Application")
Set xlsWorkBook = xlsApplication.Workbooks.Open(sExcelPath)
Set xlsWorkSheet = xlsWorkBook.Worksheets(1)

iExcelY = 2

sExcelCustomerNumber = xlsWorkSheet.Cells(iExcelY, 1).Value
Do While sExcelCustomerNumber <> ""
sExcelCustomerNumber = xlsWorkSheet.Cells(iExcelY, 1).Value
sExcelID = xlsWorkSheet.Cells(iExcelY, 2).Value
sExcelCustomerName = xlsWorkSheet.Cells(iExcelY, 3).Value
iExcelCompanyName = xlsWorkSheet.Cells(iExcelY, 4).Value
cExcelOpenDate = xlsWorkSheet.Cells(iExcelY, 5).Value
cExcelLastDate = xlsWorkSheet.Cells(iExcelY, 6).Value
cExcelBirthday = xlsWorkSheet.Cells(iExcelY, 7).Value
cExcelExpiryDate = xlsWorkSheet.Cells(iExcelY, 8).Value
sExcelAddress = xlsWorkSheet.Cells(iExcelY, 9).Value
sExcelPostalCode = xlsWorkSheet.Cells(iExcelY, 10).Value
sExcelCity = xlsWorkSheet.Cells(iExcelY, 11).Value
sExcelStateOrProvince = xlsWorkSheet.Cells(iExcelY, 12).Value
sExcelCountry = xlsWorkSheet.Cells(iExcelY, 13).Value
sExcelTel1 = xlsWorkSheet.Cells(iExcelY, 14).Value
sExcelTel2 = xlsWorkSheet.Cells(iExcelY, 15).Value
sExcelMobile = xlsWorkSheet.Cells(iExcelY, 17).Value

If sExcelCustomerNumber = "" Then Exit Do
If CheckCustomerNumber(sExcelCustomerNumber) Then
If CheckID(sExcelID) Then
'Insert
SaveCustomerProc sExcelCustomerNumber, sExcelID, sExcelCustomerName, iExcelCompanyName, cExcelOpenDate, cExcelLastDate, cExcelBirthday, cExcelExpiryDate, sExcelAddress, sExcelPostalCode, sExcelCity, sExcelStateOrProvince, sExcelCountry, sExcelTel1, sExcelTel2, sExcelMobile
End If
Else
If CheckID(sExcelID) Then
'Update
UpdateCustomerProc sExcelCustomerNumber, sExcelID, sExcelCustomerName, iExcelCompanyName, cExcelOpenDate, cExcelLastDate, cExcelBirthday, cExcelExpiryDate, sExcelAddress, sExcelPostalCode, sExcelCity, sExcelStateOrProvince, sExcelCountry, sExcelTel1, sExcelTel2, sExcelMobile
End If
End If

iExcelY = iExcelY + 1
Loop

xlsWorkBook.Close
xlsApplication.Quit

MsgBox "Import date successfully!"
Exit Sub
FileError:

xlsWorkBook.Close
xlsApplication.Quit
MsgBox "File Error!"
End Sub
  • 打赏
  • 举报
回复
wing013 2010-04-28
excel如果是一个有规则的数据,可以把期当作数据源导入
select * into Table FROM openrowset( 'Microsoft.Jet.OLEDB.4.0',
'EXCEL 5.0;HDR=YES;IMEX=1; DATABASE=yourPath',Sheet1$)
如果不规则的,就需要按实际的需求一个个写了.可以随便找个VB如何使用Excel的例子来看看,就行了
  • 打赏
  • 举报
回复
guyehanxinlei 2010-04-28
找一下这样Code 还是很多的
  • 打赏
  • 举报
回复
发帖
数据库(包含打印,安装,报表)

1200

社区成员

VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
帖子事件
创建了帖子
2010-04-28 09:12
社区公告
暂无公告