• ベストアンサー

ADOをし使用して、Accessのテーブルの中のフィールドを消したいのですが。

タイトル通りなんですけど、 テーブルにあるフィールドを追加、削除したいのですが、 どうしたらいいのか全くお手上げ状態です。 助けてください。 ADOを使用しています。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 テーブルにあるフィールドの追加や削除は、ADOの拡張機能であるADOXを使用します。 まず、ADOと同じように参照設定でライブラリを追加します。 ライブラリ名は「Microsoft ADO Ext.2.5 for DDL and Security」です。(バージョンが2.5でないかも知れません。) そうしたら、後はADOとだいたい同じで、オブジェクト変数を宣言して、新規オブジェクトへの参照を代入します。 Dim cat As ADOX.Catalog Dim Tbl As ADOX.Table Set cat = New ADOX.Catalog cat.ActiveConnection = CurrentProject.Connection Set Tbl = cat.Tables![テーブル名] 'フィールドの追加 Tbl.Columns.Append "追加フィールド名", adWChar 'フィールドの削除 Tbl.Columns.Delete "削除フィールド名" Set Tbl = Nothing Set cat = Nothing Append、Deleteメソッドの引数など詳しいことは、MSDN Libraryなどで調べて下さい。 では。

michacha
質問者

お礼

やってみたところ、もののみごとに消えたり追加されたりしてくれました。 本当にありがとうございました!

その他の回答 (3)

  • teppy
  • ベストアンサー率50% (9/18)
回答No.4

Dドライブ直下"db2000.mdb"ファイル、"ABC"テーブル、"AAA"テーブルを削除するサンプルです '~~~~~~~~~~~~~~~~~~~~ Private Sub DelField_Click() Dim stDbName As String Dim stTblName As String Dim stFidName As String Dim stConnect As String Dim ADOCN As ADODB.Connection Dim ADOCAT As ADOX.Catalog stDbName = "D:\db2000.mdb" stTblName = "ABC" stFidName = "AAA" stConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & stDbName & ";" Set ADOCN = New ADODB.Connection ADOCN.Open stConnect Set ADOCAT = New ADOX.Catalog ADOCAT.ActiveConnection = ADOCN ADOCAT.Tables(stTblName).Columns.Delete (stFidName) End Sub '~~~~~~~~~~~~~~~~~~~~ ※参照設定にて「Microsoft ADO Ext 2.5 DLL and Security」をチェックしてください 御期待にそえれば...

参考URL:
http://homepage2.nifty.com/inform/vbdb/index.html
回答No.2

それは、テーブルの定義 (フィールドの数や型) を変更したいという事でしょうか?

michacha
質問者

補足

フィールドの数をへらしたかったんです。 返事おそくなりまして、すみません。

  • asiasi
  • ベストアンサー率0% (0/1)
回答No.1
michacha
質問者

補足

レコードセットの削除、追加はできるんです。 上記のURLに行ってみましたが、該当するものが存在しませんでした・・・。 せっかく教えてくれたのにすみません。