• ベストアンサー

データベース操作(DAO)でのフィールド追加について

データベース(Access)のあるテーブルのフィールドをVBのコード(プログラム)から追加したのですが、現在Appendとかいうメソッドを使ってテーブルの中にあるフィールドの一番最後尾に追加するということはできました。 しかし、好きな場所(前から2番目とか…)に挿入することができません。こんなことって可能なのでしょうか?? データベースをコードから操作する上ではフィールドがどの位置にあっても関係ないのですが、メンテナンスなども考えてできればやりたいのですが、どなたか分かる方おられたら教えてもらえませんか?? (操作方法はDAOです) どうぞよろしくお願いしますm(__)m

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

  • ベストアンサー
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.3

ごめんなさい、任意の位置へ・・っていうのを読み飛ばしていたようです。 フィルードを追加してあげた後に、 全フィールドのOrdinalPositionプロパティを変更してあげることってできないでしょうか? http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q249/6/82.asp&NoWebContent=1 また、的をはずしそうで怖い・・・。 これがダメだったら、無理なのかもしれません。

ryuji0202
質問者

お礼

回答ありがとうございました!! 試してみたところ見事にできました!!! バッチリ的にヒットしてましたよ! 本当にありがとうございましたm(__)m

その他の回答 (3)

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.4

VBAで任意の場所に追加はできません。 >ポイントはこちら側が保守(メンテナンス)をするときなんですよね という事でしたら、メンテの時に選択クエリを作って、それでメンテされれば如何でしょう。表示の順番は好きなように変えられますが。 または、新しいテーブルを作成し、元情報を新しいテーブルにコピーし、元テーブル削除し、新しいテーブルをリネームするとかですね。(う~ん、かったるいかも)

ryuji0202
質問者

お礼

回答ありがとうございます! やはりそうなりますよね、私も今まではPAPA0427さんの言われた方法でやっていました。 今回方法を一新しようと思いチャレンジしてみました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

VB(アクセスVBA?)のプログラムでフィールドを追加した後、手操作でフィールドの位置を簡単に移動できますが http://so-net.mougb.net/lesson/acs_l/alesson10.htm テーブルの例。「デザインビューでフィールドを移動すると、そのフィールドに入力されているデータも移動します。」 これもVBAでやらないといけないと言うことですか。

ryuji0202
質問者

お礼

回答ありがとうございます。 そうなんです、Accessの機能を使えば簡単にできることは知っています。ただAccessにもVBにも全く知識のない人達が使うとなったらどうでしょう? こちら側が使う人に意識させないでフィールドが勝手に追加されているようにプログラムする必要がありますよね、ただ、この段階では「だったら別に一番最後尾に追加されてもかまわないのでは…?」ってなってしまいますが、ポイントはこちら側が保守(メンテナンス)をするときなんですよね…ホントにまったくわがままな意見なのです…ごめんなさいm(__)m。 でも回答ホントに嬉しかったですありがとうございました!!

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

AccessとかDAOについては、何の知識もないのですが、 興味があったので調べてみました。 調査時間5分・・ もしかしたら的外れな回答になるかもしれませんが、 そのときはご容赦を・・・ http://www.microsoft.com/japan/developer/library/dao360/daobjtabledef.htm http://www.ruriplus.com/msaccess/Exp/exp0140.htm http://homepage1.nifty.com/MADIA/vb/vb_bbs/200304_03040003.html http://www.athomejp.com/goldfish/mfc/ado/addnew.html

ryuji0202
質問者

お礼

早速の回答ありがとうございます。 URL参照してみました!しかしどれも追加はできているものの、特定の場所ということにかんしてはふれていなかったです…。やはりできないことなのでしょうか?

