プロが教える店舗&オフィスのセキュリティ対策術

ACCESS初心者です。
1万人弱の携帯電話管理システムを作成中ですが、
判らないところが出てきて困っております。よろしくご指導ください。

電話番号をキーにしたテーブルにいくつかの表をJoinしたクエリを作成し、
電話番号の項目の抽出条件に[携帯電話番号を入力してください]
を入れています。
そのクエリを元に単票形式の入力フォームを作成しています。

これを実行するとまず
「携帯電話番号を入力してください」と表示され携帯電話番号を
入力します。これで該当のレコードが表示されます。
必要な更新が済んだら「実行」(ビックリマーク)を押下して再度
「携帯電話番号を入力してください」を出して次の番号を入力。
削除したいときには「削除」(▲Xのようなマーク)で削除。

以上のように作りました。
このやり方自体、ベストなのかどうかわかりませんが一応はこれで
修正と削除ができるのですが、データ追加ができません。

「携帯電話番号を入力してください」のところで追加したい番号を
入力すると、全項目スペースの入力フォームが表示されて入力は
できるのですが、肝心の電話番号の欄には、最初のダイアログで
指定した電話番号が連携されず
「フィールドに必要なプロパティがTrueに設定されているために
 このフィールド”電話番号”にはNull値は挿入できません。
 値を入力してください」
と表示されてしまいます。

ダイアログで指定した数値をフォームの該当フィールドに連結させて
レコードを追加するにはどうしたらいいでしょうか?

判りにくい質問になっているかもしれませんが、よろしくお願いします。
ACCESSは2002です。

「ACCESSの入力フォームの質問です」の質問画像

A 回答 (1件)

こんばんは



文面からだけでは状況が判断しづらいです。
スクリーンショットがあると助かります。

多分こんな感じのことをしたいのだろうと想定して回答します。
1.電話番号を入力するフォームと、詳細を入力するフォームの2つがある。
2.電話番号を入力するフォームで、OKを押すと詳細のフォームが開く
3.このときに、入力のフォームから詳細のフォームに電話番号を転記したい。

前提として、
1.電話番号を入力するフォームの名前は「formSearch」で、
 その中のテキストボックス「txtInputPhonNumber」に電話番号を入力する。
2.詳細を入力するフォームの名前は「formDetail」で
 その中のテキストボックス「txtPhonNumber」に値を転記したい。
とします。

formDetailの「コード」に以下のように記述してください。
Private Sub Form_Load()
txtPhonNumber = Form_formSearch.txtInputPhonNumber
End Sub

ただし、この場合、formSearchが開かれた状態でformDetailを開く必要があります。

この回答への補足

rukukuさん

せっかく回答を頂いているのに週明けになってしまい本というに申し訳ありません。職場で無いと操作ができず遅れてしまいましたが、どうかよろしくお願い致します。

文面からだけでは状況が判断しづらいということで、申し訳ありませんでした。
とりあえずスクリーンショットをつけてみました。

フォームからある番号の内容更新を行った後、「実行」(ビックリマーク)を押下して再度ダイアログを表示させた時のスクリーンショットをつけてみました。
黄色で囲ってあるところが問題のダイアログで、それ以外はその前に更新を行ったレコードの内容です。

すでに存在する電話番号(キー項目)を入力した場合には左上の「番号」欄に入力した番号が連携されて表示されます。連携されているので当然ですがデータ内容も更新されます。
しかし、ここで新規に登録したい電話番号を入力した場合は、左上の「番号」欄に入力した番号が連携されず、登録しようとしてもキー項目の電話番号がNull値だと言おうことでエラーになってしまいます。

また、フォームはこの画面の1つだけです。
クエリの方で「電話番号」の項目の「抽出条件」に「携帯電話番号を入力してください」と入れてあるのでクエリ単体でも実行するとダイアログが表示されます。
フォームの方でもクエリ単体と全く同じようにダイアログが表示されます。

「更新クエリ」ですので追加ができないのは当然なのかも知れませんが、削除は
「削除マーク」押下でできています。
しかし、「追加」(▲*のようなマーク)を押下しても追加はできません。
別画面が必要なのでしょうか?

どうかよろしくアドバイスをお願い致します。

補足日時:2009/08/10 10:06
    • good
    • 0

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