用VB做怎么将Excel数据导入SQL数据库中?

作者&投稿:丁桑 (若有异议请与网页底部的电邮联系)
用VB编写一个导入EXCEL文件数据到SQL2000数据库中的程序,怎么编写的~

操作方法如下:
  1、导入Excel数据,同时创建表:
  select * into 表名 FROMopenrowset( 'Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=文件路径','select* from [Excel表名(默认为Sheet1)$]')。
  2、在表中插入Excel数据:
  insert into 表名 select * fromopenrowset( 'Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1; DATABASE=文件路径','select * from [Excel表名(默认为Sheet1)$]')。
  3、导出数据到Excel中:
  insert into openrowset('Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=0; DATABASE=文件路径','select* from [Excel表名(默认为Sheet1)$]') select * from 表名;需要创建Excel文件并指定列名后才可以导出。

这里是我用的代码,估计对你有用:

'On Error Resume Next
Dim fileadd As String
CommonDialog1.ShowOpen
CommonDialog1.Filter = "xls文件(*.xls)|*.xls" '选择你要的文件
fileadd = CommonDialog1.FileName
If fileadd = "" Then Exit Sub
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(fileadd) '打开已经存在的EXCEL工件簿文件
xlApp.Visible = False ' = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets(1) '设置活动工作表
For R = 1 To 99999 '行循环
If LTrim(RTrim(xlBook.Worksheets(1).Cells(R, 1))) "" Then
sybw.Adodc3.Refresh
sybw.Adodc3.Recordset.Find "ShiGongBuWei_Name='" & LTrim(RTrim(xlBook.Worksheets(1).Cells(R, 1))) & "'"
If sybw.Adodc3.Recordset.EOF Then
sybw.Adodc3.Recordset.AddNew
sybw.Adodc3.Recordset!ShiGongBuWei_Name = LTrim(RTrim(xlBook.Worksheets(1).Cells(R, 1)))
sybw.Adodc3.Recordset!FenXiangGongCheng_ID = bb
sybw.Adodc3.Recordset.Update
sybw.Adodc3.Refresh
' Call log(MM_Users_NameTrue, "增加了施工部位", MM_Companys_ID)
Else
' MsgBox " 施工部位重复! ", vbOKOnly, "用户信息"
End If
Else
R = 99999 + 1
End If
Next R

xlApp.DisplayAlerts = False '不进行安全提示 '
Set xlSheet = Nothing '
Set xlBook = Nothing '
xlApp.Quit '
Set xlApp = Nothing

用VB做,将Excel数据导入SQL数据库中:
法一:可以试着用VB书写一段调用SQL Server数据库DTS的代码,然后就可以像直接使用DTS进行数据导入一样就行Excel与SQL Server数据之间的迁移了。
方法二:可以用VB来 作EXCEL,然后一条数据一条数据的 入到数据库中,这种方法不 使用,因为VB 作EXCEL是非常慢的,如果数据量太大,很有可能会造成宕机。

首先需要在工程中引用Microsoft Excel Object Library

代码参照下边的例子

Dim sA, sB, sC, sD, sE, sF, sG, sH, sName, sDistrictName, sDepName, sDepNameOld, sDepID, sParentID, sFeeID
Dim oRdA As New ADODB.Recordset
Dim oRdB As New ADODB.Recordset
Dim oXl As Excel.Application
Dim oWb As Workbook
Dim oWs As Excel.Worksheet
Dim iA, iB, iC, iD, iError
Dim lCount
Dim bExcelRunning 'Excel是否已运行

If mlErrors <> 0 Then
MsgBox "请先检查导入数据的正确性!检查通过后方可进行导入!", vbOKOnly, "系统提示"
Exit Sub
End If
'0 要求对数据导入进行确认
'1 获得导入的数据源并打开
'1.1获得导入的数据源

sName ="你的excel文件名全路径"

If sName = "" Then Exit Sub
sA = Dir(sName, vbNormal)
If sA = "" Then Exit Sub
'1.2 打开数据源
Screen.MousePointer = vbHourglass
On Error GoTo ConnectError
lblInfo.Caption = "打开数据源"
Set oXl = GetObject("", "Excel.Application")
Set oWb = oXl.Workbooks.Open(sName)

lblInfo.Caption = "连接数据库"
'2 打开数据库连接
sA = "Provider=SQLOLEDB; Data Source=数据库服务器ID,1433; Network Library=DBMSSOCN;" & _
";Initial Catalog=数据库名;User ID=用户ID;Password=密码"
'oracle方式