関連するQ&A

  • ACCESSデータベースにVB6(DAO)でフィールドを追加したい

    既存のACCESSデータベースのテーブルにVB6のDAOでフィールドを追加したいのですが、テーブル名.Fields.Append とかいうメソッドがあるようですが、使用方法がわからずフィールドを追加が出来ません。 具体的には、フィールド名"電話番号"で、文字型で固定文字数13を追加したいのです。 どうぞよろしくお願いします。

  • ACCESSデータベースにフィールドを追加したい

    ACCESSのデータベースのテーブルにフィールドを追加したい? ACCESS初心者です。 ACCESS2000で作成したデータベースのテーブルにフィールドを追加したいのですが どうすればいいですか? 例: テーブル:TABLE  フィールド   KT_ID:Short KT_NAME:Text(100) KT_ADDRESS1:TEXT(100) KT_ADDRESS2:TEXT(100) KT_CODE:Short これに テーブル:TABLE  フィールド   KT_ID:Short KT_NAME:Text(100) KT_ADDRESS1:TEXT(100) KT_ADDRESS2:TEXT(100) KT_CODE:Short KT_COMMENT:TEXT(100) →これを追加したいのですが? よろしくお願いします。

  • DAOでフィールドのデータ型を変更するには?

    Visual Basic5.0(SP3)を使用しています。 DAO3.5を使用してAccess97で作成したテーブル(既にレコードが登録されているテーブル)のフィールドのデータ型を変更したいのですが、方法はありますか? 例えば、整数型(Integer)を長整数型(Long)にといったように...。 FieldオブジェクトのTypeプロパティにセットしようとしたのですが、読み取り専 用のためできません。 トピックで 「Visual Basic の中で、DAO の Type プロパティを使って、フィールドを Fields コレクションに追加する前に、データ型を設定できます。」 と書かれてあるのを見つけました。と言う事は変更できないのでしょうか?

  • DAOでテーブルを作成

    DAOでテーブルを作成したいのですが 主キーにしてオートナンバー型にするにはどうすればいいですか? Sub MyTableCreate() Dim db As DAO.Database Dim tbdef As DAO.TableDef Dim Field1 As DAO.Field Dim Field2 As DAO.Field Set db = CurrentDb Set tbdef = db.CreateTableDef("T_test") Set Field1 = tbdef.CreateField("ID", dbInteger) Set Field2 = tbdef.CreateField("氏名", dbText, 20) tbdef.Fields.Append Field1 tbdef.Fields.Append Field2 db.TableDefs.Append tbdef db.Close: Set db = Nothing End Sub これで、IDフィールドを主キーにしつつ、 dbIntegerではなくオートナンバー型にしつつ、 主キーを付与する方法を教えてください。 DAOのType プロパティのヘルプを見たのですがありませんでした。 今回は http://www.accessclub.jp/dao/20.html を参考にしました。

  • MySQLで新しくフィールドを、ある場所に追加したい。

    普通にフィールドを追加するときは、 add table テーブル名 add 追加するフィールド名 その属性; と書くとおもうのですが、これだとそのテーブルの一番下にフィールドが追加されてしまうと思います。 例えば、上から何番目(あるいは、あるフィールドとあるフィールドの間)にフィールドを追加したい、という処理はできるのでしょうか? よろしくお願いします。

  • ACCESSのFieldの追加方法

    VB初心者です。ACCESSのMDBに下記の構文でFieldの追加はできたのですが 少数点以下2桁に設定する方法がわからなく困っています。 Fieldプロパティにも無く、どなたか教えて下さい。 Set field01 = tdfEmployees01.CreateField("Tanka", dbCurrency) tdfEmployees01.Fields.Append field01

  • DAOとADO 違いは何ですか?

    アクセスを使っていますが データベースを操作する方法に DAOとADOがありますが、 この二つの違いは何ですか? コードの書き方が違うだけでしょうか?

  • リストビューにDAOで接続したデータを追加したい

    開発言語:VB2010 SP1 データベース:アクセス2010 接続方法:DAO 独学で勉強していましたが、行き詰まりましたのでご質問させていただきます。 DAOで接続したアクセスファイルのテーブルデータを、リストビューに追加したいのですが、どのような手順で処理すればよろしいのでしょうか? 自分がした処理は以下になります。 1、リストビューのヘッダー名称の設定 2、リストビューを詳細表示に設定 3、DAO接続し、データ参照方法は確認できました。 その後どのような手順で処理したらいいか、ご存知の方がいましたらご教授ください。 よろしくお願いいたします。

  • Access 2000 の VB での テーブル作成について質問です。

    下記のようにAccess 2000のVBからDAOを使ってテーブルを作っておりますが、 作るフィールドに規定値の設定もVBからできないのでしょうか?DAOだと無理なのでしょぅか? 教えてください Dim db As DAO.Database Dim tbdef As DAO.TableDef Dim flID As DAO.Field Set db = CurrentDb Set tbdef = db.CreateTableDef("テーブル") Set flID = tbdef.CreateField("ID", dbInteger)   tbdef.Fields.Append flID   db.TableDefs.Append tbdef db.Close: Set db = Nothing

  • visual studioを外部から操作したい

    .net framework 2.0を使用しています。 visual studio C# 2005 expressにはメソッドの追加ウィザードがついていないらしいので、 そのウィザードと似たような機能をvisual studioに作成したコードを挿入するアプリケーションとして 作りたい思ってるのですが、visual studioには外部から操作できるように関数などは公開されているのでしょうか? visual studioとメソッド追加ウィザードアプリケーションを両方起動して visual studio内で記述しているテキストのカーソルの位置にメソッド追加ウィザードアプリケーション で作成されたメソッドコードを挿入するやり方です。

専門家に質問してみよう