新建sql数据库,建立表单,测试数据。如图。这些都是常规操作。

我的表名是:Table_Yangji

然后新建一个EXCEL连接SQL SERVER数据库.xlsx 填写如下内容,然后另存为EXCEL连接SQL SERVER数据库.xlsm

这个按钮是在:开发工具--插入--Active控件

然后打开Visual Basic 或者ALT+F11 插入模块。名称随便。没有影响。例如我取个conn

黏贴代码。

[html] view plaincopy
  1. <pre name="code" class="html">Public Function search_sql()
  2. Dim I2 As Integer, j2 As Integer, sht As Worksheet     ' i2,j2为整数变量;sht 为excel工作表对象变量,指向某一工作表
  3. Dim R, C, F, I As Integer      'R Excel表的行序号,C  Excel表的列序号 F 查询结果的总记录数  I SQL表的字段序号
  4. Dim strCn As String, strSQL As String '字符串变量
  5. '方法一:直接引入数据库驱动程序
  6. '工具 ---〉引用 ---〉Microsoft ActiveX data objects ....
  7. '然后定义两个驱动
  8. 'Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
  9. 'Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
  10. '方法二:不用引入驱动,直接设置驱动。
  11. Dim cn As Object
  12. Dim rs As Object
  13. Set cn = CreateObject("Adodb.Connection")
  14. Set rs = CreateObject("Adodb.Recordset")
  15. '=========================我用的是方法二======================
  16. '
  17. '
  18. '
  19. '
  20. strCn = "Provider=sqloledb;Server=127.0.0.1;Database=yangji_test;Uid=yangji;Pwd=yangji0321" '定义数据库链接字符串
  21. '下面的语句将读取数据表数据,并将它保存到excel工作表中:工作表为一张两维表,记录集也是一张两维表
  22. strSQL = "SELECT * FROM [dbo].[Table_Yangji] " '定义SQL查询命令字符串
  23. cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
  24. rs.Open strSQL, cn '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
  25. R = 2  '表示从第二行开始,行序号
  26. C = 1  '表示从第一列开始,列序号
  27. '这里需要注意的是,如果用这一句,只能在当前工作表中正常使用。另存为宏后就不能正常工作了
  28. 'ThisWorkbook指的是当前工作簿,不是活动工作表。她就指向宏的工作簿了。
  29. ' Set sht = ThisWorkbook.Worksheets("Sheet1")'把sht指向当前工作簿的Test工作表
  30. '改用ActiveWorkbook就指向当前活动工作簿了。就能正常工作了。O(∩_∩)O哈哈~
  31. Set sht = ActiveWorkbook.Worksheets("Sheet1") '把sht指向当前工作簿的Test工作表
  32. '测试用
  33. 'Dim a As String
  34. 'Dim b As String
  35. 'a = ActiveWorkbook.Name '返回活动工作薄的名称
  36. 'b = ThisWorkbook.Name   '返回当前工作簿名称
  37. 'MsgBox "程序被调用。" & a & "=====" & b
  38. Do While Not rs.EOF '当数据指针未移到记录集末尾时,循环下列操作
  39. sht.Cells(R, C) = rs("bianhao") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  40. sht.Cells(R, C + 1) = rs("changdu") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  41. sht.Cells(R, C + 2) = rs("neijing") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  42. sht.Cells(R, C + 3) = rs("waijing") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  43. sht.Cells(R, C + 4) = rs("zifuchuan") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  44. sht.Cells(R, C + 5) = rs("riqi") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  45. sht.Cells(R, C + 6) = rs("shijian") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  46. sht.Cells(R, C + 7) = rs("text") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
  47. rs.MoveNext '把指针移向下一条记录
  48. R = R + 1 'i加1,准备把下一记录相关字段的值保存到工作表的下一行
  49. Loop '循环
  50. rs.Close '关闭记录集,至此,程序将把某数据的字段1保存在工作表sheet1的第1列,行数等于数据表的记录数
  51. Set rs = Nothing
  52. cn.Close '关闭数据库连接,释放资源
  53. Set cn = Nothing
  54. End Function

这里需要注意的是:

1、VBA编辑必须在中文状态下复制黏贴,才能正常显示中文,不然复制黏贴中文会乱码。

2、还是开头必须

[html] view plaincopy
  1. Public

不然当按钮调用的时候会出现函数未定义错误。

好。保存。然后点EXCEL图标,进入EXCEL界面。

双击那个按钮,进入编码,然后黏贴代码。