' sA = "Provider=OraOLEDB.Oracle;Data Source=net服务名;User Id=用户ID;Password=密码"

goConnect.ConnectionString = sA
goConnect.Open

On Error GoTo Morn

'4 清理数据库
's_ClearAllTable '调用清理数据库过程把以前数据清理掉
'5 导入信息
Set oWs = oXl.Worksheets(1)

'.2开始数据导入 1万行一提交

goConnect.BeginTrans

With oWs
For iA = 2 To Prb.Max

lCount = lCount + 1
sA = "insert into department(DEPID,DEPNAME,DEPCODE,depCompleteName,depAddress,deleted) values('" & _
CStr(lCount) & "','" & .Cells(iA, 2) & "','" & .Cells(iA, 1) & "','" & .Cells(iA, 4) & _
"','" & .Cells(iA, 3) & "',0)"
goConnect.Execute sA

Next

End With
goConnect.CommitTrans

首先在vb中引用Excel对象库,版本11对应Office2003
用以下对象读取Excel的数据:
Excel.Application对象打开Excel
Excel.Workbook 对象打开Excel文件
Excel.Worksheet 对象(xlSheet)打开页
xlSheet.Cells(Row,Col) 读取某个单元格的内容
写入数据库可以用ADO,用记录集打开表(表可以手动建立或者用SQL建立),用循环逐项写入并保存即可。
Dim rs As ADODB.Recordset
...
rs("Name") = xlSheet.Cells(3, 2)
rs.Update
...

1、从EXCEL读取数据
2、将读取到的数据按照SQL表的格式整理好
3、插入到SQL数据库中
4、循环以上过程 完成后提交事物


在ACCESS里用VB代码将数据导出到Excel了,导出完后如何保存这个Excel文...
xlapp.quit Set xlapp = Nothing

VB给单元格赋值时出现无效的过程调用或参数
您好!您需要在“引用”对话框中引用"Microsoft Excel 11.0 Object Library",然后在声明段加上一句:dim exc as excel.application 将Cells(x, "A").Value = strWords改为exc.Cells(x, "A").Value

VB怎样启动和禁止本地连接,要代码
ExcNetLinkMenu = False GoTo exitfunction End If exitfunction:Set mShell = Nothing Set NetConnection = Nothing Set FolderItem = Nothing Set NetConnectionItem = Nothing Set verb = Nothing End Function Private Sub Command1_Click()Dim flag As Boolean '把 本地连接 2 换成你要控制的...

VB程序提示未发现数据源名称并且未指定默认驱动程序
\/exc6\/Guestbook2.asp, 第 4 行 解决办法是修改C:\\Inetpub\\wwwroot目录下exc6文件夹的访问权限,修改方法是:1、鼠标右键点击exc6文件夹,选择属性,选择“WEB共享”选项卡,将“不共享文件夹”改为“共享文件夹”,在别名文本框中随便输入任何一个字符串,再点击“编辑属性”按钮,在弹出的窗口中将...

vb 多种数据统计?
set Rs=excSQL("SELECT 品名, count(*) AS 数量, 单价 FROM 报表 GROUP BY 品名, 单价")rs中的就是你要的结果

VB 关于禁止电脑发送数据
Option Explicit Private Const NetConnect = &H31 Private Sub Command1_Click() '停用本地连接 Dim blnRelust As Boolean '把 本地连接换成你要控制的本地连接的名字 blnRelust = ExcNetLinkMenu("本地连接", "停用(&B)")'xp If blnRelust Then Debug.Print "停用成功"Else blnRelust =...

VB如何使用ADO修改ACCESS数据
Function Public Function ExcSQL(ByVal sql As String) As ADODB.Recordset Dim rst As ADODB.Recordset '执行一条SQL查询,得到一个记录集 Set rst = New ADODB.Recordset rst.Open Trim$(sql), dbConn, adOpenKeyset, adLockOptimistic '得到记录 Set ExcSQL = rst End Function 自己修改下 ...

vb 多种数据统计?
list控件的改成listview控件?ListView1.ListItems.Clear excSQL应该是一个建立recordset的函数,是否需要修改,这里没法判别

vb中如何获得网卡是启用还是禁用
'VB起用和禁用网络连接 OptionExplicit PrivateConstNetConnect=&H31 PrivateSubCommand1_Click()'停用本地连接 DimblnRelustAsBoolean '把本地连接换成你要控制的本地连接的名字 blnRelust=ExcNetLinkMenu("本地连接","停用(&B)")'xp IfblnRelustThen Debug.Print"停用成功"Else blnRelust=ExcNet...

