重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

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

この回答への補足

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

補足日時:2002/06/05 10:29
    • good
    • 0

Access(というより JetDB)でも ALTER TABLE は使えますが、Access97 だと、これでフィールド名の変更はできないみたいですね。


いま私の手元には 97 しかないんで確認はしてませんけど、どうも Access2000 ならば ALTER TABLE で ALTER COLUMN が使えるようですので、フィールドサイズの変更も簡単みたいです。

Access97 の場合、DAO の Field オブジェクトの Size プロパティあたりで何とかなるかと思ったら、どうもこれは参照専用で、既にあるフィールドの設定の変更はできないみたいです。

やはり、別テーブル(または別フィールド)を作って INSERT しかなさそうですね。

それから、テーブル名の変更でしたら、DoCmd オブジェクトの Rename メソッドが使えると思いますので、HELP で確認してみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/06/05 10:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す