Accessフォームからのデータ登録について

このQ&Aのポイント
  • Accessフォームからのデータ登録方法とは?
  • 顧客テーブルへのレコード追加・変更手順を解説
  • 顧客登録フォームでの顧客コードの入力方法について
回答を見る
  • ベストアンサー

Accessフォームからのデータ登録について

 表題ではなんのことかわわからないと思います。 詳しく説明するのでみていただけますか。 顧客テーブルにレコードを追加、変更するため下記のようにしました。 (1)メインメニューで「顧客登録」ボタンをクリックする。 (2)顧客登録フォームを開く。この際埋め込みマクロのWhere条件式で [顧客コード]=[顧客コードは?]と指定する。 (3)該当のレコードがあればレコード内容が顧客登録フォーム上に表示される。   該当のレコードがなければ(新規登録)空の顧客登録フォームが表示される。 この時、フォーム上の顧客コード欄もブランクのため再度顧客コードを入力する ことになります。 二度手間を避けるため、一度入力した顧客コードを空のフォーム上に表示させるには どうすればいいでしょうか。 それから別の質問になるかもしれませんが、当初は(2)では単に空のこ登録フォームを 表示させ、顧客コードを入力しEnterキーを押した時に(3)に進むようにするつもりでした。 (通常はこちらのやり方かと思いますが) しかし(2)から(3)へ進む際の処理の仕方がわからず最初に記したやり方にしました。 こちらのやり方でするにはどうすればよいかも教えていただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> 二度手間を避けるため、一度入力した顧客コードを空のフォーム上に表示させるには > どうすればいいでしょうか。 「メインメニュー」フォームにテキストボックスを配置して、名前を txt顧客コード とします。 ここに、「顧客登録」に表示させたい顧客コードを入力します。 埋め込みマクロのWhere条件式で [顧客コード]=[Forms]![メインメニュー]![txt顧客コード] と設定します。 「顧客登録」フォーム上の「顧客コード」テキストボックスの既定値プロパティを =[Forms]![メインメニュー]![txt顧客コード] と設定します。 以上でどうでしょうか。

crabcan
質問者

お礼

いつもありがとうございます。 テキストボックスを配置するところまでは考えたのですが、既定値プロパティの設定まで 思いが及びませんでした。 おかげさまでうまくいきました。 ありがとうございました。 また宜しくお願いします。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

顧客コードを空のフォーム上に表示させるには ・テーブルのレコードではなく、各フィールドに対応したテキストボックスなりで扱い、  ボタン[決定](など)でテーブルに対する書き込みさせるほうがわかりやすそう。 ・WHERE条件として入力させるのではなく、フォーム上のテキストボックス[顧客コード]を設ける。 ・ボタン[検索]でも設けておいて、Clickイベントでテーブル[顧客]を読ませる。 ・当該レコードがあれば編集モード、なければ新規登録モードとして振舞う。フラグ持っておく。 ・各フィールドへの入力が完了したら、ボタン[決定]をCkickさせる。

crabcan
質問者

お礼

いろいろと考えていただき、ありがとうございます。 ただ申し訳ないのですが、私がAccess初心者のため、考え方はわかるのですが、 具体的にどう設定すればよいかイマイチわかりませんでした。 それで今回は、もうお一人に教えていただいた方法で対応させてもらいました。 また、質問させていただくこともあると思いますので、その時はまた宜しくお願いします。 ありがとうございました。

