2016-05-04 11 views
1

VB.Netプロジェクト内からMS Accessデータベースのフィールドとテーブルのプロパティを変更しようとしています。AccessテーブルのDescriptionプロパティを.NETから変更する

これまでのところ、私は成功し、次を行っている: 1-私はまだの説明を変更する方法を発見していないテーブル内のテーブルの説明に

を 、3-修正フィールド説明を取得するスキーマ 2-取得データベース内のテーブル私は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

AccessテーブルのためのDescriptionプロパティが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

完全に動作します。どうもありがとう –

関連する問題