注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天边云E家 shaoruisky

IT博文共享,知识的海洋

 
 
 

日志

 
 

vba excel sqlserver  

2012-08-15 18:02:07|  分类: sqlserver |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

'需要引用ado2.5以上
Sub export()  '定义过程名称
Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表
Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As New ADODB.Recordset  '定义记录集对象,保存数据表
Dim strCn As String, strSQL As String '字符串变量
Sheets("Sheet2").Select
Sheets("Sheet2").Cells.Clear
strCn = "Provider=sqloledb;Server=.;Database=ns_net;Uid=sa;Pwd=;"    '定义数据库链接字符串
'下面的语句将读取数据表数据,并将它保存到excel工作表中:画两张表想像一下,工作表为一张两维表,记录集也是一张两维表
strSQL = "select dept_name,address,user_name,tel_long,tel_short,edit_name from  tel" '定义SQL查询命令字符串
cn.Open strCn   '与数据库建立连接,如果成功,返回连接对象cn
rs.Open strSQL, cn  '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
i = 1
Set sht = ActiveWorkbook.Worksheets("sheet2")   '把sht指向当前工作簿的sheet2工作表
Do While Not rs.EOF     '当数据指针未移到记录集末尾时,循环下列操作
    sht.Cells(i, 1) = rs("dept_name")    '把当前记录的字段1的值保存到sheet2工作表的第i行第1列
    sht.Cells(i, 2) = rs("address")    '把当前字段2的值保存到sheet2工作表的第i行第2列
    sht.Cells(i, 3) = rs("user_name")
    sht.Cells(i, 4) = rs("tel_long")
    sht.Cells(i, 5) = rs("tel_short")
    sht.Cells(i, 6) = rs("edit_name")
    rs.MoveNext                      '把指针移向下一条记录
    i = i + 1                        'i加1,准备把下一记录相关字段的值保存到工作表的下一行
Loop                                 '循环
cn.Execute strSQL
cn.Close
End Sub
Sub import()  '定义过程名称
Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表
Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim strCn As String, strSQL As String '字符串变量
strCn = "Provider=sqloledb;Server=.;Database=ns_net;Uid=sa;Pwd=;"    '定义数据库链接字符串
cn.Open strCn   '与数据库建立连接,如果成功,返回连接对象cn
i = 1
Set sht = ActiveWorkbook.Worksheets("sheet3")   '把sht指向当前工作簿的sheet3工作表
Set pvrange = Sheets("sheet3").Range("a1").CurrentRegion
pvrows = pvrange.Rows.Count
For i = 1 To pvrows
    strSQL = "insert into tel (dept_name,address,user_name,tel_long,tel_short,edit_name) values('" & sht.Cells(i, 1) & "','" & sht.Cells(i, 2) & " ','" & sht.Cells(i, 3) & " ','" & sht.Cells(i, 4) & " ','" & sht.Cells(i, 5) & " ','" & sht.Cells(i, 6) & " ') " '构造SQL命令串
    cn.Execute strSQL
Next
cn.Close
End Sub

 

提示Dim Cn As New adodb.Connection用户类型未定义

解决办法:引用Microsoft ActiveX Data Object2.8

  评论这张
 
阅读(165)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016