• 締切済み

access

accessの超初心者で文がおかしくなるかもしれませんがよろしくお願い致します。 フォームのテキストボックスに計算した答えを出したいのが私のしたい質問です。 具体的には同テーブル内にある       A 100       B  50 の引き算の答えを表示させたいのですが具体的にはどういった方法をとればいいでしょうか? テーブル内のA、Bは直接入力しているのでテキストボックスにはその答えが何らかの方法で表示させればいいのですがその方法が皆目見当がつかずよろしくお願い致します。

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.7

こんばんは。 AとBは違うフィールドだとすれば、次の方法があります。 ア) 非連結コントロールを利用する こちらは#2、#3の方が詳しくご説明されています。ACCESSの勉強を始めたばかりでしたら、まずこちらの方法をお試し下さい。 イ) クエリを利用する 私は#4の方と同様に、難易度は上がりますが、クエリを使用することをお勧めします。 なぜなら、フォームの非連結コントロール上で演算をするよりも、クエリで演算フィールドを作成した方が高速動作するためです。覚えておいて損はありません。 前提条件として、フィールド「A」と「B」をもつテーブル「TEST」が既に作成されているとします。 1 [クエリ]-[デザインビューでクエリを作成する]をクリック 2 [テーブルの表示]ウインドウを何もしないで閉じます 3 [表示]メニューから[SQLビュー]をクリック 4 開いたウインドウに次の一文をコピー&ペースト SELECT [A],[B],[A]-[B] AS [減算結果] FROM [TEST]; 5 ウインドウを閉じ、適当な名前でクエリの変更を保存します。 6 5で作成したクエリをもとに、フォーム作成ウィザードでフォームを作成します。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

#2です。 ・式ビルダの式の結果が [投球数].[投球数]のようになるので、左の[投球数].を 削除してみる。[昨年投球数].についても同じ。 ・テーブル名、フィールド名が私の例と同じかどうかチェックしてください。 記号の半角全角に注意してください。 ・私のは載せる前にテストはしています。

  • Mtr2004
  • ベストアンサー率18% (2/11)
回答No.5

なんとなく思ったのですが、AとBは同一フィールドですか? もしそうであれば不可能だと思います。 私の勘違いであったらごめんなさい。 違うフィールドであれば#3の方がおっしゃるようにすれば良いと思います。

回答No.4

ご存知かとは思いますが テーブルでは計算ができません。 フォームで計算式を入れられますが、 それはやめて、 クエリでテーブル2つをくっつけて クエリで計算フィールドを作ります。 それを、フォームにしたら、いいと思います。 違っていたら、ごめんなさい。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

フォームの新規作成でフォームウィザードが開きますのでそのテーブルを選択します。 選択可能なフィールドが表示されますのでその中からAとBを選択します。次へをクリックするとフォームのレイアウトになりますのでその中から選択します。 テーブルにある1レコードづつ表示させるには単票形式・一覧のように表示したいのであれば表形式などを選択します。 次はスタイルになりますがお好みのものを選択し進めます。 フォーム名をつけてフォームのデザインを編集するをチェックして完了ボタンをクリックします。 フォームの編集画面が出ます。詳細部にAとBのフィールドが出来ていますので詳細部に計算した答えを表示するテキストボックスを追加します。 ツールボックスの中からテキストボックスを選択し詳細の配置したい位置でクリックするとテキストボックスが追加されます。 追加されたテキストボックスで右クリックしそのテキストボックスのプロパティを開きデータタブにあるコントロールソースに =[A]-[B] と入力して閉じます。 フォームを閉じて再度開けばAとBのフィールドとAからBを引いた答えが表示されるフィールドが出来ます。 (この答えのフィールドはあくまでもフォーム上でAからBを引いた答えが表示されているだけでテーブルには反映等されません。)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

問題にしているテーブルを指定してまずフォームを作ります。 例えば投球数、昨年投球数のフィ-ルドがあるものとし、昨年比増減をフォーム上のテキストボックスに出すものとします。テーブル名を投球数とします。 フォーム 新規作成 オートフォーム:単票形式 基になるテーブル・・の選択-▼をクリックしてテーブルを指定(投球数テーブル) 単票形式のフォームが出きる。 デザインビュー 全項目のテキストボックスが出るが、不要なテキストボックスは抹消すればよい。 テキストボックスをツールバーより、D&D ツールバ-の「プロパティ」のアイコンをクリック 「コントロール」の右端をクリックして現れる「・・・」をクリック。 式ビルダが出る。 テーブルをクリック。 「投球数」テーブルが出るのでクリック。 「=」のボタンをクリック 「投球数」をダブルクリック 「-」ボタンをクリック 「昨年投球数」をクリック-OK コントロールソースに=[投球数]-[昨年投球数]になる。 デザインビュー-「X」をクリックで閉じる 「X」をクリックで閉じる 名前を付けて保存 これで追加したテキストボックスに差が出ると思う。

bekopon012
質問者

お礼

