Foxtable(狐表)用户栏目专家坐堂 → [求助]关于数据表备份


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

主题:[求助]关于数据表备份

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


加好友 发短信
等级:婴狐 帖子:23 积分:219 威望:0 精华:0 注册:2014/4/27 17:37:00
[求助]关于数据表备份  发帖心情 Post By:2014/5/27 10:23:00 [只看该作者]

本人编了个经营软件,有七八个数据表,想编个备份和恢复按钮,实现所有数据表的备份和恢复(或者说是一键导入、一键导出),请问如何实现?
找到论坛里有下述代码:
Dim dlg As New SaveFileDialog   '指定一个新的SaveFileDialog
dlg.Filter= "备份文件|*.DBF "   '设置筛选器
dlg.title= "备份数据"
dlg.OverwritePrompt = True  '对于已经存在的文件名,是否出现覆盖警告
If dlg.ShowDialog = DialogResult.Ok Then   '如果用户单击了确定按钮
    If FileSys.FileExists(dlg.filename) Then    '如果指定的文件存在
        FileSys.DeleteFile(dlg.filename,2,2)     '则彻底删除之
    End If
    Dim ex As New Exporter
    ex.SourceTableName = "合作单位表"   '指定导出表
    ex.SourceTableName = "工程清单表"   '指定导出表
    ex.SourceTableName = "合同清单表"   '指定导出表
    ex.SourceTableName = "客户名单表"   '指定导出表
    ex.SourceTableName = "事务清单表"   '指定导出表
    ex.SourceTableName = "收款明细表"   '指定导出表
    ex.SourceTableName = "收款清单表"   '指定导出表
    ex.Format = "excel"   '指定导出文件格式
    'ex. PassWord = "TZX_GWY_JT_8888"  '用此属性指定目标文件的密码
    ex.filepath =  dlg.filename    '指定目标文件
    ex.NewTableName = "合作单位表"        '指定导出后的表的名称
    ex.NewTableName = "工程清单表"        '指定导出后的表的名称
    ex.NewTableName = "合同清单表"        '指定导出后的表的名称
    ex.NewTableName = "客户名单表"        '指定导出后的表的名称
    ex.NewTableName = "事务清单表"        '指定导出后的表的名称
    ex.NewTableName = "收款明细表"        '指定导出后的表的名称
    ex.NewTableName = "收款清单表"        '指定导出后的表的名称
    ex.Export()    '开始导出数据
    MessageBox.Show("备份数据生成完成!!!", "提示", MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
运行后提示“不能更新。数据库或对象为只读。”,请问如何解决?另不知上述代码能够实现我想要的功能?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/27 10:33:00 [只看该作者]

Dim dlg As New SaveFileDialog   '指定一个新的SaveFileDialog
dlg.Filter= "备份文件|*.DBF "   '设置筛选器
dlg.title= "备份数据"
dlg.OverwritePrompt = True  '对于已经存在的文件名,是否出现覆盖警告
If dlg.ShowDialog = DialogResult.Ok Then   '如果用户单击了确定按钮
    If FileSys.FileExists(dlg.filename) Then    '如果指定的文件存在
        FileSys.DeleteFile(dlg.filename,2,2)     '则彻底删除之
    End If
    for each dt as datatable in datatables
         Dim ex As New Exporter
         ex.SourceTableName=dt.name
          ex.filepath =  dlg.filename & "\备份数据源.MDB"
          ex.Export()  
    next
End If

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


加好友 发短信
等级:婴狐 帖子:23 积分:219 威望:0 精华:0 注册:2014/4/27 17:37:00
  发帖心情 Post By:2014/5/27 11:15:00 [只看该作者]

改成下述代码,可以生成一个数据表EXCEL文件,但是EXCEL文件打开的时候说是图片点击可在新窗口打开查看“您尝试打开的文件“备份资料.xls”的格式与文件扩展名指定的格式不一致”,强行打开后就显示乱码。求指教。
Dim dlg As New SaveFileDialog   '指定一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls"   '设置筛选器
dlg.title= "备份数据"
dlg.OverwritePrompt = True  '对于已经存在的文件名,是否出现覆盖警告
If dlg.ShowDialog = DialogResult.Ok Then   '如果用户单击了确定按钮
    If FileSys.FileExists(dlg.filename) Then    '如果指定的文件存在
        FileSys.DeleteFile(dlg.filename,2,2)     '则彻底删除之
    End If
    For Each dt As DataTable In DataTables
        Dim ex As New Exporter
        ex.SourceTableName=dt.name
        ex.filepath =  dlg.filename
        ex.Export()
    Next
End If

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/27 11:16:00 [只看该作者]

看2楼. 这种方式是生成MDB  ACCESS文件.

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


加好友 发短信
等级:婴狐 帖子:23 积分:219 威望:0 精华:0 注册:2014/4/27 17:37:00
  发帖心情 Post By:2014/5/27 11:29:00 [只看该作者]

完全采用2楼代码,会出现如下错误提示。
'C:\Users\lenovo\Desktop\备份资料.DBF \备份数据源.MDB'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
请问如何解决? 弱弱问下,既然是生成MDB文件,开始设置的DBF是何意? 跪谢!

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/27 11:33:00 [只看该作者]

我搞错了

Dim dlg As New SaveFileDialog   '指定一个新的SaveFileDialog
dlg.Filter= "备份文件|*.MDB"   '设置筛选器
dlg.title= "备份数据"
dlg.OverwritePrompt = True  '对于已经存在的文件名,是否出现覆盖警告
If dlg.ShowDialog = DialogResult.Ok Then   '如果用户单击了确定按钮
    If FileSys.FileExists(dlg.filename) Then    '如果指定的文件存在
        FileSys.DeleteFile(dlg.filename,2,2)     '则彻底删除之
    End If
    for each dt as datatable in datatables
         Dim ex As New Exporter
         ex.SourceTableName=dt.name
          ex.filepath =  dlg.filename 
          ex.Export()  
    next
End If

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


加好友 发短信
等级:婴狐 帖子:23 积分:219 威望:0 精华:0 注册:2014/4/27 17:37:00
  发帖心情 Post By:2014/5/27 11:48:00 [只看该作者]

万分感谢!已实现备份功能,后面再倒腾倒腾数据恢复功能。

 回到顶部