成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

access下如何恢復已經刪除的記錄;如何恢復已經刪除的表、窗體等等對象

瀏覽:283日期:2023-03-18 16:41:52
問題:

    如何恢復已經刪除的記錄;如何恢復已經刪除的表、窗體等等對象
1、我用 DELETE FROM TABLE 刪除了一些記錄,現在發現誤刪除了,該如何恢復?
2、我直接手動刪除或者用 DROP TABLE 刪除了一個表,現在發現是誤刪除了,該如何恢復?
3、我手動刪除了一個窗體,該如何恢復?
4、我刪除了記錄,可是數據庫體積并沒有減小,那么是否能找回記錄呢?

 


回答:

    1、已經刪除的記錄是無法恢復的,ACCESS 不是 FOXPRO,MDB 格式不是 DBF 格式,沒有邏輯刪除和物理刪除的概念,一旦刪除就無法恢復了。
2、無法恢復,但是你可以查看一下,有沒有隱藏的以 "~" 符號開頭的表,更改該表的名稱有可能找回你需要的表。
3、無法恢復,但是你可以查看一下有沒有系統隱藏的對象,有時候對象被刪除時系統并不直接刪除,而是更改對象名后隱藏它。
4、數據庫體積的確沒有變小,你壓縮修復數據庫后體積就會變小了。那是因為在二進制上你的數據的確沒有被刪除,仍然存放在磁盤的某個扇區,但是微軟沒有提供 MDB 格式二進制組織方式的參考資料(微軟也不會提供,其他第三方公司也沒有權利直接反編譯 MDB 格式)。至今為止,中國大陸我也沒有看到過相關的參考資料。所以目前為止,你已經刪除的數據是無法恢復的。但是你可以嘗試使用磁盤恢復軟件來找到恢復數據的方法,但是該方法不在本文討論范圍。

建議:在建立數據庫結構時,可以在各個表中再多加一個 ISDEL 字段,刪除記錄時不使用 DELETE FROM ,而使用 UPDATE TABLE SET ISDEL=TRUE 這樣的語句,然后在界面上不顯示 ISDEL=TRUE 的記錄即可。
復制代碼 代碼如下:
如果還沒有被壓縮理論上可以。試試這段代碼吧。加在access模組中
恢復刪除的工作表(未被壓縮)
 
Public Function FnUndeleteObjects() As Boolean
  On Error GoTo ErrorHandler:
  Dim strObjectName           As String
  Dim rsTables                As DAO.Recordset
  Dim dbsDatabase             As DAO.Database
  Dim tDef                    As DAO.TableDef
  Dim qDef                    As DAO.QueryDef
  Dim intNumDeletedItemsFound As Integer
  Set dbsDatabase = CurrentDb
  For Each tDef In dbsDatabase.TableDefs
      "This is actually used as a "Deleted Flag"
      If tDef.Attributes And dbHiddenObject Then
         strObjectName = FnGetDeletedTableNameByProp(tDef.Name)
         strObjectName = InputBox("A deleted TABLE has been found." & _
                         vbCrLf & vbCrLf & _
                         "To undelete this object, enter a new name:", _
                         "Access Undelete Table", strObjectName)

         If Len(strObjectName) > 0 Then
            FnUndeleteTable CurrentDb, tDef.Name, strObjectName
         End If
         intNumDeletedItemsFound = intNumDeletedItemsFound + 1
      End If
  Next tDef

  For Each qDef In dbsDatabase.QueryDefs
      "Note "Attributes" flag is not exposed for QueryDef objects,
      "We could look up the flag by using MSysObjects but
      "new queries don"t get written to MSysObjects until
      "Access is closed. Therefore we"ll just check the
      "start of the name is "~TMPCLP" ...
      If InStr(1, qDef.Name, "~TMPCLP") = 1 Then
         strObjectName = ""
         strObjectName = InputBox("A deleted QUERY has been found." & _
                         vbCrLf & vbCrLf & _
                         "To undelete this object, enter a new name:", _
                         "Access Undelete Query", strObjectName)

         If Len(strObjectName) > 0 Then
            If FnUndeleteQuery(CurrentDb, qDef.Name, strObjectName) Then
               "We"ll rename the deleted object since we"ve made a
               "copy and won"t be needing to re-undelete it.
               "(To break the condition "~TMPCLP" in future...)
                qDef.Name = "~TMPCLQ" & Right$(qDef.Name, Len(qDef.Name) - 7)
             End If
         End If
         intNumDeletedItemsFound = intNumDeletedItemsFound + 1
      End If
  Next qDef
  If intNumDeletedItemsFound = 0 Then
     MsgBox "Unable to find any deleted tables/queries to undelete!"
  End If

  Set dbsDatabase = Nothing
  FnUndeleteObjects = True
