以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 更改数据源 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=130796) |
-- 作者:hopestarxia -- 发布时间:2019/2/1 13:11:00 -- 更改数据源 老师我想在设计好的项目的窗口中,加一个“更改账套”的功能按钮,想通过该按钮实现可以更改数据源连接。这样就不用退出重进系统选择数据源了。请问按钮中代码如何编写才能实现? |
-- 作者:有点蓝 -- 发布时间:2019/2/1 13:44:00 -- 有点麻烦,参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=59825 |
-- 作者:hopestarxia -- 发布时间:2019/2/24 8:55:00 -- 老师,参考您发的参考文件,代码如下: Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "账套文件|*.db" \'设置筛选器 dlg.MultiSelect = False If dlg.ShowDialog = DialogResult.Ok Then \'\'遍历打开的窗口,将所有者表属于要变更的数据源的窗口关闭 \'For Each frm As WinForm.Form In Forms \'If frm.Opened Then \'If frm.TableName = "订单" Then \'frm.Open() \'End If \'End If \' \'Next Dim s As String ="" \'遍历当前属于此数据源的表 For Each dt As DataTable In DataTables If dt.C Then s += "|" & dt.name End If Next s = s.Trim("|") \'卸载表 DataTables.Unload(s) Dim s1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dlg.FileName & ";Persist Security Info=True;Jet OLEDB:Database Password=123" Connections.Delete("ss") Connections.add("ss",s1) DataTables.load(s) End If 但是选择账套后报错 请问如何修改
|
-- 作者:有点甜 -- 发布时间:2019/2/24 10:14:00 --
你msgbox(s)看一下弹出什么值
|
-- 作者:hopestarxia -- 发布时间:2019/2/24 21:41:00 -- 老师,没有出现什么提示,但是发现是这句语句造成的报错 DataTables.Unload(s) |
-- 作者:有点甜 -- 发布时间:2019/2/24 21:53:00 -- 加入红色代码,弹出什么?
msgbox(s) DataTables.Unload(s) |
-- 作者:hopestarxia -- 发布时间:2019/2/24 22:37:00 -- 老师弹出的是空白窗口框,没有内容。 |
-- 作者:有点甜 -- 发布时间:2019/2/24 23:13:00 -- 以下是引用hopestarxia在2019/2/24 22:37:00的发言:
老师弹出的是空白窗口框,没有内容。
那加入判断
If s > "" then DataTables.Unload(s) Else msgbox("不需要卸载表") End If |
-- 作者:hopestarxia -- 发布时间:2019/2/27 23:29:00 -- 老师,我想修改测试还是原来的代码,却出现了新的报错了,报错如图: Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "账套文件|*.db" \'设置筛选器 dlg.MultiSelect = False If dlg.ShowDialog = DialogResult.Ok Then \'\'遍历打开的窗口,将所有者表属于要变更的数据源的窗口关闭 \'For Each frm As WinForm.Form In Forms \'If frm.Opened Then \'If frm.TableName = "订单" Then \'frm.Open() \'End If \'End If \' \'Next Dim s As String ="" \'遍历当前属于此数据源的表 For Each dt As DataTable In DataTables If dt.C Then s += "|" & dt.name End If Next s = s.Trim("|") \'卸载表 DataTables.Unload(s) Dim s1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dlg.FileName & ";Persist Security Info=True;Jet OLEDB:Database Password=123" Connections.Delete("ss") Connections.add("ss",s1) DataTables.load(s) End If 其实我想达到的就是不用关闭软件,可以像有些软件一样直接点一个打开账套的按钮,就关闭了当前账套,然后出现选择新的账套后进入新账套。最近查了吧贴里也没有见有谁做过这种可以借签学习。
|
-- 作者:有点甜 -- 发布时间:2019/2/28 9:29:00 -- If dt.C Then
改成
If dt.connectionname = "xxx" Then
|