当前位置: 传客网 > SQL查询自适应路径和文件名更改

SQL查询自适应路径和文件名更改

2017-01-06 作者:雪山飞狐

SQL查询自适应路径和文件名更改



Sub SQL适应路径和文件名更改()

Dim strCon As String, iPath As String

Dim i As Integer, j As Integer, iFlag As String, iStr As String

Dim iT As Integer, jT As Integer

Dim sht As Worksheet, Arr, Brr

'定义变量

iPath = ThisWorkbook.FullName '获取本工作簿的完全路径

On Error Resume Next

For Each sht In ThisWorkbook.Worksheets


'SQL查询表的处理

i = sht.QueryTables.Count

If i > 0 Then

For j = 1 To i

strCon = sht.QueryTables(j).Connection

'遍历工作表中数据透视表中缓存连接信息赋值给变量strCon

Select Case Left(strCon, 5) 'select case语句,条件为strCon变量中从左侧取5个字符

Case "ODBC;" '判断缓存连接信息中的数据连接方式,如果是ODBC方式

iFlag = "DBQ=" '将"DBQ=" 赋值给变量iFlag

Case "OLEDB" '判断缓存连接信息中的数据连接方式,如果是OLEDB方式

iFlag = "Source=" '将"DBQ=" 赋值给变量iFlag

Case Else '没有引入外部数据或其他方式,不予处理

Exit Sub

End Select

iStr = Split(Split(strCon, iFlag)(1), ";")(0) '在变量strCon中截取文件路径信息

With sht.QueryTables(j) '替换SQL查询表中缓存信息中的文件完全路径

.Connection = VBA.Replace(strCon, iStr, iPath)

.CommandText = VBA.Replace(.CommandText, iStr, iPath)

End With

Next j

End If


'数据透视表的处理

iT = sht.PivotTables.Count

If iT > 0 Then

For jT = 1 To iT

strCon = sht.PivotTables(jT).PivotCache.Connection

'遍历工作表中数据透视表中缓存连接信息赋值给变量strCon

Select Case Left(strCon, 5) 'select case语句,条件为strCon变量中从左侧取5个字符

Case "ODBC;" '判断缓存连接信息中的数据连接方式,如果是ODBC方式

iFlag = "DBQ=" '将"DBQ=" 赋值给变量iFlag

Case "OLEDB" '判断缓存连接信息中的数据连接方式,如果是OLEDB方式

iFlag = "Source=" '将"DBQ=" 赋值给变量iFlag

Case Else '没有引入外部数据或其他方式,不予处理

Exit Sub

End Select

iStr = Split(Split(strCon, iFlag)(1), ";")(0) '在变量strCon中截取文件路径信息

With sht.PivotTables(jT).PivotCache '替换据透视表缓存信息中的文件完全路径

.Connection = VBA.Replace(strCon, iStr, iPath)

.CommandText = VBA.Replace(.CommandText, iStr, iPath)

End With

Next

End If

Next


'SQL查询表的处理2

For Each Conn In ThisWorkbook.Connections

With Conn.OLEDBConnection

.SourceDataFile = ThisWorkbook.FullName

Arr = .Connection

Brr = VBA.Split(Arr, ";")

For i = 1 To UBound(Brr)

If VBA.InStr(Brr(i), "Provider=SQLOLEDB.1") Then Exit For 'SQL服务器类型不进行更改,直接退出循环

If VBA.InStr(Brr(i), "Data Source") Then

Brr(i) = "Data Source=" & ThisWorkbook.FullName

Exit For

End If

Next

Arr = VBA.Join(Brr, ";")

.Connection = Arr

End With

Next

End Sub


测试附件到完美论坛下载

http://www.excelwm.net/forum.php?mod=viewthread&tid=418&extra=page=1

新浪博客:http://weibo.com/u/1139851561

百度空间:http://hi.baidu.com/335081548

完美论坛:http://w339194.s104.myverydz.com/forum.php

往期精彩在:

腾讯(QQ)微博:http://t.qq.com/huangshifang?preview

更多分享请关注微信号

微信号:Excel335081548 或:

雪山飞狐Excel





