ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6440|回复: 13

[求助] 一个困惑了很久的问题,VBA通过外网连接SQLSERVER数据库能不能带端口?求助版主高手

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-9 14:56 | 显示全部楼层 |阅读模式
本帖最后由 hai167 于 2014-9-9 16:20 编辑

一个困惑了很久的问题,VBA代码通过外网连接SQLSERVER数据库能不能带端口?

举个例子,公司的公网的IP122.225.240.228,公司里有3台服务器,1台服务器叫A,内网的IP192.168.1.10,端口80,数据库叫DB11台服务器叫B,内网的IP192.168.1.80,端口1433,数据库叫DB21台服务器叫C,内网的IP192.168.1.33,端口是7777,数据库叫DB3.


用内网IP连这3个服务器都没有问题
strcon = "Driver={SQL Server};Server=192.168.1.10;UID=sa;PWD=xxxxxx;DataBase=DB1"
strcon = "Driver={SQL Server};Server=192.168.1.80;UID=sa;PWD=xxxxxx;DataBase=DB2"
strcon = "Driver={SQL Server};Server=192.168.1.33;UID=sa;PWD=xxxxxx;DataBase=DB3"


现在问题是要从外网连DB1,下面这样写用外网IP不行
strcon = "Driver={SQL Server};Server=122.225.240.228;UID=sa;PWD=xxxxxx;DataBase=DB1"


这样写呢就可以连接到DB2,可能是默认端口指向B服务器
strcon = "Driver={SQL Server};Server=122.225.240.228;UID=sa;PWD=xxxxxx;DataBase=DB2"


最终目的是要用外网IP连到DB1,试过下面各种写法都不行,不知道VBA代码能不能加端口??
strcon = "Driver={SQL Server};Server=122.225.240.228 80;UID=sa;PWD=xxxxxx;DataBase=DB1"
strcon = "Driver={SQL Server};Server=122.225.240.228,80;UID=sa;PWD=xxxxxx;DataBase=DB1"

TA的精华主题

TA的得分主题

发表于 2014-9-9 21:59 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-10 09:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liucqa 发表于 2014-9-9 21:59
http://www.chinaz.com/program/2008/1229/57892.shtml

先telnet看看

你好,telnet这些端口都没有问题的。一闪而过。~^~

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-10 12:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liucqa 发表于 2014-9-9 21:59
http://www.chinaz.com/program/2008/1229/57892.shtml

先telnet看看

你好,你给的那个链接的里面代码应该不是VBA格式。

TA的精华主题

TA的得分主题

发表于 2014-9-10 14:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
每次我们打开网页上网,网站服务器端口都是80.
所有对外连接肯定会用到具体的端口。默认80. 比如一般HTTPS连接,端口443

类似这样试试
192.168.1.80:1433
192.168.1.33:7777

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-11 10:02 | 显示全部楼层
kangatang 发表于 2014-9-10 14:36
每次我们打开网页上网,网站服务器端口都是80.
所有对外连接肯定会用到具体的端口。默认80. 比如一般HTTPS ...

不行的,可能VBA不支持指定端口,百度遍了,没看到关于VBA这种写法,看来没戏了。
谢谢了。

点评

sql的连接串在各个语言里面都是一样的,所以你应该看看是不是别的方面的问题  发表于 2014-9-11 15:04

TA的精华主题

TA的得分主题

发表于 2014-9-11 10:24 | 显示全部楼层
看上去楼主是想通过端口来控制内网的网关转发,感觉应该能解决。

1、有工具可以实现申请一个网址使得外网直接连接到内网的某机器上
2、为每个数据库服务器申请不同的网址或是在外网的调用端直接更改Host文件指定,内网网关设置将网址分别分发到对应的数据库服务器上
3、另外,能否设置端口的问题是你用的数据引擎的事,跟VBA没关系,你可能查错了方向。即便能设置端口,你还需要在内网网关设置端口映射

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-11 17:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lee1892 发表于 2014-9-11 10:24
看上去楼主是想通过端口来控制内网的网关转发,感觉应该能解决。

1、有工具可以实现申请一个网址使得外网 ...

谢谢高手的指导。
路由器的端口转发已经设置了的。我通过外网网址加端口是可以访问我们的一个网页系统,如122.225.240.228:80,这样就直接进入这台服务器的一个网页系统,所以端口转发应该是没问题的了啊。

不知道还要从哪里找出问题。

TA的精华主题

TA的得分主题

发表于 2014-9-11 17:13 | 显示全部楼层
hai167 发表于 2014-9-11 17:03
谢谢高手的指导。
路由器的端口转发已经设置了的。我通过外网网址加端口是可以访问我们的一个网页系统, ...

server=IP,Port
这个是可以指定端口的呀,估计你没搞明白端口映射。

网关打开需要的端口,比如1456对DB1,1457对DB2,1458对DB3,然后设置端口映射到对应的服务器。

至于服务器上的SQL Server端口则都可以用默认的,没必要更改。

端口映射的概念,是指内网只有一个IP,通过网关来转发。通过设置不同的端口来指定对应的内网的机器。

TA的精华主题

TA的得分主题

发表于 2014-9-12 06:18 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-19 06:26 , Processed in 0.045341 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表