vb Combo1不显示重复的记录?
可以不可以改成这样:Private Sub Form_Load()Dim Rs As ADODB.RecordsetSet Rs = ExcSQL("select distinct 品名 from 菜单") Combo1.Clear '清空 While Not Rs.EOF Combo1.AddItem Rs("品名") Rs.MoveNext Wend Rs.CloseEnd Sub ...

龙文区18317455176: 用VB做怎么将Excel数据导入SQL数据库中? -
后秒氯氮: 首先需要在工程中引用Microsoft Excel Object Library 代码参照下边的例子 Dim sA, sB, sC, sD, sE, sF, sG, sH, sName, sDistrictName, sDepName, sDepNameOld, sDepID, sParentID, sFeeID Dim oRdA As New ADODB.Recordset Dim oRdB As ...

龙文区18317455176: 使用VB将excel导入sql -
后秒氯氮: EXCEL文件要设置固定格式,还要设置命名范围,然后才可以导入 大致思路如下:'// 设置打开 EXCEL 文件的连接字符串 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=excel文件名;Extended Properties=Excel 8.0"'// ...

龙文区18317455176: 用VB做怎么将Excel数据导入SQL数据库中?
后秒氯氮: 方法一:可以试着用VB书写一段调用SQL Server数据库DTS的代码,然后就可以像直接使用DTS进行数据导入一样就行Excel与SQL Server数据之间的迁移了. 方法二:可以用VB来操作EXCEL,然后一条数据一条数据的插入到数据库中,这种方法不推荐使用,因为VB操作EXCEL是非常慢的,如果数据量太大,很有可能会造成死机.

龙文区18317455176: 如何用通过vb把EXCEL里的数据导入SQL的表里?
后秒氯氮: dim DBC As New ADODB.Connection DBC.Execute ("insert OPENDATASOURCE( 'SQLOLEDB', 'Data Source=" & Database & ";User ID=sa' ).dhxy.dbo.xuesheng (" & FieldName & ") " & _ "SELECT " & FieldName & _ " FROM ...

龙文区18317455176: 如何将excel里的数据批量导入ACCESS,要用vb代码? -
后秒氯氮: 不用VB代码,手动导入可以用access的导入功能.方法:功能菜单->外部数据->Excel 然后按提示1、选择文件2、选择导入的Sheet名称3、首行是否包含标题4、选择索引5、添加主键6、导入到Access的表名7、完成

龙文区18317455176: 怎么用VB实现将EXCEL的数据导入到ACCESS? -
后秒氯氮: 最近正好在做和你差不多的事 先在Module1中打入 Option Explicit Public xlapp As Object 'Excel对象 Public xlbook As Object '工作簿 Public xlsheet As Object '工作表 Declare Function FindWindow Lib "user32" Alias _"FindWindowA" (ByVal ...

龙文区18317455176: 用VB编写一个导入EXCEL文件数据到SQL2000数据库中的程序,怎么编写的 -
后秒氯氮: 操作方法如下: 1、导入Excel数据,同时创建表: select * into 表名 FROMopenrowset( 'Microsoft.Jet.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=1;DATABASE=文件路径','select* from [Excel表名(默认为Sheet1)$]'). 2、在表中插入...

龙文区18317455176: 在vb中把excel导入到access中 -
后秒氯氮: set conn = Server.CreateObject("ADODB.Connection") '创建baiConn对象 conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.mappath("conn/***.mdb") & _";Persist Security Info=False" '与目标DB(就是你的...

龙文区18317455176: 怎么用vb 把数据输入到xls中?且要求在xls中按行按列输出?如下图效果 -
后秒氯氮: 给你个范例 在工程中引用Microsoft Excel类型库: 从"工程"菜单中选择"引用"栏;选择Microsoft Excel 11.0 Object Library(EXCEL2003),然后选择"确定".表示在工程中要引用EXCEL类型库.Dim xlApp As Excel.Application Dim xlBook ...

龙文区18317455176: VB6.0如何实现将excel数据导入mssql数据库中 -
后秒氯氮: 这里是我用的代码,估计对你有用:'On Error Resume Next Dim fileadd As String CommonDialog1.ShowOpen CommonDialog1.Filter = "xls文件(*.xls)|*.xls" '选择你要的文件 fileadd = CommonDialog1.FileName If fileadd = "" Then Exit ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网