[html] view plaincopy
  1. Private Sub CommandButton1_Click()
  2. Call search_sql
  3. End Sub

保存。再关闭设计模式,点按钮测试。

读取成功。公司有事。先写到这里。

XCEL查找SQL SERVER数据库的数据相关推荐

  1. 了解SQL Server数据库静态数据及其如何适合数据库生命周期管理

    什么是静态数据 (What is static data) Static data (aka Code, Lookup, List or Reference data), in the context ...

  2. c#窗体点餐系统 使用sql server 数据库保存数据

    c#窗体点餐系统 使用sql server 数据库保存数据 登录界面 using System; using System.Collections.Generic; using System.Comp ...

  3. SQL Server数据库六种数据移动方法

    1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然, ...

  4. 如何找到SQL server数据库的数据源地址

    1.找到数据源地址 1.先打开SQL Server数据库并连接. 2.然后找到目标数据库,右键并点击"属性". 3.在弹出的属性窗口左侧"选择页"中选择&quo ...

  5. sqlserver evaluation是什么版本_使用SSMS扫描和查找SQL Server数据库的潜在安全漏洞...

    SQL Server Management Studio 17.4或更高版本的SSMS中提供了SQL Server漏洞侦测(VA)功能,此功能允许SQL Server扫描您的数据库以查找潜在的安全漏洞 ...

  6. ssms没有弹出服务器验证_使用SSMS扫描和查找SQL Server数据库的潜在安全漏洞

    SQL Server Management Studio 17.4或更高版本的SSMS中提供了SQL Server漏洞侦测(VA)功能,此功能允许SQL Server扫描您的数据库以查找潜在的安全漏洞 ...

  7. SQL Server数据库--过滤数据

    关键字:distinct:去重复 我们在查询数据的时候,会有许多相同的数据,这时候我们就要给它把重复的数据删除,查看不同的数据 图表 1 Distinct还可以对null值进行去重操作 关键字:Whe ...

  8. SQL Server 数据库中将数据表中的数据转化为Insert 语句

    Use Northwind Select 'Insert Into Customer(CustomerID,CompanyName,ContactName)  Values ('+'''' +Cust ...

  9. SQL Server数据库插入数据中文显示乱码问题

    例如把下面数据插入数据中,中文会显示乱码: use testsql; if exists(select * from sysobjects where id=object_id('test')) dr ...

  10. 如何将数据从Excel文件导入SQL Server数据库

    There are many ways to import data from an Excel file to a SQL Server database using: 有多种方法可以使用以下方法将 ...

最新文章

  1. JVM---对象的实例化内存布局与访问定位
  2. 常见蛋白质种类_什么是优质蛋白质?鸡蛋大豆算不算
  3. vue实现进入页面表单聚焦
  4. 如何成长为一名优秀的Web开发人员
  5. [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence
  6. boost::container模块实现比较的程序
  7. JDBC的开发流程是什么?
  8. Linux——curl(转)
  9. 原生ajax 和jquery ajax 个人总结
  10. GlobalAuthenticationConfigurerAdapter.class 整合activiti 工作流报错
  11. 第009讲 初识css 类选择器 id选择器 html选择器
  12. 在线pdf转word
  13. C语言 数组和指针
  14. openproj ubuntu安装及其输入中文变方块乱码解决
  15. 联想LJ2600D硒鼓加粉后清零操作
  16. 怎么录制QQ语音通话 QQ通话录音软件哪个好?
  17. 双代号网络图节点编号原则_双代号网络图的绘制原则
  18. AD域外计算机共享域内打印机出现“无法访问,没有权限访问网络资源,用户不得从此工作站登录网络”
  19. AirServer 7.2.6 手机投到Mac并录制手机屏幕
  20. 物联网云平台都有哪些分类

热门文章

  1. [管理]ERP专业术语
  2. 英国留学经验分享:发下呆会被拒 有特长受欢迎
  3. AutoIt:常用文件操作
  4. 使用Word脚注、尾注给论文添加参考文献并将编号修改成[1]的方法
  5. ssm南工二手书交易平台毕业设计源码172334
  6. java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted
  7. 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛 B - 大还是小? 字符串水题...
  8. JavaScript线条变形动画网页js特效
  9. 2008年12月12号,星期五晴。为人父,却不能尽父责,为人夫,却不能尽夫责。这种痛楚什么时候才能结束。
  10. 程序输出我是java小公主,我的同学英文