以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  外部数据源转换问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96849)

--  作者:feixianzhi
--  发布时间:2017/3/1 8:00:00
--  外部数据源转换问题

各位老师,我有个项目是外部数据源,有两个数据库,分别是:2016年度.mdb和2017年度.mdb。两个数据库都有三个表,分别是合同表、入库表、批发表。
我做两个按钮,2016年度和2017年度。
想实现,点2016年度按钮,则连接2016年度数据库,项目内三个表(合同表、入库表、批发表)的数据则为2016年度。点2017年度按钮,则显示2017年度数据。
请各位老师帮忙。

--  作者:有点蓝
--  发布时间:2017/3/1 8:44:00
--  

参考:http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48596

 


--  作者:feixianzhi
--  发布时间:2017/3/1 13:30:00
--  

有点蓝老师,我看了一下,参考里的跟我要求的不一样。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170301131731.png
图片点击可在新窗口打开查看

我的项目里有两个数据库,里面都有这五个表,表的格式相同。

想实现,在这一个项目里,做两个按钮,点一个钮,所有的表加载一个数据库的数据,点另一个钮,则这个数据库的数据卸载,加载另一个数据库数据。麻烦有点蓝老师帮忙。


--  作者:有点蓝
--  发布时间:2017/3/1 14:34:00
--  

用法一样,看懂逻辑。

 

卸载旧表-》删除旧数据源-》添加新数据源-》加载新表


--  作者:feixianzhi
--  发布时间:2017/3/2 6:52:00
--  
有点蓝老师,我按照例子做了两个按钮,代码如下:
按钮1:
Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=多表统计.mdb;Persist Security Info=False"     \'记得换做真实路径,不一定在项目文件夹下
If Connections.Contains("ss") Then
    Connections.Delete("ss")
End If
    Connections.add("ss",s)
If DataTables.Contains("订单") = False Then 
    DataTables.Load("订单")
ElseIf DataTables.Contains("客户") = False Then 
    DataTables.Load("客户")
End If

按钮2:

Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=多表统计1.mdb;Persist Security Info=False"     \'记得换做真实路径,不一定在项目文件夹下
If Connections.Contains("ss") Then
    Connections.Delete("ss")
End If
    Connections.add("ss",s)
If DataTables.Contains("订单") = False Then 
    DataTables.Load("订单")
ElseIf DataTables.Contains("客户") = False Then 
    DataTables.Load("客户")
End If

两个按钮只是数据库不同,其他均相同,现有两个问题:
一、点一下按钮,只能加载“订单”表,再点一下,出现:“该数据仍在使用,不能被删除”的提示,而后加载了“客户”表。怎样改代码,能点一次按钮,就能加载全部表。
二、打开项目,点哪个按钮,则加载哪个数据库数据,再点另一个按钮,不加载另一个数据库数据。只能是重新打开项目后,才能加载另一个数据库数据。怎样改代码,能够不重新打开项目就能随意切换加载数据库数据。

请有点蓝老师帮忙。

--  作者:feixianzhi
--  发布时间:2017/3/2 8:33:00
--  
请有点蓝老师帮忙呀。
--  作者:有点蓝
--  发布时间:2017/3/2 9:07:00
--  

看4楼,先卸掉这个数据源所有的表,再去删除数据源

 

卸载旧表-》删除旧数据源-》添加新数据源-》加载新表


--  作者:有点色
--  发布时间:2017/3/2 9:54:00
--  
以下是引用feixianzhi在2017/3/2 8:33:00的发言:
请有点蓝老师帮忙呀。

 

看原来的例子,人家不是有一段unlaod表格的代码?加上就好了。


--  作者:feixianzhi
--  发布时间:2017/3/2 10:30:00
--  
有点蓝老师,问题解决了,麻烦您帮我看一下,下面的代码有没有什么问题?

Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=多表统计.mdb;Persist Security Info=False"     \'记得换做真实路径,不一定在项目文件夹下
If DataTables.Contains("订单") Then
    DataTables.Unload("订单|产品|客户")
End If
If Connections.Contains("ss") Then
    Connections.Delete("ss")
End If
    Connections.add("ss",s)
If DataTables.Contains("订单") = False Then 
    DataTables.Load("订单|产品|客户")
End If

--  作者:有点色
--  发布时间:2017/3/2 10:50:00
--  

Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=多表统计.mdb;Persist Security Info=False"  

 

改成

 

Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ProjectPath & "多表统计.mdb;Persist Security Info=False"