相关推荐

  • 安全ccie视频已经更新到29集,大家去下载吧,此次文件名更改了,更好识别。

    已经上传到泰克论坛、优酷和土豆网,特别说明,论坛上是高清无压缩的格式,效果最好,大家尽快去下载吧。---------------------------------------------------------------------泰克

  • c#根据绝对路径获取 带后缀文件名、后缀名、文件名

    1、c#根据绝对路径获取带后缀文件名、后缀名、文件名。stringstr="F:\test\Default.aspx";stringfilename=System.IO.Path.GetFileName(str);//文件名“Default

  • 生成路径及其目录下文件名的perl脚本

    读取一个目录下面的文件名,并将路径及其文件名输出到src.f文件中。`rm-rfsrc.f`;$dirname="/proj/mcu/usr/trunk/common";opendir(DIR,$dirname)||die"Error,tr

  • qt中获取文件路径和文件名

    在界面上添加一个textedit和一个pushbutton目的:点击button就可以在文本框中显示文件的路径和文件名称voidMainWindow::on_pushButton_2_clicked(){QStringfile_full,f

  • shell删除和复制文件(带文件名更新)

    因为复制的文件复制之后要在文件名后面加上日期,所以在运行shell的时候输入了两个参数。删除的文件和复制的文件都是.war结尾的,第一个参数是去除文件格式(也就是“.war”)的文件名,第二个参数是要添加的日期运行shell的指令是:“./

  • 护卫神文件名还原工具1.0绿色版(文件名还原软件)下载,高速下载

    护卫神文件名还原工具1.0绿色版(文件名还原软件)软件标签:护卫神文件名还原工具软件授权:绿色版更新时间:2012-04-0607:37:35软件类型:国产软件软件大小:448KB软件语言:简体中文 应用平台:Win2000/WinXP/W

  • Java的类名与文件名必须一致

    1.Java保存的文件名必须与类名一致;2.如果文件中只有一个类,文件名必须与类名一致;3.一个Java文件中只能有一个public类;4.如果文件中不止一个类,文件名必须与public类名一致;5.如果文件中不止一个类,而且没有publi

  • 【ueditor】上传文件中文文件名失败和在线附件看不到的解决办法

    后记:中文文件名的文件看不到,但英文文件名的文件可以看到,问题的原因一般都是编码格式不正确。因为windows操作系统编码是GBK2312,网站可能采用utf-8格式。原因分析清楚了,接着就是寻找在哪添加格式转换代码。一、目标利用uedit

  • ::::: 什么是文件名后缀 :::::

    :::::什么是文件名后缀:::::    说起来Windows工作界面下的文件名简直是随心所欲,比如:某编辑部的2000年工作计划。文件名即可用中文直接表达,而且长度最长可达256个字符,让人看起来真是一目了然。然而在Windows环境中

  • Shell脚本遍历指定的文件名清单

    Shell脚本遍历指定的文件名清单某目录下有以下文件名有规律的文件(如下),现想用shell写一个脚本,实现以下功能:假设用户输入3.log,则列出3.log,4.log,5.log...这些文件名及它们各自的属性1.log2.log3.l

  • PHP文件扩展名获取(文件名和文件地址)

    PHP中获取文件扩展名的N种方法从网上收罗的,基本上就以下这几种方式:​第1种方法:functionget_extension($file){substr(strrchr($file,'.'),1);}​第2种方法:

  • Linux下查看文件编码,文件编码格式转换和文件名编码转换(转载)

    Linux下查看文件编码,文件编码格式转换和文件名编码转换如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下

  • php中下载文件的代码(解决了IE下中文文件名乱码问题

    中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。复制代码代码如下:[php]$file_name=urlencode($_REQUEST['fi

  • 网页文件名与网页标题

    网页文件名指网页的文件名称,网页标题指网页HTML标签中的TITLE标签。如:本页的网页的文件名为:q339077330.htm本页的网页标题为:网页标题与网页文件名有什么不同?-搜搜问问在打开网页在浏览器的顶部可以看到网页标题。或在本页面

  • Busybox 挂载U盘显示文件名不完全及中文乱码

    以下的U盘文件格式为fat1.Busybox挂载U盘U盘里的文件名显示不全在mount的时候没有加-tvfat时,而是mount自己默认的一种文件系统(是MSDOS,因为在kernel配置中选择了支持这种文件系统),所以mount后的结果就

  • Windows下自动用ftp从AIX服务器下载指定文件并保持文件名

    文件标题很长,容我慢慢道来。在工作中有这么一个需求:AIX服务器作为数据库备份机,/databak/expdp_dest目录下有最近一段时间的dmp文件。每个dmp文件使用时间命名,比如:expdp201412212300.dmpexpdp

  • HTML5中拖拽式上传文件名中文乱码问题解决方案

    在html5中提供了拖拽式的文件上传功能,但是上传文件依旧会有中文文件名乱码的问题,花了一整天时间,顶住压力!研究出两种解决方案。1、如图最简便的方式走捷径(传参方式)在open里,第二个用于调用后端servlet的地址参数中,直接通过写入

  • [转]新建一个文件名可以防止别人动你的程序

    办公室或家里有电脑的朋友,想禁止别人玩游戏或用软件,又不想伤害同事和朋友的感情,真实是一件头疼的事,其实,要想不让别人使用某个软件,只要在其安装目录下新建一个文件名为ws2_32.dll的文件,这样系统就会以文件出错误而禁止运行。以QQ为例

  • 曝叹阜卓汕mako文件管理器cPanel工具中 两个文件管理器文件名HTML注入漏洞

      cPanel工具中两个文件管理器文件名HTML注入漏洞  来源:绿盟科技  受影响系统:  cPanelcPanel11.24.4-CURRENT  描述:  cPanel是基于web的工具,用于自动化控制网站和服务器。  Cpanel

  • 教你显示VI中的标签的文件名方法

    在xshell的VI编辑器中,如果显示标签的文件名,那么在编辑过程中便会一目了然非常方便,那么要如何显示标签的文件名呢?本集xshell教程就为大家讲解具体操作方法。  VI编辑器中有一个功能,允许用户自定义终端名称。你可以使用xshell

返回
顶部