Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

表的导出和替换问题

随心飞去  发表于:2017-06-06 10:08:15  
复制

请教一个问题:
在窗体上建一个按钮,点击按钮后实现下面要求:
1、如果在同一个名称“AB”文件夹下面分别有A和B数据库,那么,怎才能用代码把B数据库中的表导出到A数据库中?
2、另外、如果在A数据库中有相同的表名,就替换掉相同的表。没有就保存在A数据库中。
3、要求,在导出代码中,不能用盘符(C:,D:,E:)等.

数据库中。数据库中。点击下载此附件

 

Top
随心飞去 发表于:2017-06-06 10:12:33

在B数据 库中建了一个窗体1,按钮代码如下,却不能实现。各位老师,怎样写才能达到目标?

Private Sub Command0_Click()
On Error Resume Next
DBEngine.OpenDatabase "\A.accdb", False, False, ";pwd=" & "123" & ""
Dim db As Database
Set db = OpenDatabase("\A.accdb", False, False, ";pwd=" & "123")


If MsgBox("您想备份数据吗?,!!!", vbOKCancel) = vbOK Then  '提示用户是否备份数据

DoCmd.TransferDatabase acImport, "Microsoft Access", "\A.accdb", acTable, "03焊材入库检查记录", "03焊材入库检查记录", False

End If

End Sub



MDZZ 发表于:2017-06-06 13:45:41
Public Function ImportDb(strPath As String) As Boolean
    On Error Resume Next
    Dim db As Object
    Dim td As TableDef
    Dim strTDef As String
   
   
    Set db = DBEngine.Workspaces(0).OpenDatabase(strPath, True)


    For Each td In db.TableDefs
        strTDef = td.Name
            DoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, _
                                   strTDef, strTDef, False
      
    Next
Set db = Nothing
  

End Function

strPath 代表当前的路径下a 数据库的路径     可以改成  CurrentProject.Path & "\a.mdb"

这个只实现全部导入   替换的 话 自己修改下吧



随心飞去 发表于:2017-06-07 07:55:09

经过再三验证,二楼的给出的只是一种语法,

 DoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, _
                                   strTDef, strTDef, False

这是导入的的语句,与导出的不同就在于下面的用语:

1、acExport 就导出用语,2、acImport是了导出用语。

在本例数据库中,能实现从把B数据库中的表导出到A数据库中,并能替换或者保存用法如下:


Private Sub Command0_Click()

DBEngine.OpenDatabase CurrentProject.Path & "\A.accdb", False, False, ";pwd=" & "123" & ""
Dim db As Database
Set db = OpenDatabase(CurrentProject.Path & "\A.accdb", False, False, ";pwd=" & "123")


If MsgBox("您想备份数据吗?,!!!", vbOKCancel) = vbOK Then  '提示用户是否备份数据

DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentProject.Path & "\A.accdb", acTable, "焊材入库检查记录", "焊材入库检查记录", False, False
DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentProject.Path & "\A.accdb", acTable, "产品", "产品", False, False
DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentProject.Path & "\A.accdb", acTable, "订单", "订单", False, False


End If

MsgBox "完成数据更新备份!"

End Sub


能实现这种功能,我们就可以把在进入或者退出数据库之前,先把数据给予备份到另一个数据库,以防不测,因为ACCESS数据库很容易损坏,有了它就不再怕数据库不可修复性的损坏了。



总记录:3篇  页次:1/1 9 1 :