excel 轻松操作oracle数据库

excel 轻松操作oracle数据库

ID:6322017

大小:203.28 KB

页数:6页

时间:2018-01-10

excel 轻松操作oracle数据库_第1页
excel 轻松操作oracle数据库_第2页
excel 轻松操作oracle数据库_第3页
excel 轻松操作oracle数据库_第4页
excel 轻松操作oracle数据库_第5页
资源描述:

《excel 轻松操作oracle数据库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的人带来很大的福音,结合着Excel的数据处理与图表制作,就能很轻松地处理一些常规工作。日常工作中需要查询各种数据,而且不断变化,处理这些数据的人不是技术人员,不会连接数据库自己查询,通过下面的办法就可以让技术人员编辑好包含查询语句的excel文件,让管理人员自己输入条件取数了。我的方法是编辑需要的SQL语句保存在单元格中,并在查询条件需要参数值的地方用问号“?”代替,再在其他单元格中保存查询条件所需的参数值,在“宏”中用参数值替换掉SQL语句中的问号,最后执行查询语句并将结果保存到exc

2、el表中。以下是通过Excel的VBA连接Oracle并读取Oracle相关数据的步骤:  1、引用ADO相关组件:打开VBA编辑器,在菜单中点选“工具”--》“引用”。确保“MicrosoftActiviteXDataObjects2.8Library”和“MicrosoftActiviteXDataObjectSRecordset2.8Library”被勾选上。  2、建立读取数据的过程:PublicSubget_data()'根据工作表中的查询语句读取数据OnErrorGoToErrMsg:DimcnnAsObject,rstAsObjectDimname,s

3、tat,sqls,fieldAsStringDimpm(4)AsStringDimi,j,linenoAsIntegerDimOraOpenAsBooleanSetcnn=CreateObject("ADODB.Connection")Setrst=CreateObject("ADODB.Recordset")sqls="connectdatabase"cnn.Open"Provider=msdaora;DataSource=dl580;UserId=sxjk;Password=sxjk;"OraOpen=True'成功执行后,数据库即被打开IfOraOpenThe

4、nlineno=[D65536].End(xlUp).RowElselineno=0'行数Fori=3Tolinenoname=Cells(i,2)'保存数据工作表名称stat=Cells(i,3)'是否需要读取数据field=Cells(i,4)'清除原表数据定位pm(1)=Cells(i,6)'参数值pm(2)=Cells(i,8)pm(3)=Cells(i,10)pm(4)=Cells(i,12)sqls=Cells(i,15)Forj=1To4Ifpm(j)<>""Thensqls=Replace(sqls,"?",pm(j),1,1)'用参数值替换SQL语

5、句中的问号'MsgBoxsqlsEndIfNextjIfstat="Y"Orstat="y"ThenSetrst=cnn.Execute(sqls)sqls="CopyFromRecordset"maxrow=Sheets(name).[A65536].End(xlUp).Row+1Sheets(name).Range("a3:"&field&maxrow).ClearContents'清除原表数据Sheets(name).Range("a2").CopyFromRecordsetrst'执行SQL并提取数据Cells(i,3)="成功"EndIfNextiWork

6、sheets("系统参数").Selectmsg=MsgBox("数据读取完毕!",vbOKOnly,"iamlaosong")ExitSubErrMsg:OraOpen=FalseMsgBoxsqls,vbCritical,"操作失败,请检查!"EndSub  3、SQL语句实例这是一个简单的语句:SELECT*FROMzdgc_sn_sj_gfltWHEREt.CLCT_DATE=to_date('?','yyyy-mm-dd')ANDt.JSBZ='1'ORDERBYt.CITY,t.SSXS这是一个复杂的语句:selectaa.zj_code,aa.zj_m

7、c,aa.clct_date,aa.sjzl,aa.jyqsjzl,nvl(bb.wgfsl,0),nvl(bb.jyqwgfsl,0)from(selectb.ssxs,b.zj_code,b.zj_mc,a.clct_date,count(*)sjzl,sum(casewhento_char(a.clct_time,'hh24mi')<='?'then1else0end)jyqsjzlfromtb_evt_mail_clcta,sncn_zd_jgbwherea.clct_bureau_org_code=b.zj_codeanda.time_limit_co

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。