連投稿申し訳ありません
先の方法でフィールドの追加ができました
ご教授ありがとうございました
オートナンバー型に設定ができません
長整数などならDBLONG等でできるようですが
オートナンバーに設定することができません
フィールド作成時もしくは作成後にオートナンバーに設定する方法
お願いします・・・
夜遅くまでご苦労様です。
ADOやDAOのオブジェクトモデルを使っても追加できるのですが、
今回はSQL文で指定する方法を回答しますね。
(オブジェクトで追加する方法が知りたい場合は、再質問してください)
--------------
[既存表へのオートナンバー列の追加]
これには、以下のようなSQLを使います。
『ALTER TABLE テーブル1 ADD 新しい列 COUNTER』
"COUNTER" (または、"AUTOINCREMENT")というのが、
"オートナンバー型"を表すキーワードです。
また、Jer 4.0では、以下の構文も利用できます。
『ALTER TABLE テーブル1 ADD 新しい列 COUNTER(10,5)』
これは、「初期値=10、増分値=5」なオートナンバーを生成します。
それぞれの値に、負数やゼロ値を指定する事も可能です。
--------------
[新規表にオートナンバー列を作成]
先と同様、"COUNTER" もしくは "AUTOINCREMENT" で指定します。
例えば、以下のようなSQL文が利用できます。
CREATE TABLE 従業員 (
社員番号 AUTOINCREMENT CONSTRAINT PK_社員番号 PRIMARY KEY,
社員姓 TEXT(50) WITH COMP NOT NULL,
社員名 TEXT(50) WITH COMPRESSION NOT NULL,
電話番号 TEXT(10),
Email TEXT(50),
住所 TEXT(40) DEFAULT 不明)
これは、以下のような[従業員]というテーブルを作成するための物です。
社員番号: オートナンバー(初期値=1、増分値=1)
社員姓 : テキスト型(50文字、Unicode圧縮あり) [値要求あり]
社員名 : 文字列型(50文字、Unicode圧縮あり) [値要求あり]
電話番号: 文字列型(10文字、Unicode圧縮なし) [値要求なし]
Email : 文字列型(50文字、Unicode圧縮なし) [値要求なし]
住所 : 文字列型(50文字、Unicode圧縮なし) [値要求なし、初期値=不明]
また、CONSTRAINT指定により、このテーブルには[社員番号]列に対して
"PK_社員番号" という名前の主キーが設けられています。
# なお上記には Jet 4.0の ANSI-92モードでしか利用できないキーワードが
# いくつか含まれていますので(WITH COMPやDEFAULT等)、このままですと、
# 「ADO + "Microsoft.Jet.OLEDB.4.0"」以外から実行する事はできません。
# DAOから実行したい場合には、WITH COMP等のキーワードを削って、
# ANSI-89モードのSQL構文にしてから試してみてください。
詳しく返答ありがとうございます
DAOからできること、SQLでできること
まだまだ未熟さを痛感いたします・・・
完全夜型の体に育ってしまった私の集中力は
昼と夜では比べ物にならないため遅い時間にしばしばやってます(^^;
まぁお仕事している以上そればかりでは身が持ちませんが
できるときにやるのみですね
ツイート | ![]() |