- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL+数据透视表+VBA 数据透视表的超级应用SQL+数据透视表+VBA 使数据透视表走向更灵活,更智能,更适用。这个是我和师傅一撇首度合作,他提供了文件并提出了要求,我帮他实现其效果下面从几个方面解释一下:1、功能一个源文件和一个通过用SQL查询生成的数据透视表将源文件拖到电脑的任意位置,甚至将文件名也改掉,用VBA配上代码和窗体找到文件,数据透视表仍然能够正常工作2、套用现在来讲讲怎么使做出来的东东适应大家的需要2、1用OLE DB窗口引用工作表或写SQL语句,因为用这个方法同VBA相通,copy下来代码区的的语句2、2打开透视表文件,将透视表中的字段全部拖出来,也就是变成一个空数据透视表。右击下面工作表图标或者工具》宏》visual basic 编辑器,点击模块看到代码区2、3将2、1步骤copy的语句commandtext的数据Array中的引号中.CommandText = Array(? ? )可能不同版本会有一些差别,同时SQL语句中如果添加了文本生成新字段,双引号要成对翻倍如:出库 AS 表单选项要改成 出库 AS 表单选项2、4语句太长的处理:在代码区如果你想好看一些,你可以插入“ _”来换行,当然不能插在一个单词或自动名等中间。2、5将文件存盘,重新打开就会有了数据,你可以将字段拖入数据透视表中,创建你自己的数据透视表,2、6这样文件就可以使用,相信VBA的引导不用教就可以交给别人使用了下面附上代码,包含3个区:1、工作簿去,打开文件时工作Private Sub Workbook_Open()Dim OPIf Dir(Sheets(path).Range(A1)) = Then? ? OP = MsgBox(源文件已被移走,请选择下列选项 + Chr(10) + 1、选择是,重新输入文件全名 + Chr(10) + 2、选择否,打开原有的数据透视表 + Chr(10) + 3、选择取消,关闭文件, vbYesNoCancel, Scarlett温馨提示)? ? If OP = vbYes Then? ?? ???UserForm1.Show? ? End If? ? If OP = vbNo Then? ?? ???ActiveWorkbook.Close True? ? End If? ??? ? If OP = vbCancel Then? ?? ???Exit Sub? ? End If? ??Else? ? Call refreshpvEnd IfEnd Sub2、窗体区,实现文件的查找Private Sub CommandButton1_Click()Dim fopen As FileDialogSet fopen = Application.FileDialog(msoFileDialogFilePicker)fopen.ShowTextBox1.Value = fopen.SelectedItems(1)Set fopen = NothingEnd SubPrivate Sub CommandButton2_Click()If InStr(TextBox1.Value, .) 0 Then? ? Sheets(path).Range(A1) = TextBox1.Value? ? Call refreshpv? ? unload meElse? ? MsgBox 文件名要带路径含后缀的文件名, Scarlett_88温馨提示? ? TextBox1.SetFocusEnd IfEnd SubPrivate Sub CommandButton3_Click()Unload MeEnd SubPrivate Sub TextBox1_Change()End SubPrivate Sub UserForm_Activate()End SubPrivate Sub UserForm_Click()TextBox1.Value = Sheets(path).Range(A1)End Sub3、模块区,实现SQL语句的地址更新和刷新数据透视表的数据源Sub refreshpv()? ? With ActiveSheet.PivotTables(数据透视表1).PivotCache? ?? ???.Connection = Array( _? ?? ???OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source= Sheets(path).Range(A1) ;Mode=Share Deny Write; _? ?? ???, _? ?? ???Extended Properties=HDR=YES;;Jet OLEDB:Sy
您可能关注的文档
- qq非主流个性签名:既然不能快乐就要活得骄傲.doc
- QQ非绿钻如何上传本地歌曲作为空间背景音乐.doc
- QQ餐厅35级菜名江浙西北东北等.doc
- QTP不能识别对象时的处理办法.docx
- QT中PRO文件写法的详细介绍.docx
- QuartusIIMagefunction说明.docx
- Q个性称昵网名大全.doc
- Rank不高如何获得StanfordPhdFellowship.docx
- RedHatLinux常用命令.doc
- Regex.IsMatch方法.docx
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
文档评论(0)