• 締切済み

アクセスのフォームに簡単入力の仕方(その2)

以前「フォームにテキストボックスを2個配置しました。1個にコードを打ち込むと別のテキストボックスにそれに該当する項目を表示させたいのですがどうすればいいのでしょうか?入力したデータを保存するテーブルが1つ、コードと項目を保持するテーブルが1つ、それぞれ用意しています。」と質問したところ、コントロールソースにDLookupを入れるようにご教示いただきましたが、テーブルにデータを反映させるには、どうすればよいのでしょうか?いつも申し訳ありませんがご教示願います(涙)

みんなの回答

回答No.4

理解力不足ですみません・・・。 >>入力したデータを保存するテーブルが1つ、 >>コードと項目を保持するテーブルが1つ、 >>それぞれ用意しています。 ですよね? >>フォームの参照元であるテーブルにデータが反映されずに 参照元を変更するのですか? フォームにコードを入力  ↓ 参照元より、該当の項目を拾ってきて表示  ↓ 何かボタンを押す???  ↓ フォームの内容が保存用テーブルに反映される ではないのですか?

cycle-hanako
質問者

お礼

返信に感謝します。いろいろ工夫の仕方があるようですね。試すことにします。ありがとうございました。

  • asuka546
  • ベストアンサー率21% (21/99)
回答No.3

#2です。 テーブルで参照できると言うことは参照元のテーブルはあるんですよね。 その主キーはコードにしてあるのでしょうか? それならそれともうひとつ、保存用テーブルにはコードとその他に付随するデータを入れます。ここの主キーもまた別に作ってください。コードに付随するデータは入れなくて良いです。 んで、メニューの「ツール」から「リレーショナルシップ」を出し、そのふたつのテーブルを表示させてください。参照元のコードを保存用のコードと繋げます。(適当なところでダブルクリックすればダイアログボックスがでるはず) つなげ方は参照元を1とした1対多にしてください。 それでクエリを新たに作成します。 保存用テーブルをもとにしてコードの隣に参照もとのコードに付随している「項目」を持ってきます。 それでコードに合わせて項目を表示させることができるのではないかと。(試してないのでいまいち不安ですが) 基本的にテーブルはデータを蓄積するだけです、重複するデータなどはクエリで作成するのが基本になります。 フォームはこのクリエを元に作ってください。 DLOOKUP関数は参照するだけです。

cycle-hanako
質問者

お礼

ご返信に感謝します。早速試してみます。ありがとうございます。

  • asuka546
  • ベストアンサー率21% (21/99)
回答No.2

フォームで参照したデータをテーブルに保存したいということですか? クエリで保存ならすぐに解決だと思うですが、クエリじゃいけないんですか?

cycle-hanako
質問者

お礼

ご返信に感謝します。当方初心者なもので、『クエリで保存ならすぐに解決』というところの意味が、申し訳ないのですが理解できないでおります。更なるお知恵を拝借できれば幸いです。

回答No.1

保存するアクション(動作)は? ボタンか何か押すのでしょうか?

cycle-hanako
質問者

お礼

ご返信に感謝します。フォームのテキストボックスのプロパティのコントロールソースにDLookupの関数をそのままいれると、フォームの参照元であるテーブルにデータが反映されずに、フォーム上で変換されるだけ、という意味です。言葉足らずで申し訳ありません。

