Foxtable(狐表)用户栏目专家坐堂 → [求助] 发布项目后,如何保存多个文件?


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

主题:[求助] 发布项目后,如何保存多个文件?

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2022/7/5 14:25:00 [显示全部帖子]

需要用到动态链接   

基本思路是你有一个母表,生成不同表时实际是复制这个母表,打开不同表时是动态链接。如果改变数据库结构,会非常麻烦,要有版本判断,自动更改表结构的一系列神操作。。。仅共参考   


Dim lx  As WinForm.ComboBox = e.Form.Controls("ComboBox1")    '数据库类型
Dim k   As WinForm.ComboBox = e.Form.Controls("ComboBox2")    '数据库
RibbonTabs("ljsj").Groups("功能组_logo").Items("文本框_数据年度").text = e.Form.Controls("ComboBox2").value
Dim value1,name1 As String
If lx.Value = "Access 2000/2003" Then
    If k.value = "默认" Then
        name1 =  "data.mdb"
    Else
        name1 =  "data" & val(k.value) &  ".mdb"
    End If
    
    If FileSys.FileExists(ProjectPath  &  name1) Then
        
        For Each frm As WinForm.Form In forms            '关闭主窗口以外的所有窗口,确保没有其他窗口打开
            If frm.Name <> "主窗口" And frm.Opened Then
                frm.close()
            End If
        Next     
  
       value1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ProjectPath  &  name1  &  ";Persist Security Info=False"
        SaveConfigValue("数据源",value1)
        SaveConfigValue("数据源文件名",name1)
        
        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)
        If Connections.Contains("data") Then
            Connections.Delete("data")
        End If
        
        Connections.add("data",value1)
        DataTables.load(s)
        
        e.Form.Close()
        
        'Forms("数据分析").open()
        'MainTable = Tables("院校信息")
        ''Syscmd.Project.Open(FileName)
        '  Application.Restart()            '系统重新启动
        
    Else
        MessageBox.Show("没有该年度数据,请与开发者联系!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
Else If  lx.Value = "Access 2007/2010" Then
    'name1 = ProjectPath  & "data" & val(k.value) &  ".accdb"
    'If FileSys.FileExists(name1) Then
    'value1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ProjectPath & "data" & val(k.value)  & ".accdb;Persist Security Info=True"
    'SaveConfigValue("数据源",value1)
    ''Syscmd.Project.Open(FileName)
    'Application.Restart()            '系统重新启动
    'Else
    'MessageBox.Show("没有该年度数据,请与开发者联系!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    'End If
End If
Forms("主窗口").open()
MainTable = Tables("sys")

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2022/7/5 15:42:00 [显示全部帖子]


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


新建项目  相当于  复制 mx.mdb =>  mx******.mdb

打开项目  =  动态链接   mx******.mdb
[此贴子已经被作者于2022/7/5 15:44:24编辑过]

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2022/7/5 16:26:00 [显示全部帖子]

打开项目时默认xm.mdb打开后动态链接到想链接的项目上,不用改名。
可以按需求打开其中一个,其他不受影响。

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

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


Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog 
dlg.Filter = "Access文件|*.mdb" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileName, "提示") '提示用户选择的文件
    '======================================================
    '关闭所有窗口,卸载所有表   动态设置数据原,重新加载数据表
    '======================================================
End If







[此贴子已经被作者于2022/7/5 16:33:26编辑过]

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


加好友 发短信
等级:三尾狐 帖子:657 积分:6110 威望:0 精华:0 注册:2013/10/22 12:15:00
  发帖心情 Post By:2022/7/5 17:07:00 [显示全部帖子]

动态链接到那个文件,就保存到那个文件。

 回到顶部