ExitFunction:
  Exit Function
ErrorHandler:
  MsgBox "Error occured in FnUndeleteObjects() - " & _
         Err.Description & " (" & CStr(Err.Number) & ")"
  GoTo ExitFunction
End Function


Private Function FnUndeleteTable(dbDatabase As DAO.Database, _
                 strDeletedTableName As String, _
                 strNewTableName As String)

  "Module (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
  "Written 18/04/2005
  Dim tDef As DAO.TableDef
  Set tDef = dbDatabase.TableDefs(strDeletedTableName)
  "Remove the Deleted Flag...
  tDef.Attributes = tDef.Attributes And Not dbHiddenObject
  "Rename the deleted object to the original or new name...
  tDef.Name = strNewTableName
  dbDatabase.TableDefs.Refresh
  Application.RefreshDatabaseWindow
  Set tDef = Nothing
End Function

Private Function FnUndeleteQuery(dbDatabase As DAO.Database, _
                 strDeletedQueryName As String, _
                 strNewQueryName As String)

  "Module (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
  "Written 18/04/2005
  "We can"t just remove the Deleted flag on queries
  "("Attributes" is not an exposed property)
  "So instead we create a new query with the SQL...

  "Note: Can"t use DoCmd.CopyObject as it copies the dbHiddenObject attribute!

  If FnCopyQuery(dbDatabase, strDeletedQueryName, strNewQueryName) Then
     FnUndeleteQuery = True
     Application.RefreshDatabaseWindow
  End If
End Function


Private Function FnCopyQuery(dbDatabase As DAO.Database, _
                 strSourceName As String, _
                 strDestinationName As String)

  "Module (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
  "Written 18/04/2005
  On Error GoTo ErrorHandler:

  Dim qDefOld As DAO.QueryDef
  Dim qDefNew As DAO.QueryDef
  Dim Field As DAO.Field

  Set qDefOld = dbDatabase.QueryDefs(strSourceName)
  Set qDefNew = dbDatabase.CreateQueryDef(strDestinationName, qDefOld.SQL)

  "Copy root query properties...
  FnCopyLvProperties qDefNew, qDefOld.Properties, qDefNew.Properties

  For Each Field In qDefOld.Fields
      "Copy each fields individual properties...
      FnCopyLvProperties qDefNew.Fields(Field.Name), _
                         Field.Properties, _
                         qDefNew.Fields(Field.Name).Properties
  Next Field
  dbDatabase.QueryDefs.Refresh
  FnCopyQuery = True
ExitFunction:
  Set qDefNew = Nothing
  Set qDefOld = Nothing
  Exit Function
ErrorHandler:
  MsgBox "Error re-creating query "" & strDestinationName & "":" & vbCrLf & _
         Err.Description & " (" & CStr(Err.Number) & ")"
  GoTo ExitFunction
End Function

Private Function PropExists(Props As DAO.Properties, strPropName As String) As Boolean
  "Module (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
  "Written 18/04/2005
  "If properties fail to be created, we"ll just ignore the errors
  On Error Resume Next
  Dim Prop As DAO.Property
  For Each Prop In Props
      If Prop.Name = strPropName Then
         PropExists = True
         Exit Function " Short circuit
      End If
  Next Prop
  PropExists = False
End Function

