• ベストアンサー

アクセスのフォームによるデータ入力について

顧客の販売履歴管理で サブフォーム上に抽出した顧客データをクリックして 入力用のフォームが立ち上がりデフォルト値として抽出した顧客のデータがすでに入った状態にする方法はどうすればよいでしょうか? 顧客データデーブルと履歴テーブルがあり2間は顧客IDでリレーション関係されています。

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

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

顧客IDが数値の場合 DoCmd.OpenForm "入力フォーム名", acNormal, , "[顧客ID] = " & Me![顧客ID] とすれば、入力フォームが顧客IDが同一のものだけフィルタで選択した状態となりますが、新規履歴を追加したいのですね。 入力フォームを開いたあと、新規レコードに移動してから、入力フォームのテキストボックスの「規定値」にサブフォーム上の顧客情報を代入してはどうでしょうか。 Forms![入力フォーム名]![テキストボックス名].DefaultValue = Forms![サブフォーム名]![代入したい項目]

その他の回答 (1)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

テーブルのデザインで、既定値に デフォルト値をセットしたらどうでしょうか?

関連するQ&A

  • Access フォームのデータがテーブルに反映されない

    こんにちは。 現在、アクセスを使って簡単なデータベースを 作っていたのですが、ひとつわからないことがございます。 テーブルを二つリレーションを組んで、 フォームを作ったのですが、 うまく二つのテーブルにデータが 保存できません。 フォーム:顧客ID、名前、電話番号 サブフォーム:商品ID、商品名、納期、など。。。 こういった二つのテーブルで、サブフォームの方のテーブルに 顧客のデータも保存したいんですが、できるものなのでしょうか? 初心者でわかりづらくて、 大変申し訳ございませんが、よろしくお願い致します。

  • ACCESS フォームからサブフォームのデータを更新・入力したい

    ACCESS フォームからサブフォームのデータを更新・入力したい tbl_プロジェクトというテーブルにIDとプロジェクトコード、プロジェクトの基本情報を持たせ、f_プロジェクトフォームからプロジェクトコード、件名、契約日等のデータ及び、f_テーマサブフォームにテーマを入力できるようなフォームを作成しています。フォームで入力したものをそれぞれのテーブルに保存したいのですがうまくいかない部分があります。 フォームから入力すると、tbl_プロジェクトに所属する情報は更新されます。そのtbl_プロジェクトに所属するプロジェクトコードをサブフォームのtbl_テーマのプロジェクトコードにも反映したいのですがどのようにしたらよいでしょうか? そういったことは可能でしょうか?分かりにくい説明で申し訳ないですが教えていただけると助かります。よろしくお願いします! DBの構成 【テーブル】 tbl_プロジェクト (1件1件のIDとプロジェクトコードを持つ) (フィールド:P_ID、プロジェクトコード、件名、契約日など) tbl_テーマ(プロジェクト毎に関連のあるキーワードを持つ) (フィールド:P_ID、プロジェクトコード、テーマ)←これのプロジェクトコードにtbl_プロジェクトのデータが入るようにしたい。 tbl_顧客(プロジェクトを依頼した顧客情報を持つ) 【クエリ】 q_テーマ(プロジェクト、テーマ、顧客を抽出するクエリ) 【フォーム】 f_プロジェクト (プロジェクトを1件ずつ表示・参照・新規作成するフォーム) f_テーマサブフォーム (f_プロジェクトフォームのプロジェクトコードにづきテーマを          表示・入力するサブフォーム) リレーションはP_IDをキーに一対多で作成しています。

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

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

  • Accessフォームの操作で

    2つの別々なフォームがあります。 それぞれのフォームの基になっているテーブルが別々にあります。 ひとつはデータが入力されているテーブルで もうひとつはフォームから入力していく空のテーブルです。 データが入力されているフォームでは、データ抽出するサブフォームを持っていて、 そこにあるレコードセレクタをダブルクリックすると もうひとつの空のテーブルから作成したフォームにデータを入力していくようにしたいんですけど、うまくいきません。 乱文でわかりにくいとは思います。 ご迷惑をおかけしますが教えてください。 よろしくお願いします。

  • アクセスで・・

    メインフォーム(ID)、サブフォーム(サブID、IDとIDのリレーション)があります。 それとサブフォームの内訳を入力するサブサブフォームが展開し、これはサブフォーム上のコマンドボタンクリックで、サブIDとリレーションされた形でデータを入力する。 という風にしたいのですが、コマンドボタンクリックのところのコードがわかりません・・ どなたかご教授願えませんでしょうか?

  • access フォームで情報表示かつ、データ入力業務について

     accessのフォームでデータ入力業務の場合について。  作成者が退職しており、システムにどうしても理解できない所があり、ご教授願います。  現状、お客様の情報表示(社名、住所等)かつ、お客様に関する調査結果のデータ入力を1つのフォームで表示させています。サブフォームは使用しておりません。  疑問点は、IDをテキストボックスに手入力し、エンターキーを押すと、お客様情報が表示されるという仕組みです。検索ボタン等はありません。それらしき記述もありません。 テーブル1・・・ID、お客様情報  テーブル2・・・ID、調査結果 テーブル3・・・上記全情報の保存用テーブル 選択クエリ・・・テーブル1+テーブル2(IDで結合)(IDは、テーブル2のものを使用) フォーム・・・クエリを基にしたもの。 ・テーブル1は完全にユニークなデータです。 ・テーブル2は調査結果の保存テーブルではなく、「サブフォームを使う事無く、既知の情報表示とデータ入力を1つのフォームで表示できる」ようにする為の、言わば「ダミー」のようなテーブルと思われます。テーブル2に事前に情報入力はしません(フォームで入力する事になります)。またテーブル2を後々参照する事もありません。 ・テーブル3は最終的な保存先です。フォームにはその為の保存ボタンがあります。その際にはADOを使っているようです。(ここらへんは今の私の知識の限界です。)  例えば新規IDをテーブル1に作成します。テーブル1にはデータはありますが、テーブル2にはまだ存在しない状態です。この時点で、その新規IDを抽出条件に、このクエリを実行すると、1行だけ抽出されます。普通に考えれば「抽出結果は0件」ではないかと思うのですが・・・。  新たにシステムを構築する為、この仕組みがどうしても必要なのです。  お願いします。

  • Accessでのフォーム入力エラー

    顧客管理を 顧客マスタ 受注明細 入金明細のテーブルを作成し、リレーションシップの設定をしてあります。テーブルには、この形で入力できるのですが、フォームをウィザードを使って作成(サブフォームのリンクされたフォーム)しました。 新規入力することができません。「テーブル’顧客マスタ’にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更をおこなうことはできません。」のメッセージが出ます。 どうしていいのか、わかりません。教えてください。

  • ACCESS フォームにデータ入力できません

    まず支払一覧と発注一覧のテーブルを作成後、そのフォームを作成し、そこからデータを入力できるようにと考えていたのですが、入力しようとしても上書きできません。各一覧には、既にリレーションシップおよび内訳金額と摘要が書けるサブフォームと、それらの合計金額のサブフォームが付けてあります。何をどうすれば、フォーム上にデータを上書きすることができるでしょうか。簡単なことで申し訳ございませんが、どなたか教えてください。。宜しくお願いします。

  • ACCESS2007 DMaxについて

    WinVistaでACCESS2007を使っております。 顧客との取引履歴のデータベースを少しずつ作っております。 現在のデータベース構成は簡単に書きますと、 「顧客T」 ・顧客ID ・顧客名 ・ ・ ・ ・最終取引日 「取引T」 ・取引ID ・顧客ID(顧客Tの顧客IDとリレーション) ・取引日 ・取引内容 という感じです。 顧客Tをソースに「顧客フォーム」を作り、そのフォーム内にサブフォームで 取引履歴として「取引履歴サブフォーム」。「取引日」「取引内容」のみ表示して 入力しております。 やりたいことは、フォームを開いた際に、サブフォーム内の取引日の中で 最新の日付をメインフォームの「最終取引日」フィールドに入力して、データ を更新していきたいです。 非連結のフィールドを作って表示だけすればいいのかもしれませんが、 現状データとして格納していきたいです。 VBAでメインのフォーム「開くとき」にDMaxで最大の日付を拾えばいいかと思い 試してみましたが、エラーが出てしまいます。 いろいろ試してみましたが、記述はこんな感じです。 Me.最終取引日=DMax("日付",Me.取引履歴サブフォーム) としてみました。 どなたかお力を貸してください。

  • ACCESS2000のフォームからの入力でデータが上書きされる

    書類の受付簿を作成しました。 ユーザー1件ごとに受付日を入れると 規則性無く、時々入力したはずの日付が 前のレコードに書き込まれてしまいます。 内容としては【テーブル】 ユーザーテーブル(約2000件) 受付簿テーブル(3種類をそれぞれmm/ddで) ユーザーでは無くなった退会テーブル(Yes/No) 3つのテーブルで管理しています。 【クエリー】 日付入力をするためにクエリーを1つ作成 しました。上記3つのテーブルの合体させたもの。 それぞれのテーブルはユーザーIDでリレーションし ました。 【フォーム1】→これで入力するとおかしくなる ユーザーIDで検索し、ユーザー名が表示されたら 3項目ある受付枠に日付を入力する画面 フォームビューで作成 【フォーム2】 同じクエリーをデータシートビューで表示させ 検索機能なしで、直接ユーザーIDの該当枠に入力 する画面 を作成しました。フォームビューで作成したフォーム 1で入力したときに、どういう規則性があるか まったく判らないのですが、1件前のユーザーIDに セットされ、入力したはずの部分は空欄になって しまいます。 また、この現象に関連するのでしょうが、すでに入力 されていた日付が、消えてしまう現象もおきます。 何が原因でこのような現象になっているか、まったく 検討がつきません。どこら辺を、チェックしたら 良いか、回答をお待ちしています。

専門家に質問してみよう