関連するQ&A

  • access2007 情報入力フォームの作成につい

    メインメニューのレイアウトで、情報入力ボタンと印刷ボタンを設定してあります。 情報入力ボタンをクリックすると「担当・顧客選択メニュー」に移ります。 「担当・顧客選択メニュー」の構成は 担当営業の選択 → コンボボックス 顧客情報(概要) → サブフォーム(担当営業コードで連結) となっており、担当営業を選択すると担当顧客がサブフォームに表示される 様になっています。 サブフォーム上の顧客番号をダブルクリックすると 「顧客情報入力フォーム」の同一顧客番号の情報へと移動し、顧客情報の 追加や編集がでいる様になっています。 今まで、直接「顧客情報入力フォーム」をあけると、画面下のレコード移動ボタンが 1/XXXXとなり、全顧客数と表示されている顧客が何番目の顧客であるかが 表示されていました。 今回、「担当・顧客選択メニュー」から上記の方法で「顧客情報入力フォーム」を 開けるとレコード移動ボタンの表示が1/1となり、その右にフィルタ適用と表示 されます。これの理屈は理解できるのですが、レコード移動ボタンを押すと 2/2となり、真白なブランクフォームが表示されてしまいます。 また、「担当・顧客選択メニュー」からダブルクリックで「顧客情報入力フォーム」へ 移動すると、同一顧客番号で移動しているはずが顧客番号がブランクの画面が 表示されてしまいます。「戻る」ボタンで再度同じ事をやると、今度はちゃんと 表示されます。 これがなぜそうなってしまうのか全くわかりません。 フィルタがかかっている状態で2/2となるのはなぜなのか、 ダブルクリックで同一顧客番号へ移動するはずが顧客番号なしのブランクフォームが 表示されるのはなぜなのか? お心当たりのある方、改善策のヒントを頂ければと思っております。 宜しくお願い致します。

  • ACCESS2000のデータ登録・検索方法

    マスタ入力画面を作成しコードを入力しますが、既に登録済みのコードである場合は、該当するレコードを表示して未登録のコードの場合は、新規入力として取り扱う方法を教えてください。 また、登録ボタンによってのみテーブルへ書きこまないようにするにはどうしたら良いのでしょうか? 以上、よろしくお願いします。

  • アクセス97のフォームについて

    前回質問したのですが回答がなかったので再度簡単に質問させていただきます 現在、帳票フォームとしてフォームを作成しています コードをレコードの項目にふってあるのですが、入力するさいに既存レコードとコードが重複した場合にエラーを表示したいのです 出来れば同一コードを入力された場合次のレコードへは行けないようにしたいのですが・・・。 フォームの更新前処理に設定すればとりあえず次のレコードへは行かなくなるのですが、既存レコードを編集した場合にもエラーが表示されるのです 更新前処理で処理をしたいのですがムリでしょうか? なにか良い方法があれば教えてください 宜しくお願いします

  • ACCESSでフォームを開くとき

    ACCESSでフォームを開くとき、例えば社員番号を 特定(例えば10)して、オープンします すると確かに、10のレコードが表示されますが マウスのスクロールキーを上下すると 10のレコードともう一つブランクのレコードが行き来します これを防ぐ方法ありませんか? ブランクレコードと行き来する、の追加説明ですが レコード移動ボタンは、いいえ、でなくしたのですが この移動ボタンを操作すると、10のレコードと、新しく入力 するためのブランク画面が出るような感じです よろしくお願いします

  • accessでフォームに入力した値を規定値で登録

    お世話になります。皆様。 まずはフォームに担当者コードなるものを入力させ、 その後表示した登録フォームに各種データの登録処理をしていきます。 その際、担当者コードの項目には最初に入力したコードを常に登録するようにしたいです。 再度フォームを開き直したときはまた再度担当者コードを入力し、その値を登録したいです。 どのような方法がよろしいでしょうか。

  • ACCESSフォーム入力後の確定

    こんにちは。 初歩的な質問ですみません。 Access2003で名簿を作っており フォームに印刷ボタンを作り where条件で顧客名を拾ってその人のカルテが出るようにしてあります。 ですが、新規入力後すぐに印刷したいとき レコードがまだ確定されていないのか、うまく機能しません。 なので、いったん前後のレコード画面を開いてから もう1度戻って、印刷ボタンを押しています。 手間がかかるので、何か良い方法はないでしょうか?

  • アクセス2000でフォームに入力したレコードを表示させたいのです

    初歩の質問ですがよろしくお願い致します。 顧客TBを作成して、それを単票フォームで入力 できるようにしています。 同一フォームにサブフォームを設けて入力したレコードを 登録毎にサブフォームへ一覧表示させるにはどうしたらよいでしょうか サブフォームに直接入力していくと可能なのですが できれば上記のような形で行ないたいのです。 それとサブフォームでは編集できないようにすることは出来ますか? 宜しくお願い致します

  • ACCESSのデータシート形式のフォームでのDLookupについて

    お世話になります。 以下の様なコードでフォーム上の「bikou」という項目に商品マスタテーブル内の該当する商品コードの「商品名称」を代入しようと思います。 Private Sub 商品コードNo_BeforeUpdate(Cancel As Integer) Me!bikou = DLookup("商品名称", "商品マスタ", "商品コード='" & Me!商品コードNo & "'") End Sub これは単票形式のフォームではうまくいくのですが、データーシート形式ですと商品コードを入力する度にフォーム上に表示されている「bikou」がすべて塗り換わってしまいます。結果として最後に入力して商品コードの商品名称が、表示中のすべてのレコードの「bikou」に代入されてしまいます。そこで、「現在編集中のレコードの項目「bikou」のみに値を代入する(商品名称を代入する)」という指定を 行うプログラムの書き方はあるのでしょうか。 よろしくお願い致します。

  • Accessについて教えて下さい。

    Access初心者です。 フォームのクリック時のイベントで開いた別のフォームを、サブフォームのリンクフィールドように、リレーションの項目を入力しなくてもテーブルに反映させるにはどうしたらいいのでしょうか? 今現在の状況は テーブルは顧客リスト、送付物、問合せがあり顧客IDでリレーションになっています。フォームはそれぞれ作りました。 メインフォームは顧客フォームで問合せのサブフォームが組み込まれています。送付物フォームはボタンでクリック時開くようマクロで作成しました。where条件は[顧客ID]=[Forms]![顧客リスト]![顧客ID]となっています。 例えば手紙を送ることになり、顧客フォームで該当者を選択→ボタンをクリックし送付物フォームを開く →顧客IDを入力→その他必要事項を入力というかんじです。 顧客IDを入力しないと『フィールド顧客IDとキーが一致しているレコードをテーブル顧客リストで探すことはできません』とエラーになります。 問合せのサブフォームは顧客IDでリンクフィールドとなっています。 ID表示が必要ないので顧客IDは消してあります。 こちらは顧客フォームで該当者を選択し、顧客IDを選択しなくても入力すると問合せテーブルに顧客IDも反映されています。 問合せのように送付物にも顧客IDを選択しなくても反映させるようにするにはどうしたらよいでしょうか? 説明がわかりづらいとは思いますが、お分かりになる方よろしくお願い致します。

  • ACCESSでコンボボックスからの入力でリスト外の追加をフォームを使っ

    ACCESSでコンボボックスからの入力でリスト外の追加をフォームを使って登録 ACCESSのフォームを使ってデータ入力を作成しています、"顧客名"をコンボボックスを使って選択するようにしていますが。 リスト外の新規顧客を入力する際には別の"顧客登録"フォームが開いて、顧客情報(読み仮名、顧客名、都道府県コード、所在地)を入力して、閉じると登録した"顧客名"がコンボボックスから選択できるようにしたいと思い、マクロを使用して(VBはよくわからないので) イベント→リスト外入力時→”顧客登録”フォームが開く 必要事項を入力し、閉じるボタンをクリック。 してみたのですが、コンボボックスのリストに先に入力した新規データが出てきません。 何が足りないのかご教授お願いいたします