関連するQ&A

  • アクセスのフォームで簡単入力の仕方

    いつもお世話になっております。当方アクセス初心者です。フォームにテキストボックスを2個配置しました。1個にコードを打ち込むと別のテキストボックスにそれに該当する項目を表示させたいのですがどうすればいいのでしょうか?入力したデータを保存するテーブルが1つ、コードと項目を保持するテーブルが1つ、それぞれ用意しています。よろしくご教示願います。

  • ACCESS フォームの入力で

    フォームの入力でコード番号を入力すると項目が自動入力出来るようにしたくて 2つ目のテキストボックスのコントロールソースに=DLookUp("[商品名]","テーブル2","[商品コード] = [コード] ")と入力したのですが 1つ目のテキストボックスに入力すると そのときは2つ目のテキストボックスは白紙で 一度フォームを閉じてから立ち上げると2つ目のテキストボックスにも入力されています。 これは閉じないと入力されないのでしょうか? 1つ目を入力した後に表示されるようにしたいのですが・・・。 よろしくお願いします。

  • Access2010フォーム関数からテーブル入力

    アクセス2010について過去からの質問があまりないようですので 浅学ながら質問させていただきます。 フォームのテキストボックス内にて DlookUp関数で返した値を、 "Aテーブル"へ自動で入力したいのですが、 そのような関数はあるのでしょうか? また、このような操作は Dlookupを記述しているコントロールソースから 改行でコードを入力すればよいのでしょうか? ご教示いただければ幸甚です。 よろしくお願いいたします。

  • 【Access97】DLookupについて

     Access97を使って今、データベースを作成していますが、行き詰まってしまいました。  まず大まかな構成を書くと… <テーブル> 【○○班データ】テーブル ・「データナンバー」フィールド ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド 【部材マスター】テーブル ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド <クエリー> 【○○班データクエリー】 「○○班データ」テーブルを元に選択クエリーを作成(全てのフィールド) <フォーム> 上記のクエリーを元に作成。 ここからが質問内容になるのですが、「部材名」をコンボボックスで入力したら、Dlookup関数をテキストボックスのコントロールソースに記述して「部材ナンバー」と「部材コード」が表示されるようにはできました。 ですが、フォームで表示された「部材ナンバー」や「部材コード」がクエリーやテーブルには反映(入力)されておらず、どうしたらいいか手詰まりになっています。 もし、対処法を御存知の方がいらっしゃったら、是非とも御教示をお願いします。 念の為にテキストボックスのコントロールソースで記述したDLookup関数を書いておきます。 「部材ナンバー」の呼び出し =DLookUp("[部材ナンバー]","[部材マスター]","[部材名]='" & [部材名] & "'") 「部材コード」の呼び出し =DLookUp("[部材コード]","[部材マスター]","[部材名]='" & [部材名] & "'")

  • Accessのフォームについて

    Accessで、テーブルへのデータ入力を簡易化するための、フォームを作成しています その中で、コンボボックスのなかから項目を入力したら 別に用意されているテーブルから 一致する項目をテキストボックスに 自動的に値を入力できるようにしたいのですが、 どのようにしたらいいのか、わかりません。 ~フォームに入力する項目~ 氏名、年齢、地区(コンボボックス)、地区コード、地区番号、住所、電話番号  等 ~地区テーブル~ 地区コード、地区、地区番号 調べてみたところ、プロパティのコントロールソースというところで、 値を持ってくるための式を作成するということでしたが・・・ 実践してみたのですが、初心者ゆえ、あまりよく理解できませんでした どうかよろしく御願いします。

  • Accessのフォームで

    教えてください。下のようなテーブルがあり、これを元にフォームを作成したいのですがいい方法が見つかりません。 【テーブル】  品物テーブル(品物ID、品物、製作所)  社員テーブル(品物ID、社員コード、氏名) このテーブルを元にして下のようなフォームを作りたいのです。 【フォーム】  品物ID [テキストボックス]  品物 [テキストボックス]  製作所 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス]  社員コード [テキストボックス]  氏名 [テキストボックス] ※社員コード、氏名が3つあるのは、同じ品物を3人が作成することがあるため。(この部分で悩んでいます) このようなフォームを作ることは可能でしょうか? また参考になるようなサイトなどあれば教えてください。 よろしくお願いします。

  • Access97でフォームの数字入力時マイナス値を認めない方法

    Access97で、フォームのレコードソースに Access内テーブルを割り当てています。 フォームのテキストボックスのコントロールソースには そのテーブルの数値項目の値を割り当てているのですが、 このテキストボックスにマイナス数値の入力を 認めない場合、更新後イベントにエラーチェックの コードを記述する以外に、簡単にエラーチェック出来る ような方法はないでしょうか。 よろしくお願い致します。

  • Accessのフォームについて教えて下さい

    Access 2010のフォームについてお教え下さい。 テーブルにはテーブル名T1、フィールド「ID」、「Price」というテキストボックス。2フィールドがあります。 テーブルの各データは、 ID,Price 001,100 002,200 003,300 フォームにはにフォーム名F1、「cmb」というコンボボックスと、「price」というテキストボックスが配置されています。 「cmb」のデータは値集合ソースで、「SELECT T1.ID FROM T1;」と指定しています。 「cmb」で選択したデータのプライスを「Price」テキストボックスに表示したいと思います。 例えば、「001」を選択したら、「100」と表示されるようにしたいと思います。 色々調べているのですが、どうやってやるのかわかりません。どのように実現したらよろしいでしょうか? よろしくお願いいたします。

  • アクセスのフォーム

    アクセスでウィザードを利用して入力フォームを作りました。 当初はテーブルにあるデータがフォームにも反映されていたのですが、いろいろといじっているうちに、フォームのデータが消えてしまいました。コントロールソースをいじってみたのですが、直りませんでした。 フォームにも、テーブルのデータを反映させるためにはどこを直したらよいか教えて下さい。よろしくお願いします。

  • Accessでチェックボックスからの入力を受け付けない

    お世話になります。 Access2003を使い、フォームにチェックボックスを作りました。  チェックボックスの値をテーブルに反映させるために、「チェックボックス」-「プロパティ」-「コントロールソース」より、該当テーブルの列を指定しました。 フォームビューにて、チェックボックスをクリックすると「このフォームは読み取り専用です」と言われ、チェックボックスへの操作は拒否されてしまいます。  どのようにすれば、フォームのチェックボックスから入力した値が、テーブルに反映できるのでしょうか?  なお、該当テーブルの列はyes/no型に指定しています。 よろしくお願いします。

専門家に質問してみよう