EXCEL自定义菜单+SQL数据库查询的综合应用
来源:互联网 发布:淘宝会员管理在哪里 编辑:程序博客网 时间:2024/05/29 08:40
这篇文章我先把上次写的两篇文章综合起来应用一下。让我们可以带着我们的后到处跑。让别人也可以用我们写的代码。
在上篇自定义EXCEL菜单项的文件基础上。我们稍微修改一下。
我们再插入一个模块,内容就是我们上次写的查询数据库的模块。现在就是把两个模块结合一下。如图:
conn模块代码黏贴:
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
xiaolian模块代码黏贴:
Public Sub Callback1(control As IRibbonControl) Call conn.search_sql <pre name="code" class="html"> MsgBox "点我干嘛,我是笑脸。"End SubPublic Sub Callback2(control As IRibbonControl) MsgBox "我是自定义图标。"End Sub
先来测试一下效果。
点之前:
点笑脸之后
OK功能正常之后。
再另存为
EXCEL自定义菜单+数据库查询教程.xlam
必须另存为 .xlam格式。
PS:可能路劲不能改。只能是:默认的路径哦
我的是C:\Users\网管\AppData\Roaming\Microsoft\AddIns
备注一下。没测试过。
这个就是我们写好的代码了。然后我们可以带着他到处跑啦。
这里假设来到另一位小MM的电脑上哈。
然后把文件拷贝到一个文件夹。
然后点EXCEL2007的开始图标==选项==加载项==EXCEL加载项==转到==浏览==找到文件==打开。
确定。这时我们的自定义宏处于勾选状态。看看我们的效果吧。
是不是有点小鸡冻啊。万一没出来怎么办。。。好紧张啊。
我点一下笑脸试试看哦。
还好。出来啦。O(∩_∩)O哈哈~。
下一次我们来把这个可爱的菜单修改成中文的吧。上次说了。她只认ENGLISH,不过咱是中国人,看不习惯。还是喜欢本土的。我们来改一下吧。
0 0
- EXCEL自定义菜单+SQL数据库查询的综合应用
- EXCEL自定义菜单+SQL数据库查询的综合应用
- 应用sql查询excel
- sql 异类查询应用[excel]
- Java操作excel的综合应用(jxl)
- Android底部菜单和侧滑菜单的综合应用
- 容器的综合应用:文本查询程序
- 容器的综合应用--文本查询程序
- 两个综合查询的SQL存储过程!
- SQL查询综合
- SQL综合应用学习
- SQL综合应用学习
- T-SQL综合应用
- 自定义Excel下拉菜单
- SQL直接查询提取excel表的记录到SQL数据库
- SQL to Excel 的应用
- SQL to Excel 的应用
- c++ primer--容器的综合应用:文本查询程序
- 【转】真机测试xcode方法
- SoftReference
- 高德地图API INVALID_USER_SCODE问题以及keystore问题
- C#入门4.9——本章小结及任务实施
- POJ 2728Desert King
- EXCEL自定义菜单+SQL数据库查询的综合应用
- 51Nod-1428-活动安排问题
- 工具类ImageTools值得收藏下
- Android 网站资源收集大全
- ubuntu基础命令
- Phred Parameter File Problems
- Mysql 远程访问控制--10038问题的解决
- java.util.concurrent.Exchanger应用范例与原理浅析
- 并查集详解 (转)-HDU-1232 - 畅通工程