ADO内外网连接SQLSERVER得到数据集方法
时 间:2009-12-04 14:31:16
作 者:小继 ID:8060 城市:江阴
摘 要:通过内网不通则试外网地址,如全不通则退出,先内后外,保证最快连接。
正 文:
首先有个SQLSERVER服务器,其次内网外网都能联通,外网指不在公司通过公司外的网络可以联通此服务器。
Public SqlConn As New ADODB.Connection
一、分别创建通过内网地址和外网地址连接的方法
Function openDbnat() As Boolean '通过内网地址连通
On Error GoTo SQLConnErr
'Dim natConn As New ADODB.Connection
Dim strConnectnat As String
strConnectnat = "Provider=Microsoft.Access.OLEDB.10.0;" & _
"Data Provider=SQLOLEDB.1;" & _
"Data Source=内网服务器地址;" & _
"Initial Catalog=数据库名;" & _
"User Id=数据库用户名;" & _
"Password=数据库密码;"
If SqlConn.State <> 0 Then SqlConn.Close
SqlConn.ConnectionTimeout = 15
SqlConn.Open strConnectnat
openDbnat = True
Debug.Print openDbnat
Exit Function
' 建立选择语句.
SQLConnErr:
openDbnat = False
If SqlConn.State <> 0 Then SqlConn.Close: Set SqlConn = Nothing
Debug.Print openDbnat
End Function
Function openDbwww() As Boolean ’'通过外网地址连通
On Error GoTo SQLConnErr
'Dim natConn As New ADODB.Connection
Dim strConnect As String
' 使用Microsoft Data Shaping Service for OLE DB provider连接到sql server.
strConnect = "Provider=Microsoft.Access.OLEDB.10.0;" & _
"Data Provider=SQLOLEDB.1;" & _
"Data Source=外网服务器地址;" & _
"Initial Catalog=数据库名;" & _
"User Id=数据库用户名;" & _
"Password=数据库密码;"
If SqlConn.State <> 0 Then SqlConn.Close
SqlConn.ConnectionTimeout = 15
SqlConn.Open strConnect
openDbwww = True
Debug.Print openDbwww
Exit Function
'SQLConnErr:
openDbwww = False
If SqlConn.State <> 0 Then SqlConn.Close: Set SqlConn = Nothing
Debug.Print openDbwww
End Function
Function PublicdbClose() '关闭连接
If SqlConn.State <> 0 Then SqlConn.Close: Set SqlConn = Nothing
End Function
二、连接主方法
Function rstsets(strsql As String) As ADODB.Recordset ‘联接主方法
'Dim strSQL As String
Dim rst As ADODB.Recordset
' 初始化ADO记录集.
If Not openDbnat Then ’判内部连接成不成功
Debug.Print "内部连接不成功"
If openDbwww Then ‘如内部连接不成功则判外部连接成不成功,如果成功则连接后取纪录集
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = SqlConn.SqlConn
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open strsql
End With
' Debug.Print rst.RecordCount
Set rstsets = rst
Else
Debug.Print "连接全没效,退出" '如都不成功则退出
Call PublicdbClose
Exit Function
End If
Else
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = SqlConn
'SqlConn.ConnectionString
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open strsql
End With
' Debug.Print rst.RecordCount
Set rstsets = rst
End If
End Function
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)
- 统计当月之前(不含当月)的记录数怎...(03.11)