ご解答ありがおうございます 続けての質問で申し訳ないのですがどうしても 解らないので質問させて下さい。 imogasiさんのおっしゃる通りにやってみたのですが #Error や #name などのエラー表示が出てしまうのですがこれは何らかの設定が必要なのでしょうか?

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 1. データA、Bは同一のテーブルにありますか? 2. テーブル内のA、Bはフォーム上で、例えばテキストボックスなどに表示されていますか?または表示可能ですか? これにより、解決方法が異なります。

bekopon012
質問者

お礼

解答ありがとうございます。 1、同一テーブルにあります。 2、フォームで表示可能です。 昨日丸1日悩んでまだ現在悩んでます。 もっと精進しないといけないな~とひしひし感じています。 参考書を買って読んで勉強はしているのですが難しいもんですね・・・。

関連するQ&A

  • Access2007で。

    Access2007で。 今Access2007を使ってちょっとしたシステムを開発してるのですが、フォーム内のテキストボックスに入力した文字列と、テーブル内のデータを参照する事ってできるのでしょうか? 例えば テーブルA、フォームBとして テーブルAには 問題番号 問題文 答え 上記のフィールドがあり、 フォームB内の解答テキストボックスと、テーブルAの答えフィールド内データを参照し、 同じデータがあった場合はフォームCを開き、データがなかった場合はフォームDを開く。 このような形にしたいのですができるのでしょうか? 無知な質問で恐縮ですが、ご教授ください。

  • ACCESSのフォーム内のテキストボックスのコントロールソース

    ACECESSでフォームを作り、テキストボックスを作成します。次に、そのテキストボックスへテーブルAのデータBを割り当てたとします。このとき、このテキストボックスに、テーブルAのデータBが割り当てられている事を確実に知る方法はありますでしょうか。 このテキストボックスのプロパティのコントロールソースを参照すると、データBが表示されますが、テーブルAの情報が表示されません。自分で作成したフォームについてはそれでも良いのですが、今回他の人が作成したフォームを見る必要があり、どのテーブルのどデータを割り当てているかを確実に知りたいのですが、その方法をご存じでしたら教えて下さい。

  • ACCESSのテキストボックス内の任意の文字

    お世話になります。 宜しくお願い致します。 ACCESS2010についてになります。 [フォームA]の[テキストボックスa]に、ある文字が含まれていたら、[テーブルB]の[フィールドb]を検索して、[フィールド'c]の値を[フォームA]の[テキストボックス'a]に表示させたいと思います。 (例) 『信長』が入っていたら、検索結果を表示させる。 [フォームA] [テキストボックスa] 『徳川家康』 ⇒  検索しない。 『織田信成』 ⇒  検索しない。 『織田信長』 ⇒  [テーブルB][フィールドb]を検索する。 [テーブルB] [フィールドb] [フィールド'c] 明智光秀 あけちみつひで 織田信長 おだのぶなが ⇒ 結果を表示する。 [フォームA] [テキストボックス'a] おだのぶなが おわかり頂けますでしょうか。 上手く表現できずにすみません。 お手数ですが、ご教示頂ければと思います。 宜しく、お願い致します。

  • access vbaのテキストボックスについて

    例えば、sampleというテーブルがあり、そのテーブルは列A,列Bという構成だったとします。データとしては下記のようにします。  A  B 1 a1 b1 2 a2 b2 3 a3 b3 この時、フォーム上にテキストボックス1とテキストボックス2を作成し、コントロールソースにそれぞれsampleテーブルの列A、列Bを指定します。 このとき、3行目のデータ(a3とb3)を表示するときだけテキストボックスを太枠にすることは可能でしょうか? もしくは、他のテキストボックスと見栄え的に変えることは可能でしょうか? よろしくお願いします。

  • Access テキストボックスの通貨型

    お世話になります。 フォームA   リストボックスがあり、その中の項目として[金額]があります。   そこに表示しているソースのテーブルの[金額]フィールドは通貨型です。 フォームB   [金額]テキストボックスがあり、書式は通貨にしてます。 フォームAのリストボックス上でダブルクリックするとフォームBが開き、フォームAで選択した金額がフォームBの[金額]テキストボックスにコピーするようにしてます。 Forms[フォームB]![金額] = Forms![フォームA]![リスト].Column(3) 金額のコピー自体は問題なくできておりますが、通貨型になりません(\やカンマが付かない)。 但し、テキストボックスに直接数字を入力すると通貨型で表示されます。 フォームAをダブルクリックするときに、 Forms[フォームB]![金額] = Format(Forms![フォームA]![リスト].Column(3),"\\#,###")とすれば、表示上はOKなのですが、このようにしないと通貨型でコピーは出来ないのでしょうか。 ご教授の程、宜しくお願い致します。

  • Access2013 不一致抽出

    不一致抽出方法についてご教授いただけないでしょうか? 下記のようなテーブルA、テーブルBがありお互いの差を抽出結果として表示したいと思っています。 比較したいテーブルが複数ある為抽出フォーム側のテキストボックスにて抽出条件を入れたいと思っています。 フォーム1のテキストボックス1とテキストボックス2に比較したいテーブルA、テーブルBと入力したいと考えています テーブルA JANコード    品名  店番 4912345678901 品名1  00001 4923456789012 品名2  00001 4934567890123 品名3  00001 4945678901234 品名4  00001 テーブルB JANコード    品名  店番 4912345678901 品名1  00002 4934567890123 品名3  00002 4945678901234 品名4  00002 4956789012345 品名5  00002 抽出結果 JANコード    品名  店番 4923456789012 品名2  00001 4956789012345 品名5  00002

  • Accessのサブフォームから値を参照する方法について

    いつも拝見させて頂いております。 現在、Access97のフォームに以下のようなコントロールを配置しています。 1.フォームにサブフォームAを配置  1-1.サブフォームAにテキストボックスAを配置(入力用) 2.フォームにサブフォームBを配置  2-1.サブフォームBにテキストボックスBを配置(表示用) ※フォームは一つです。 <実現したい事> サブフォームA内のテキストボックスAの値をサブフォームB内の テキストボックスBに表示したいのですが、なかなかうまくいきません。 サブフォームA内のテキストボックスAの値を変更するとサブフォームB内の テキストボックスBも変更するようにしたいので、テキストボックスBの ControlSourceに[Form]![フォーム]![サブフォームA].[Form]![テキストボックスA] としましたが実現できませんでした。 どのような方法をとれば実現できるでしょうか? 宜しくお願いします。

  • Accessのフォームにて

    Accessの配達管理のフォーム(表形式、ある条件にて抽出済み)にて ●日付 ●顧客ID  ・  ・ ●配達者CD 上記のフィールドがあるとします。 このフォームのヘッダー部分に非連結のテキストボックスA、Bを作成し、 テキストボックスAに配達者CDを入力すると、 テキストボックスBに配達者名が表示される。 フッター部分に「印刷」ボタンを作成し、これをクリックすると、 フォーム一覧の配達者CDにヘッダー部分のテキストボックスAの 配達者CDが入力されるというシステムを作りたいのですが、 テキストボックスAの配達者CDを参照させて、テキストボックスBに 配達者名を表示させるというのがうまくいきません。 テーブルにて、配達者マスタ ●配達者CD ●配達者名 は、作成しています。 よろしくお願いいたします。

  • アクセスVBA テキストボックス入力値からの参照

    マイクロソフトアクセス初心者です。 現在、アクセスでデータベースを作成しています。 2つのフォーム(フォーム(1)、フォーム(2))、2つのテーブル(入力情報、マスタ)、2つのテーブルをもとにした1つのレポートを作成しています。 『フォーム(1)』のテキストボックスAに入力された値を、Dlookup関数で『フォーム(2)』のテキストボックスBに数値を参照しています。 『フォーム(2)』のテキストボックスに表示された値を、『フォーム(2)』に設置されたコマンドボタンをクリックすると、VBAで『テーブル入力情報』のフィールドAに入力されるようにしています。フィールドAについてのマスタとなるテーブルが『テーブルマスタ』です。 リレーションシップを設定せず、ただ単に値を入力することは出来るのですが、レポートを作成するにあたって、『テーブル入力情報』と『テーブルマスタ』のフィールドAに1(テーブルマスタ)対多(テーブル入力情報)のリレーションシップを設定したいと思っています。 リレーションシップを設定し、テキストボックスBに表示された数値を『テーブル入力情報』に入力する際、『テーブルマスタ』から該当するデータを選択して『テーブル入力情報』に入力されるようにしたいと思うのですが、現状では、リレーションシップを設定すると、入力値が真っ白になってしまい、レポートにも入力したデータが反映されません。 ちなみに、入力する際はフィールドA=Me.テキストボックスBのようにしています。 何か良い解決策がありましたら、是非教えていただけませんでしょうか? 分かり難い文章かと思いますが、どうぞ宜しくお願い申し上げます。

  • 【Access】 テキストボックスへの入力

    毎回お世話になっております。 現在、フォームの編集をしております。 フォームはヘッダー部分と詳細部分に分かれており、ヘッダーの部分に「テキストボックスAに取引先コードを入力し、検索ボタンを押すと、同ヘッダーのテキストボックスBに該当する取引先情報が表示される」仕組みになっています。 詳細の部分には、新規の顧客情報を入力するテキストボックスが並んでおり、各レコードをテーブルに保存できるようになっています。 現在解決したい点なのですが、ヘッダーのテキストボックスBに表示された取引先情報を、ボタンを押す等の何らかの方法で、詳細の中のテキストボックスCに入力されるような仕組みが出来れば、と考えております。 (テキストボックスCのコントロールソースを変更する方法も考えましたが、各項目のソースはクエリとリンクしているので、この方法は止めました。) アイディアをお持ちの方、アドバイスを頂けますと幸甚です。 宜しくお願いします。

専門家に質問してみよう