次の方法で共有

既存テーブルにフィールドを追加したい

Anonymous
2014-07-22T17:20:10+00:00

既存のテーブルに、フィールドを削除するには

CurrentDb().TableDefs("テーブル名").Fields.Delete ("フィールド名")

上記一行でできましたが、

追加する為に、一行で記述する方法はありませんか?

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2014-07-23T13:39:34+00:00

MukkuMukuです。

コレクションとコレクションに格納されているオブジェクトと考えればよいかと。

Fields コレクション (DAO) から Field オブジェクト (DAO) を削除 / Delete する場合、すでにField オブジェクトはわかっているのだから、Field オブジェクトを特定する文字列:Field 名をFields.Delete メソッド (DAO) で指定するだけで事足りる。

Fields コレクションに Field オブジェクトを追加 / Append する場合、Fields.Append メソッド (DAO) の引数の型は オブジェクト型なので、TableDef.CreateField メソッド (DAO)で作成した Field オブジェクトが必要。

このような書き方を私はしないですが

CurrentDb.TableDefs("Table1").Fields.Append CurrentDb.TableDefs("table1").CreateField("F_Date", dbDate)

1行で収めるというのは本題ではないかと思うのだけど、1行であるメリットは思いつかない。

ALTER TABLE Table1 ADD COLUMN F_Date DATE というのも1行。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-07-23T15:00:51+00:00

    追加するフィールドがテキストだったので、dbDateをdbText, 50にしました。

    CurrentDb.TableDefs("Table1").Fields.Append CurrentDb.TableDefs("table1").CreateField("F_Date",dbText, 50)

    >このような書き方を私はしないですが~~~1行であるメリットは思いつかない。

    はい、お恥ずかしながら。

    当方、日曜プログラマにとっては理屈は知らないが、即業務に使えるオマジナイのようなコマンド(?)はとても有用でして。

    MukkuMuku様、いつもありがとうございます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-07-23T04:08:09+00:00

    一行で

    CurrentDb().TableDefs("テーブル名").Fields.Delete ("フィールド名")

    と、削除できるなら

    CurrentDb().TableDefs("テーブル名").Fields.Append~~ ("フィールド名"、~~)

    なんて感じで、一行で処理できないかと思いまして。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2014-07-23T00:59:08+00:00

    おはようございます、ずっちです。

    http://msdn.microsoft.com/ja-jp/library/office/ff195790(v=office.15).aspx

    こちらに書かれています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません