• 締切済み

フィールドサイズの変更方法について

お世話になります。SQL初心者です。 VB5+ACCESS97でデータが入っているテーブルのある特定のテキスト型の列サイズを5から6に変更する必要が出てきました。 テーブル名を変えたくないのですが、 1.列サイズを変更した新テーブルをCREATE 2.元テーブルを全項目SELECTして新テーブルにINSERT 3.元テーブルをDROP 4.新テーブルと同じ属性で元テーブル名で新々テーブルをCREATE 5.新テーブルから全項目SELECTして新々テーブルにINSERT 6.新テーブルをDROP この方法しかないでしょうか。コピーのコピーで時間がかかりそうで悩んでます。 手元の書籍ではACCESS97では、テーブル名のリネームとか、ORACLEのALTER TABLEのような属性変更ができないような気がするのですが、もしコマンドをご存知でしたら併せて教えてくださると、とても助かります。 よろしくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

テーブルの数が少ないのなら、MDBをAccessで開いてテーブルのデザインで手で変更したほうが早いのでは?

keipa
質問者

補足

はじめましてtaka tetsuさん。勿論手で変更すればアッという間なのですが、変更の対象となるMDBが自分のマシンだけではないのでVBで変換ツールを作っている次第です。よい方法をご存知でしたら教えて下さい。よろしくお願いします。

  • yoisho
  • ベストアンサー率64% (331/516)
回答No.1

Access(というより JetDB)でも ALTER TABLE は使えますが、Access97 だと、これでフィールド名の変更はできないみたいですね。 いま私の手元には 97 しかないんで確認はしてませんけど、どうも Access2000 ならば ALTER TABLE で ALTER COLUMN が使えるようですので、フィールドサイズの変更も簡単みたいです。 Access97 の場合、DAO の Field オブジェクトの Size プロパティあたりで何とかなるかと思ったら、どうもこれは参照専用で、既にあるフィールドの設定の変更はできないみたいです。 やはり、別テーブル(または別フィールド)を作って INSERT しかなさそうですね。 それから、テーブル名の変更でしたら、DoCmd オブジェクトの Rename メソッドが使えると思いますので、HELP で確認してみてください。

keipa
質問者

お礼

はじめましてyoishoさん。早速のお返事ありがとうございます。Acess2000ならできそうなことは噂で聞いてたのですが、やはりAccess97は無理そうですか…。テーブル名の変更をするためのRenameメソッドは確認してみます。これが出来るだけでもテーブルのコピーのコピーは回避できるので助かります。またよろしくお願いします。

関連するQ&A