以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=49013)

--  作者:wsxdwh
--  发布时间:2014/4/10 16:44:00
--  [求助]代码

If e.name = "数据源1" Then
    e.ConnectionString = "
\\\\IT3YWRYM7VDGFS0\\data\\吴四小-运动会.MDB"
ElseIf e.name = "数据源2" Then
    e.ConnectionString = "
\\\\OKFIS7QVHUB8CWY\\data\\wsxydh.mdb"
End if



项目中有两个外部数据源(access),分别在两个服务器中(iP : 10.41.72.103  和 10.41.73.81),数据地址及名称为"\\\\IT3YWRYM7VDGFS0\\data\\吴四小-运动会.MDB"和"\\\\OKFIS7QVHUB8CWY\\data\\wsxydh.mdb"

设置以上代码在项目BeforeConnectOuterDataSource事件中,但执行时没有连接到数据,请指教 。先谢谢了!!!


--  作者:Bin
--  发布时间:2014/4/10 16:46:00
--  
你这代码就不对.


--  作者:wsxdwh
--  发布时间:2014/4/10 16:50:00
--  
我已经搞晕了,请专家帮忙修改一下,先谢谢!!!
--  作者:Bin
--  发布时间:2014/4/10 16:51:00
--  
看示例一

你要设置的是连接字符串,而不是设置一个文件地址就可以了.

--  作者:wsxdwh
--  发布时间:2014/4/10 16:54:00
--  
If e.Name = "wsxydh" Then
    
    e.C
    
Else   If e.Name = "wsxydh2" Then
    
    e.C
    
End If

--  作者:Bin
--  发布时间:2014/4/10 16:56:00
--  
 e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\OKFIS7QVHUB8CWY\\data\\wsxydh.mdb;Persist Security Info=False"
--  作者:wsxdwh
--  发布时间:2014/4/10 16:57:00
--  
If e.Name = "wsxydh" Then
    
    e.C
    
Else   If e.Name = "wsxydh2" Then
    
    e.C
    
End If


这样一不行!  哎。。。。

--  作者:狐狸爸爸
--  发布时间:2014/4/10 16:58:00
--  

帮助的是:
 
If e.name = "数据源1" Then
    e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "数据文件1.mdb;Persist Security Info=False"
ElseIf e.name = "数据源2" Then
    e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "数据文件2.mdb;Persist Security Info=False"
End if
 
你照搬就行了:
 
 
If e.name = "数据源1" Then
    e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\IT3YWRYM7VDGFS0\\data\\吴四小-运动会.MDB;Persist Security Info=False"
ElseIf e.name = "数据源2" Then
    e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\OKFIS7QVHUB8CWY\\data\\wsxydh.mdb;Persist Security Info=False"
End if

其实你的更简单,其实你可以在数据源设置窗口,设置好数据源,看看连接字符串是什么,复制过来就行。


--  作者:wsxdwh
--  发布时间:2014/4/10 18:20:00
--  
感觉问题出现在72段上的计算机连接不到73段的服务器,反之亦然。 所以首先要判断登录计算机在哪个号段,再连接对应的数据源。而另一个数据源则不连接。 不知这种思路对吗?代码如何编?
--  作者:狐狸爸爸
--  发布时间:2014/4/10 18:27:00
--  

二楼就有答案,看示例五:

http://www.foxtable.com/help/topics/0682.htm

 

稍微变通一下:

 

If e.name = "数据源名称" Then
    If Network.Ping("10.41.72.103",1000) = True  Then 
           e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\IT3YWRYM7VDGFS0\\data\\吴四小-运动会.MDB;Persist Security Info=False"
    Else

          e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\OKFIS7QVHUB8CWY\\data\\wsxydh.mdb;Persist Security Info=False"
    End If

end if