Access交流中心

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

两个按键实现数据备份和恢复!

李孝辉  发表于:2013-06-18 11:07:05  
复制

按键实现数据备份(备份到固定路径、并且已时间命名精确到分钟)

按键实现数据恢复(选择固定路径下的备份文件恢复)。

 

A实现ACCESS中某一张表的备份和恢复!

 

B实现ACCESS中所有表的备份和恢复!

 

有无高人指点!非藏感谢

 

Top
西出阳关无故人 发表于:2013-06-18 19:19:36

'引用--microsoft ado ext.x.x for ddl ado security
Private Sub Command0_Click() '备份
    Dim cat As ADOX.Catalog
    Set cat = New ADOX.Catalog
    Dim PT
    PT = CurrentProject.Path & "\" & Format(Now(), "YYYYMMDDHHNN") & ".accdb"
    cat.Create "provider=microsoft.jet.oledb.4.0;data source=" & PT & ";"

    Dim REC As ADODB.Recordset
    Set REC = New ADODB.Recordset
    Dim sql
    sql = "SELECT MSysObjects.Name FROM MSysObjects WHERE MSysObjects.Type=1"
    REC.Open sql, CurrentProject.Connection, adOpenStatic, adLockReadOnly
    DoCmd.SetWarnings False
    For i = 1 To REC.RecordCount
        If Left(REC.Fields(0), 4) = "MSys" Then
        Else
            CurrentProject.Connection.Execute "SELECT * INTO " & REC.Fields(0) & " IN '" & PT & "' FROM " & REC.Fields(0)
        End If
        REC.MoveNext
    Next i
    DoCmd.SetWarnings True
End Sub
Private Sub Command1_Click() '恢复
    Dim varItem As Variant
    '上传时通过文件选择对话框选择文件名
    With Application.FileDialog(3)    'msoFileDialogFilePicker
        '允许多选以实现批量上传
        .AllowMultiSelect = False
        .InitialFileName = ""
        .Filters.Clear
        .Filters.Add "所有文件", "*.*"
        If .Show Then
            '循环所有选择的文件名
            For Each varItem In .SelectedItems
                'Debug.Print varItem

                Dim REC As ADODB.Recordset
                Set REC = New ADODB.Recordset
                Dim sql
                sql = "SELECT MSysObjects.Name FROM MSysObjects WHERE MSysObjects.Type=1"
                REC.Open sql, CurrentProject.Connection, adOpenStatic, adLockReadOnly
                DoCmd.SetWarnings False
                For i = 1 To REC.RecordCount
                    If Left(REC.Fields(0), 4) = "MSys" Then
                    Else
                        CurrentProject.Connection.Execute "delete * from " & REC.Fields(0)
                        CurrentProject.Connection.Execute "insert INTO " & REC.Fields(0) & " SELECT * FROM " & REC.Fields(0) & " IN '" & varItem & "'"
                    End If
                    REC.MoveNext
                Next i
                DoCmd.SetWarnings True
            Next
        End If
    End With
End Sub



西出阳关无故人 发表于:2013-06-18 19:23:11

实现ACCESS中所有表的备份和恢复!



煮江品茶 发表于:2013-06-18 19:38:12
总记录:3篇  页次:1/1 9 1 :