Accessであるシステムを作成しているのですが、いくつか不明な点があるのでアドバイスをお願いします。
「社員情報」をいうテーブルがあり、初期の状態で「社員番号」「氏名」「入社年月日」「年齢」とフィールドがあります。
このテーブルを基にフォーム「社員情報入力」も作ってあります。
ここで新たに、社員情報テーブルに「生年月日」「連絡先」など、フィールドを追加したいのですが・・・以下のような条件があるので、どうしていいのかわからず困っています。
【条件】
・フィールド追加用のフォーム(新規フィールド名を入力させる)を作り、そこからフィールドを追加させる。(直接テーブルはいじらせないため)
・追加したフィールドを社員情報入力フォームに反映(表示)させたい
・追加したフィールドをレポートにも反映(表示)させたい
このような条件でフィールドの追加は無理なのでしょうか?
アドバイスや参考になるページを教えてください。
よろしくお願いします。
No.1
- 回答日時:
>・フィールド追加用のフォーム(新規フィールド名を入力させる)を作り、
>そこからフィールドを追加させる。(直接テーブルはいじらせないため)
オペレーターにテーブル構造を変えさせるのですか?
テーブル構造を変えるというのはそんな簡単なことじゃないですよ
考え直したほうがいいと思いますが
何のためにそのようなことをしようとしているのかの説明があれば
他の方法も含めて何らかの回答が出来るかもわかりませんが
No.2
- 回答日時:
普通なら、管理者側で「社員情報」テーブルに「生年月日」「連絡先」フィールドを追加するべきものです。
多分、質問者さんは言葉の用法を間違えて質問されているのでしょう。
アクセスで「フィールドの追加」とは、テーブル構造を変更する事を意味します。
つまりテーブル上に今まで存在しなかった項目(列と言ってもいいです)を追加することになります。
質問者さんの言っているのは、レコード(行)を追加することだと思います。
ただ、現在の「社員情報」テーブルには「生年月日」「連絡先」というフィールドが無いので「フィールドの追加」という表現を使ったのでしょう。
これを実現するには、二通りの方法があります。
1.管理者側で「社員情報」テーブルに「生年月日」「連絡先」というフィールドを追加してやる。
2.「社員情報」テーブルとは別に「社員追加情報」等といった別テーブルを新たに作成し、
「社員コード」「生年月日」「連絡先」のフィールドを作成し、「社員情報」テーブルとは
「社員コード」でリンクさせる。
「1.」の方法だと追加情報が無い社員も空データを持つことになる。
「2.」の方法は追加情報が有る社員だけのレコードを持つことになるので
無駄な領域が無くて済む。
しかし、「生年月日」「連絡先」の2つのフィールドだけなら、社員情報」テーブルに追加してしまった方が
良いと思います。
私の勝手な推測なので、違っていたら補足してください。
No.3ベストアンサー
- 回答日時:
[イミディエイト]
? CnnExecute("ALTER TABLE 社員情報 ADD COLUMN 生年月日 DATE")
True
? CnnExecute("ALTER TABLE 社員情報 ADD COLUMN 連絡先 TEXT(32)")
True
<社員情報>
社員番号__氏名_________入社年月日____年齢___生年月日___連絡先
101__________鈴木 一郎__2001/04/10___22
102__________中村 主水__2001/04/10___22
このように、<社員情報>テーブルに列を追加するのは簡単に実行できます。
<TableAdd.txt>
ALTER TABLE 社員情報 ADD COLUMN 生年月日 DATE
ALTER TABLE 社員情報 ADD COLUMN 連絡先 TEXT(32)
通常は、このような列を追加するSQL文をテキストで配布するでしょう。
後は、それを実行するアプリケーションを配布すれば目的は達成されます。
ユーザに<新規フィールド名を入力させる>なんて冒険は犯さないと思います。
フォームやレポートもコピーして差し替えればいい訳ですが・・・。
ここを自動化すると、仕掛けがチトややこしいと思います。
まあ、そこはオペレータに頼んだらどうですか?
<バックエンドとフロントエンドとへの分割が最善>
思うに、この際、データベースをバックエンドとフロントエンドに分割したらどうですかね。
であれば、バックエンドを変更するアプリと新しいフロントエンドは配布した終わりです。
分割こそが、この手の悩みからも解法される最善策だと・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- フリーソフト 【至急】Mp3tagで歌手情報を追加したい。 一度やったのですがスマホで確認しても反映されないのです 5 2022/10/23 21:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
IT用語について質問です。 以前...
-
Accessのフィールド数が255しか...
-
ExcelのデータをコピーでACCESS...
-
Accessで別途保存の画像ファイ...
-
SQLServer2005のSQL文での別名...
-
INSERT INTO ステートメントに...
-
フォームのデータシートビュー...
-
アクセス メモ型 255文字...
-
アクセスでオートナンバーをリ...
-
Accessの最大レコード数制限
-
accessのレポートで元になるテ...
-
アクセス A列コピー B列貼り...
-
ACCESSで400以上のフィールドが...
-
AccessでYes/No参照(チェック...
-
ACCESSでテーブルのチェックを...
-
SQLで特定の文字を含むものを削除
-
ACCESSで和暦を西暦に・・・
-
ODBC--リンクテーブル'XXXX'で...
-
ACCESSでの改行コード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSで400以上のフィールドが...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
accessのレポートで元になるテ...
-
アクセス エラーを数値「0」に...
-
ExcelのデータをコピーでACCESS...
-
Accessで、固定アルファベット+...
-
Access 昇順・降順で並び替え...
-
accessで重複を防ぎたい
-
アクセス VBAで列の入れ替...
-
SQLServer2005のSQL文での別名...
-
ACCESSで和暦を西暦に・・・
-
ACCESS2000「定義されているフ...
-
主キーはオートナンバー型のID...
-
ACCESSでオートナンバーを任意...
-
ACCESSでテーブルのフィールド...
-
アクセス A列コピー B列貼り...
-
IT用語について質問です。 以前...
おすすめ情報