Foxtable(狐表)用户栏目专家坐堂 → 更改数据源


  共有5711人关注过本帖树形打印复制链接

主题:更改数据源

帅哥哟,离线,有人找我吗?
hopestarxia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
更改数据源  发帖心情 Post By:2019/2/1 13:11:00 [只看该作者]

老师我想在设计好的项目的窗口中,加一个“更改账套”的功能按钮,想通过该按钮实现可以更改数据源连接。这样就不用退出重进系统选择数据源了。请问按钮中代码如何编写才能实现?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/1 13:44:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By: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
图片点击可在新窗口打开查看

请问如何修改


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/24 10:14:00 [只看该作者]

 

你msgbox(s)看一下弹出什么值

 


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/2/24 21:41:00 [只看该作者]

老师,没有出现什么提示,但是发现是这句语句造成的报错 DataTables.Unload(s)  


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/24 21:53:00 [只看该作者]

加入红色代码,弹出什么?

 

msgbox(s)

DataTables.Unload(s)  


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By:2019/2/24 22:37:00 [只看该作者]

老师弹出的是空白窗口框,没有内容。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/24 23:13:00 [只看该作者]

以下是引用hopestarxia在2019/2/24 22:37:00的发言:
老师弹出的是空白窗口框,没有内容。

 

那加入判断

 

If s > "" then

    DataTables.Unload(s)  

Else

    msgbox("不需要卸载表")

End If


 回到顶部
帅哥哟,离线,有人找我吗?
hopestarxia
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:927 积分:6676 威望:0 精华:0 注册:2013/8/10 18:33:00
  发帖心情 Post By: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
按此在新窗口浏览图片

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/28 9:29:00 [只看该作者]

If dt.C  Then

 

改成

 

If dt.connectionname = "xxx"  Then

 

 


 回到顶部
总数 32 1 2 3 4 下一页