以文本方式查看主题

-  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

但是选择账套后报错

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

请问如何修改


--  作者:有点甜
--  发布时间: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


此主题相关图片如下:123.png
按此在新窗口浏览图片

其实我想达到的就是不用关闭软件,可以像有些软件一样直接点一个打开账套的按钮,就关闭了当前账套,然后出现选择新的账套后进入新账套。最近查了吧贴里也没有见有谁做过这种可以借签学习。


--  作者:有点甜
--  发布时间:2019/2/28 9:29:00
--  

If dt.C  Then

 

改成

 

If dt.connectionname = "xxx"  Then