Private Sub FnCopyLvProperties(objObject As Object, OldProps As DAO.Properties, NewProps As DAO.Properties)
  "Module (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
  "Written 18/04/2005
  "If properties fail to be created, we"ll just ignore the errors
  On Error Resume Next
  Dim Prop As DAO.Property
  Dim NewProp As DAO.Property
  For Each Prop In OldProps
      If Not PropExists(NewProps, Prop.Name) Then
         If IsNumeric(Prop.Value) Then
            NewProps.Append objObject.CreateProperty(Prop.Name, Prop.Type, CLng(Prop.Value))
         Else
            NewProps.Append objObject.CreateProperty(Prop.Name, Prop.Type, Prop.Value)
         End If
      Else
         With NewProps(Prop.Name)
              .Type = Prop.Type
              .Value = Prop.Value
         End With
      End If
  Next Prop
End Sub

Private Function FnGetDeletedTableNameByProp(strRealTableName As String) As String
  "Module (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
  "Written 18/04/2005
  "If an error occurs here, just ignore (user will override the blank name)
  On Error Resume Next
  Dim i As Long
  Dim strNameMap As String

  "Look up the Unicode translation NameMap property to try to guess the
  "original table name... (Access 2000+ only - and doesn"t always exist?!)

  strNameMap = CurrentDb.TableDefs(strRealTableName).Properties("NameMap")
  strNameMap = Mid(strNameMap, 23) "Offset of the table name...

  "Find the null terminator...
  i = 1
  If Len(strNameMap) > 0 Then
     While (i < Len(strNameMap)) And (Asc(Mid(strNameMap, i)) <> 0)
       i = i + 1
     Wend
  End If
  FnGetDeletedTableNameByProp = Left(strNameMap, i - 1)
