2014-03-25 72 views
0

我的訪問數據庫中有一些鏈接的表,這些表用於從其中獲取員工數據的make表查詢。有一個連接檢查在一開始就運行,但是當沒有連接時,表被刪除。是否有一行代碼可以添加到任何地方,如果沒有連接,可以告訴數據庫不要刪除表格?阻止代碼在Access中刪除表

回答

0

DAO對象庫提供了一個TableDefs對象,該對象具有您正在查找的屬性(稱爲「連接」)。使用這個你可以掃描你的數據庫來確定一個表是否是本地的,鏈接的或ODBC連接。

下面是一段代碼,我之前使用DAO模型在Excel電子表格中「寫入」了數據庫屬性。我已經包含了特別指向表格屬性的部分(因此瞭解我已經排除了數據庫查找並創建了Excel電子表格)。希望這會給你一個關於如何使用這個屬性來創建你正在尋找的邏輯的想法。

Dim oDb As DAO.Database 
Dim oTbl As DAO.TableDef 
Dim oTbls As DAO.TableDefs 

'... A lot of code to open the appropriate database, create an excel spreadsheet 
'and begin pasting DAO attributes into a template... 

Dim oWkbk As Excel.Workbook 
With oWkbk.Sheets("Tables") 
    .Select 
    .Range("B1").Value = TrimToChar(DbName, "\", True, True) 
    .Range("B1").Font.Bold = True 
    .Range("B1").Font.Size = 14 
    .Range("B3").Value = "Name" 
    .Range("C3").Value = "Linked" 
    .Range("D3").Value = "Linked DB" 
    .Range("E3").Value = "Date Created" 
    .Range("F3").Value = "Last Updated" 
    .Range("G3").Value = "Record Count" 
    .rows("3:3").Font.Bold = True 
    .rows("3:3").HorizontalAlignment = xlCenter 
End With 




Set oTbls = oDb.TableDefs 

For Each oTbl In oTbls   
     With oWkbk.Sheets("Tables") 
      .Range("B" & i).Value = oTbl.Name 
      .Range("E" & i).Value = oTbl.DateCreated 
      .Range("F" & i).Value = oTbl.LastUpdated 
     End With    
****'HERES THE PART TO PAY ATTENTION TO:**** 
     If oTbl.Connect = "" Then 
      With oWkbk.Sheets("Tables") 
       .Range("C" & i).Value = "No" 
       .Range("G" & i).Value = oTbl.RecordCount 
      End With 
     ElseIf Left(oTbl.Connect, 4) = "ODBC" Then 
      With oWkbk.Sheets("Tables") 
       .Range("C" & i).Value = "ODBC" 
      End With 
******************************************** 

     Else 
      With oWkbk.Sheets("Tables") 
       .Range("C" & i).Value = "Yes" 
       .Range("D" & i).Value = TrimToChar(oTbl.Connect, "\", True, True) 
      End With 
     End If 
Next oTbl 
+0

我很困惑,我該如何將它實現到我的代碼中,以確保在沒有建立連接的情況下表格不會被刪除? – user2119980

+0

也許我誤解了你的問題......我以爲你想知道哪些表是本地的,哪些表有鏈接連接。這不是你問的嗎? – DanK

+0

我想阻止表被刪除,如果沒有建立連接。所以基本上,如果沒有與SQL服務器的連接,代碼將停止運行,因此不會執行make table查詢。 – user2119980