2016-05-04 49 views
1

我正嘗試從VB.Net項目中修改MS Access數據庫的字段和表屬性。從.NET中修改Access表的Description屬性

到目前爲止,我已經成功地做到了以下幾點:1 檢索架構 2-檢索表說明表內 3-修改字段說明

我還沒有找到一種方法來修改的說明數據庫中的一張表。我正在使用ADODB和ADOX。

下面是我怎麼了修改字段描述:

Dim MyDB As New ADOX.Catalog 
    Dim MyTable As ADOX.Table 
    Dim DB As New ADODB.Connection 

    DB.Open("Provider='Microsoft.ACE.OLEDB.12.0';Data Source= 'People.accdb';") 
    MyDB.ActiveConnection = DB 

    MyTable = MyDB.Tables("People") 
    MyTable.Columns("MyID").Properties("Description").Value = "Changed" 

回答

1

Description屬性Access表不可用ADOX。您將需要使用ACE DAO,如下所示:

' required COM reference: 
'  Microsoft Office 14.0 Access Database Engine Object Library 
' 
' Imports Microsoft.Office.Interop.Access.Dao 
' 
Dim dbe As New DBEngine 
Dim db As Database = dbe.OpenDatabase("C:\Users\Public\myDatabase.accdb") 
Dim tbd As TableDef = db.TableDefs("Donors") 
Dim newDescription As String = "This is the new table description." 
Try 
    tbd.Properties("Description").Value = newDescription 
Catch ex As Runtime.InteropServices.COMException 
    If ex.ErrorCode = -2146825018 Then 
     ' Property not found. 
     tbd.Properties.Append(tbd.CreateProperty("Description", DataTypeEnum.dbText, newDescription)) 
    Else 
     Throw 
    End If 
End Try 
+0

完美地工作。非常感謝 –