End Function
標簽: Access
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
蜜桃久久精品乱码一区二区| 欧美精品粉嫩高潮一区二区| 麻豆久久婷婷| 欧美激情一区二区在线| 成人午夜av在线| 欧美精品久久天天躁| 日本午夜精品视频在线观看| 久久精品人人| 久久先锋资源网| 国产91色综合久久免费分享| 欧美日韩三级在线| 亚洲欧美日韩在线不卡| 欧美日韩第一区| 久久影音资源网| 成人av午夜电影| 日韩欧美123| 亚洲国产精品人人做人人爽| 亚洲激情黄色| 精品久久久久久久一区二区蜜臀| 国产大陆a不卡| 欧美一区二区三区公司| 成人在线综合网| 精品日韩99亚洲| 91在线你懂得| 欧美国产禁国产网站cc| 狠狠色综合色区| 亚洲欧洲韩国日本视频| 粉嫩在线一区二区三区视频| 久久免费99精品久久久久久| 五月婷婷综合在线| 色婷婷狠狠综合| 久久97超碰国产精品超碰| 欧美视频在线观看一区二区| 精品一区二区在线看| 91精品在线观看入口| 首页综合国产亚洲丝袜| 午夜精品一区二区在线观看| 国产欧美日韩精品一区| 欧美破处大片在线视频| 欧美一区二区黄色| 日韩avvvv在线播放| 欧美四级电影在线观看| 黄色成人免费在线| 精品人在线二区三区| 久久精品国产精品青草| 欧美日韩国产影片| 午夜激情一区二区三区| 亚洲日本无吗高清不卡| 久久精品一区二区三区av| 欧美黄色一级视频| 日韩毛片视频在线看| av网站免费线看精品| 国产欧美日韩麻豆91| 99精品国产一区二区青青牛奶| 国产午夜一区二区三区| 伊人激情综合| 亚洲国产日韩a在线播放| 欧美中文字幕一区| 天天做天天摸天天爽国产一区| 欧美最猛性xxxxx直播| 国产高清精品在线| 欧美日韩国产色站一区二区三区| 丁香另类激情小说| 国产色产综合产在线视频| 99国产精品久久久| 日韩毛片在线免费观看| 国产精品草草| 亚洲一区二三区| 欧美日韩国产系列| 国内精品免费**视频| 欧美三级乱人伦电影| 国产黄人亚洲片| 欧美一级高清片在线观看| 久久99精品久久久| 精品99一区二区| av亚洲精华国产精华| 亚洲三级在线免费| 欧美性色aⅴ视频一区日韩精品| 日韩精品一区第一页| 91精品国产91久久久久久一区二区| 国产一区二区三区香蕉| 欧美色老头old∨ideo| av在线播放一区二区三区| 久久久亚洲高清| 亚洲欧美日产图| 高清免费成人av| 精品捆绑美女sm三区| 99麻豆久久久国产精品免费优播| 亚洲精品写真福利| 欧美日韩高清不卡| 精品不卡在线| 国产在线精品一区在线观看麻豆| 久久九九全国免费| 国产一区自拍视频| 偷窥国产亚洲免费视频| 日韩视频在线一区二区| 国产欧美日韩综合精品二区| 激情av综合网| 亚洲乱码日产精品bd| 欧美一区二区三区在| 亚洲激情网站| 国产激情视频一区二区三区欧美| 精品国一区二区三区| 亚洲一区三区电影在线观看| 成人在线综合网站| 亚洲国产一区二区a毛片| 久久这里只有精品视频网| 亚洲一区网站| 91麻豆精东视频| 亚洲视频在线一区| 国产精品日本欧美一区二区三区| 亚洲午夜私人影院| 精品国产凹凸成av人网站| 蘑菇福利视频一区播放| 91视频com| 中文字幕一区在线观看视频| 欧美久久一二区| 91麻豆自制传媒国产之光| 免费观看一级欧美片| 亚洲私人影院在线观看| 91精品国产综合久久小美女| 午夜性色一区二区三区免费视频| 热久久国产精品| 中文字幕永久在线不卡| 日韩欧美中文字幕一区| 狠狠色综合网| 国产91精品精华液一区二区三区| 亚洲一区二区五区| 中文字幕欧美三区| 欧美一区二区在线看| 久久久久国产一区二区| 国产mv日韩mv欧美| 国产精品久久久久久久久图文区 | 久久亚洲综合色一区二区三区| 久久香蕉精品| youjizz久久| 免费在线观看视频一区| 欧美精品一区二区三区高清aⅴ| 在线一区二区三区四区| av电影天堂一区二区在线观看| 亚洲欧洲99久久| 久久在线免费观看| 久久岛国电影| 国产成人精品亚洲日本在线桃色| 亚洲成人福利片| 亚洲特黄一级片| 日本一区二区三区在线不卡| 日韩无一区二区| 一区二区三区你懂的| 欧美精品国产一区| 91在线云播放| 亚洲资源在线观看| 日韩欧美亚洲国产另类| 欧美日韩亚州综合| 老色鬼久久亚洲一区二区| 亚洲在线国产日韩欧美| av动漫一区二区| 亚洲成av人片观看| 亚洲私人影院在线观看| 欧美一区午夜视频在线观看| 日韩视频三区| 欧美午夜欧美| 欧美在线3区| 成人性生交大合| 黄页网站大全一区二区| 亚洲女与黑人做爰| 亚洲丝袜美腿综合| 国产精品国产三级国产aⅴ中文| 国产欧美一区二区三区在线看蜜臀| 久久综合国产精品| 久久午夜老司机| 久久亚洲精精品中文字幕早川悠里| 日韩欧美一二区| 久久精品午夜| 亚洲一区二区高清视频| 91在线无精精品入口| 日本欧美韩国一区三区| 亚洲成av人影院| 国产精品青草久久| 欧美国产精品专区| 欧美一区二区不卡视频| 欧美男女性生活在线直播观看| 欧美日韩一区中文字幕| 欧美久久久一区| 国产精品女主播一区二区三区| 亚洲开发第一视频在线播放| 欧美日本一区| 国内精品久久久久久久97牛牛 | 免费视频一区二区三区在线观看| 色综合视频在线观看| 91网站最新地址| 欧美+日本+国产+在线a∨观看| 99视频在线观看一区三区| 久久精品久久精品| 激情图片小说一区| 日日夜夜一区二区| 国产精品国产自产拍高清av王其| 欧美一区二区三区四区视频| 日韩欧美色综合| 欧美日韩国产一级二级|