以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  保证这个项目复制到任何目录都能正常链接该外部数据源问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8024)

--  作者:cxabc123
--  发布时间:2010/8/30 16:27:00
--  保证这个项目复制到任何目录都能正常链接该外部数据源问题

If e.name = "系统数据" Then
    e.C & e.ProjectPath & "系统数据.mdb;Persist Security Info=False"
    e.C & e.ProjectPath & "常用数据.mdb;Persist Security Info=False"
    e.C & e.ProjectPath & "临时数据.mdb;Persist Security Info=False"

 e.C系统数据.mdb;Persist Security Info=False"

End If
这段代码有什么问题吗,为什么不能达到我要的结果,保证这个项目复制到任何目录都能正常链接该外部数据源问题,请老大看看

[此贴子已经被作者于2010-8-30 16:31:20编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/8/30 16:31:00
--  

不需要我看,帮助有详细讲述,CaseStudy下也有示例“动态加载数据(外部数据源).Table”。

如果不行,通常是名称错误,自己在代码中用MessageBox检查,这种问题很好调试。

实在搞不定,就做个简单的例子传上来,设置好代码,我看看你的问题在哪。

[此贴子已经被作者于2010-8-30 16:32:33编辑过]

--  作者:cxabc123
--  发布时间:2010/8/30 16:32:00
--  

总是吃代码


--  作者:cxabc123
--  发布时间:2010/8/30 16:37:00
--  
我就是按照帮助中的说明设置的,提示就是找不到数据表,按CaseStudy下也有示例“动态加载数据(外部数据源).Table”代码做了,还是一样,请老大试试
--  作者:cxabc123
--  发布时间:2010/8/30 16:38:00
--  
我想我不会弄错的,仅仅是改几个字
--  作者:狐狸爸爸
--  发布时间:2010/8/30 16:47:00
--  

肯定错了,不信的话,你做个例子传上来。


--  作者:cxabc123
--  发布时间:2010/8/31 8:27:00
--  

If e.Name = "系统数据"  Andalso e.Name = "常用数据" Andalso e.Name = "临时数据" Then
代码   

End If

我这样设置了,正常了。

但是我不明白为什么这样设置不正确:

If e.Name = "系统数据"  Then

代码
    End If

[此贴子已经被作者于2010-8-31 8:27:53编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/8/31 8:35:00
--  

第一段代码不可能通过,e.name不可能同时等于这三个值,如此设置,根本就达不到动态数据源的目的,你能通过,是因为通过菜单设置的数据源继续有效。

第一段能通过,第二段不能通过,是因为第二段代码起了作用,说明你设置连接字符串的代码有问题。

搞不定就做例子,不要瞎折腾。

[此贴子已经被作者于2010-8-31 8:37:18编辑过]

--  作者:cxabc123
--  发布时间:2010/8/31 8:41:00
--  

老大,我现在的问题是有三个数据源,现在不知道把他们同时加载。没有别的问题

If e.Name = "系统数据"  Andalso e.Name = "常用数据" Andalso e.Name = "临时数据" Then
代码   

End If

 

使用这段代码,我把发布的项目拷贝到别的目录可以起作用。中间的一段代码是(由于不换行代码就会丢失,所以在这儿作了换行处理

 e.ConnectionString =

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "系统数据.mdb;Persist Security Info=False"
    e.ConnectionString =

 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "常用数据.mdb;Persist Security Info=False"
    e.ConnectionString =

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "临时数据.mdb;Persist Security Info=False"
End If

[此贴子已经被作者于2010-8-31 8:44:58编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/8/31 8:49:00
--  

If怎么用都不知道了吗:

 

If e.Name = "系统数据"  Then

     e.ConnectionString =

     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "系统数据.mdb;Persist Security Info=False"

ElseIf e.Name = "常用数据" Then

      e.ConnectionString =

      "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "常用数据.mdb;Persist Security Info=False"

Elseif e.Name = "临时数据" Then
     e.ConnectionString =

     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "常用数据.mdb;Persist Security Info=False"

End If

 

还可以用Select Case,这属于编程最基础的部分,必须掌握,最好回头看看帮助的编程基础部分。