• ベストアンサー

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に行ってみましたが、該当するものが存在しませんでした・・・。 せっかく教えてくれたのにすみません。

関連するQ&A

  • ACCESSでVBA等を用いて既存テーブルにフィールドを追加する

    タイトルどおりです。 ACCESS97以降で、VBA等を用いた「既存テーブルにフィールドを追加する」方法を調べています。 業務で、デザインビューを使用せずにテーブルフィールドの追加が発生したので、その対応のためです

  • ADO DAO ADOX 目的による使い分け

    ADOとADOXの利用目的は、 ADO→レコードの追加、編集、削除 ADOX→テーブル、フィールド、クエリの追加、編集、削除 と認識しています。 では DAOはなんでしょう?

  • アクセスで同一テーブル内へのデータの追加

    こんにちは。Access2000を使用しています。 「顧客テーブル」には「お買上げ年度」と「顧客名」フィールド があります。 「お買上げ年度」= "2007"の顧客を、「お買上げ年度」 = "2008" として「顧客テーブル」内に追加したいのですが、一度仮テーブル やCSVファイルにデータを退避することなく、クエリやVBA(ADO)で 対応することは可能でしょうか?(=同一テーブル内への追加クエリ を実行したい。)よろしくお願いいたします。

  • アクセスのテーブルとフィールドの関係について教えてください

    テーブル1からフォームを作成するとします。このフォームのなかの入力項目にテーブル2の中にあるフィールドを追加することは可能でしょうか?

  • レプリケーションしているテーブルに対する列追加やフィールドタイプの変更

    お世話になります。 レプリケーションしているテーブルに対して、列(フィールド)の追加や フィールドタイプを変更しようとすると、レプリケーション絡みのエラー が発生します。 テーブル 'xxxテーブル' - テーブルを修正できません。 ODBC エラー : [Microsoft][ODBC SQL Server Driver][SQL Server]レプリケー ションで使用されているので、テーブル 'dbo.xxxテーブル' を 削除 できません。 その都度、当該テーブルを使用しているパブリケーションをいったん削除し、 列の追加やフィールドタイプの変更後、再度パブリケーションを作成して いる次第です。 パブリケーションを削除せず列を追加したり、フィールドタイプを変更する方法 はございますでしょうか。ご教授願います。

  • Accessでフィールドを追加したい

    Accessであるシステムを作成しているのですが、いくつか不明な点があるのでアドバイスをお願いします。 「社員情報」をいうテーブルがあり、初期の状態で「社員番号」「氏名」「入社年月日」「年齢」とフィールドがあります。 このテーブルを基にフォーム「社員情報入力」も作ってあります。 ここで新たに、社員情報テーブルに「生年月日」「連絡先」など、フィールドを追加したいのですが・・・以下のような条件があるので、どうしていいのかわからず困っています。 【条件】 ・フィールド追加用のフォーム(新規フィールド名を入力させる)を作り、そこからフィールドを追加させる。(直接テーブルはいじらせないため) ・追加したフィールドを社員情報入力フォームに反映(表示)させたい ・追加したフィールドをレポートにも反映(表示)させたい このような条件でフィールドの追加は無理なのでしょうか? アドバイスや参考になるページを教えてください。 よろしくお願いします。

  • Accessのテーブル内のフィールド数

    教えて下さい。 Access2003(2007)では、テーブル内のフィールド数が最大255となっていますが最大フィールド数255以上ある、Accessと同じようなものはあるのでしょうか?(OpenofficeのBase等) 他DBからテーブルをリンクテーブルで貼り付けているのですがフィールド数が255以上あり取り込み先のAccessではフィールド数をすべて表示できない状態です。 よろしくお願いします。

  • Access2010 テーブルのフィールドについて

    Access2010を使用しています。 テーブルのフィールド定義 [A][B][C][D][E][F][G] ↓ テーブルを開くと [A][B][C][E][F][G][D] と勝手に変わる (あるフィールドだけ、別の場所に移動) ↓ フィールドの並び順を [A][B][C][D][E][F][G] に戻す ↓ 保存してテーブルを閉じる ↓ 再度開くと [A][B][C][E][F][G][D] と変わってしまう。 この繰り返しです。 どなたか、お助け下さい。 よろしくお願いいたします。

  • ACCESS ADOでupdateが効かない

    いつもありがとうございます。 現在、ADOを使ってカレントプロジェクト以外のMDBファイルのテーブルにレコードを追加する処理を行っているのですが、何のエラーメッセージも出ないままレコードが追加されません。 この場合、updateコマンドが実行された後の状態(リターンコード)を調べる事はできないでしょうか?

  • Accessのテーブルのフィールドに式を入れる方法

    質問:1 テーブルのフィールドに式を入れる方法を教えてください。 フィールド1、フィールド2、フィールド3とある場合に、 フィールド3=フィールド1+フィールド2を自動入力したいのですが、 どこで設定すればいいのか教えてください。 質問:2 フォームのテキストボックスのコントロールソースに下の式を設定してあります。 ="K-" & [区分] & "-" & CStr([通番]) これをテーブルのフィールドに反映させるにはどのような設定を行えばいいでしょうか。 (フォームのコントロールはウィザードでテーブルの全フィールドを取り込んでいます。) よろしくお願いします。

専門家に質問してみよう