XCEL查找SQL SERVER数据库的数据
新建sql数据库,建立表单,测试数据。如图。这些都是常规操作。
我的表名是:Table_Yangji
然后新建一个EXCEL连接SQL SERVER数据库.xlsx 填写如下内容,然后另存为EXCEL连接SQL SERVER数据库.xlsm
这个按钮是在:开发工具--插入--Active控件
然后打开Visual Basic 或者ALT+F11 插入模块。名称随便。没有影响。例如我取个conn
黏贴代码。
- <pre name="code" class="html">Public Function search_sql()
- Dim I2 As Integer, j2 As Integer, sht As Worksheet ' i2,j2为整数变量;sht 为excel工作表对象变量,指向某一工作表
- Dim R, C, F, I As Integer 'R Excel表的行序号,C Excel表的列序号 F 查询结果的总记录数 I SQL表的字段序号
- Dim strCn As String, strSQL As String '字符串变量
- '方法一:直接引入数据库驱动程序
- '工具 ---〉引用 ---〉Microsoft ActiveX data objects ....
- '然后定义两个驱动
- 'Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
- 'Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
- '方法二:不用引入驱动,直接设置驱动。
- Dim cn As Object
- Dim rs As Object
- Set cn = CreateObject("Adodb.Connection")
- Set rs = CreateObject("Adodb.Recordset")
- '=========================我用的是方法二======================
- '
- '
- '
- '
- strCn = "Provider=sqloledb;Server=127.0.0.1;Database=yangji_test;Uid=yangji;Pwd=yangji0321" '定义数据库链接字符串
- '下面的语句将读取数据表数据,并将它保存到excel工作表中:工作表为一张两维表,记录集也是一张两维表
- strSQL = "SELECT * FROM [dbo].[Table_Yangji] " '定义SQL查询命令字符串
- cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
- rs.Open strSQL, cn '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
- R = 2 '表示从第二行开始,行序号
- C = 1 '表示从第一列开始,列序号
- '这里需要注意的是,如果用这一句,只能在当前工作表中正常使用。另存为宏后就不能正常工作了
- 'ThisWorkbook指的是当前工作簿,不是活动工作表。她就指向宏的工作簿了。
- ' Set sht = ThisWorkbook.Worksheets("Sheet1")'把sht指向当前工作簿的Test工作表
- '改用ActiveWorkbook就指向当前活动工作簿了。就能正常工作了。O(∩_∩)O哈哈~
- Set sht = ActiveWorkbook.Worksheets("Sheet1") '把sht指向当前工作簿的Test工作表
- '测试用
- 'Dim a As String
- 'Dim b As String
- 'a = ActiveWorkbook.Name '返回活动工作薄的名称
- 'b = ThisWorkbook.Name '返回当前工作簿名称
- 'MsgBox "程序被调用。" & a & "=====" & b
- Do While Not rs.EOF '当数据指针未移到记录集末尾时,循环下列操作
- sht.Cells(R, C) = rs("bianhao") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- sht.Cells(R, C + 1) = rs("changdu") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- sht.Cells(R, C + 2) = rs("neijing") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- sht.Cells(R, C + 3) = rs("waijing") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- sht.Cells(R, C + 4) = rs("zifuchuan") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- sht.Cells(R, C + 5) = rs("riqi") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- sht.Cells(R, C + 6) = rs("shijian") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- sht.Cells(R, C + 7) = rs("text") '把当前记录的字段1的值保存到sheet1工作表的第I行第1列
- rs.MoveNext '把指针移向下一条记录
- R = R + 1 'i加1,准备把下一记录相关字段的值保存到工作表的下一行
- Loop '循环
- rs.Close '关闭记录集,至此,程序将把某数据的字段1保存在工作表sheet1的第1列,行数等于数据表的记录数
- Set rs = Nothing
- cn.Close '关闭数据库连接,释放资源
- Set cn = Nothing
- End Function
这里需要注意的是:
1、VBA编辑必须在中文状态下复制黏贴,才能正常显示中文,不然复制黏贴中文会乱码。
2、还是开头必须
- Public
不然当按钮调用的时候会出现函数未定义错误。
好。保存。然后点EXCEL图标,进入EXCEL界面。
双击那个按钮,进入编码,然后黏贴代码。
- Private Sub CommandButton1_Click()
- Call search_sql
- End Sub
保存。再关闭设计模式,点按钮测试。
读取成功。公司有事。先写到这里。
XCEL查找SQL SERVER数据库的数据相关推荐
- 了解SQL Server数据库静态数据及其如何适合数据库生命周期管理
什么是静态数据 (What is static data) Static data (aka Code, Lookup, List or Reference data), in the context ...
- c#窗体点餐系统 使用sql server 数据库保存数据
c#窗体点餐系统 使用sql server 数据库保存数据 登录界面 using System; using System.Collections.Generic; using System.Comp ...
- SQL Server数据库六种数据移动方法
1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然, ...
- 如何找到SQL server数据库的数据源地址
1.找到数据源地址 1.先打开SQL Server数据库并连接. 2.然后找到目标数据库,右键并点击"属性". 3.在弹出的属性窗口左侧"选择页"中选择&quo ...
- sqlserver evaluation是什么版本_使用SSMS扫描和查找SQL Server数据库的潜在安全漏洞...
SQL Server Management Studio 17.4或更高版本的SSMS中提供了SQL Server漏洞侦测(VA)功能,此功能允许SQL Server扫描您的数据库以查找潜在的安全漏洞 ...
- ssms没有弹出服务器验证_使用SSMS扫描和查找SQL Server数据库的潜在安全漏洞
SQL Server Management Studio 17.4或更高版本的SSMS中提供了SQL Server漏洞侦测(VA)功能,此功能允许SQL Server扫描您的数据库以查找潜在的安全漏洞 ...
- SQL Server数据库--过滤数据
关键字:distinct:去重复 我们在查询数据的时候,会有许多相同的数据,这时候我们就要给它把重复的数据删除,查看不同的数据 图表 1 Distinct还可以对null值进行去重操作 关键字:Whe ...
- SQL Server 数据库中将数据表中的数据转化为Insert 语句
Use Northwind Select 'Insert Into Customer(CustomerID,CompanyName,ContactName) Values ('+'''' +Cust ...
- SQL Server数据库插入数据中文显示乱码问题
例如把下面数据插入数据中,中文会显示乱码: use testsql; if exists(select * from sysobjects where id=object_id('test')) dr ...
- 如何将数据从Excel文件导入SQL Server数据库
There are many ways to import data from an Excel file to a SQL Server database using: 有多种方法可以使用以下方法将 ...
最新文章
- JVM---对象的实例化内存布局与访问定位
- 常见蛋白质种类_什么是优质蛋白质?鸡蛋大豆算不算
- vue实现进入页面表单聚焦
- 如何成长为一名优秀的Web开发人员
- [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence
- boost::container模块实现比较的程序
- JDBC的开发流程是什么?
- Linux——curl(转)
- 原生ajax 和jquery ajax 个人总结
- GlobalAuthenticationConfigurerAdapter.class 整合activiti 工作流报错
- 第009讲 初识css 类选择器 id选择器 html选择器
- 在线pdf转word
- C语言 数组和指针
- openproj ubuntu安装及其输入中文变方块乱码解决
- 联想LJ2600D硒鼓加粉后清零操作
- 怎么录制QQ语音通话 QQ通话录音软件哪个好?
- 双代号网络图节点编号原则_双代号网络图的绘制原则
- AD域外计算机共享域内打印机出现“无法访问,没有权限访问网络资源,用户不得从此工作站登录网络”
- AirServer 7.2.6 手机投到Mac并录制手机屏幕
- 物联网云平台都有哪些分类
热门文章
- [管理]ERP专业术语
- 英国留学经验分享:发下呆会被拒 有特长受欢迎
- AutoIt:常用文件操作
- 使用Word脚注、尾注给论文添加参考文献并将编号修改成[1]的方法
- ssm南工二手书交易平台毕业设计源码172334
- java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted
- 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛 B - 大还是小? 字符串水题...
- JavaScript线条变形动画网页js特效
- 2008年12月12号,星期五晴。为人父,却不能尽父责,为人夫,却不能尽夫责。这种痛楚什么时候才能结束。
- 程序输出我是java小公主,我的同学英文