質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

2回答

15088閲覧

Access フォーム コントロールソース 指定方法

Yoshikun_0945

総合スコア224

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2019/02/22 12:44

編集2019/02/23 10:53

###Accessのフォームに設置したテキストボックスのコントロールソース指定方法について
フォームに設置したテキストボックスに、フォームの『レコードソース』に指定したテーブルとは別のテーブルのフィールドの値を表示させる場合はコントロールソースどのように記述すればよろしいですか?
フィールドの最初から最後までの全てのデータを表示させたいです。

ちなみに、テキストボックスのコントロールソースに

=[T03_社員データ]![社員番号]

と指定したら#Nameというエラーが出ました。
フォームのレコードソースには

T04_社員データ内訳

を指定しています。

###テーブルの中身
T03_社員データは

社員番号金額取引番号
2220100,00099999
222510,00099999
2240500,00099999
22541,000,00099999

こちらのテーブルは、各社員ごとの1日の取引合計金額を示し、取引番号は合計と明細を区別するため『99999』を入れてあります。
※社員番号順に並んであります。
T04_社員データ内訳は

社員番号金額取引番号
2220100,00099999
222510,00099999
2240500,00099999
22541,000,00099999

最初はT03をコピーしたためこの状態となっております。
取引明細をフォームで編集した後のT04がこちらでございます。

社員番号金額取引番号
222050,00012347
222510,00015403
2240100,00098451
22541,000,00053029
222050,00023451
2240400,00016752
###フォーム
フォームウィザード⇒T04の全フィールドを選択し、表形式のフォームを作成しました。
フォームにて
社員の1日の取引が1件の場合は、金額と取引番号の2か所を変更し、
社員の1日の取引が2件以上の場合は、まず、金額と取引番号を修正し、
2件目以降の社員番号・金額・取引番号を新しいレコードに入力していきます。
フォームで変更した内容は、T04のレコードに反映するようになっています。
フォームの現在の画面【取引修正前】がこちらです。
社員番号取引番号金額
:--::--:--:
222099999100,000
22259999910,000
224099999500,000
2254999991,000,000

※取り込む元データと修正入力との関係で、フォームでは取引番号と金額を逆に表示させております。
表形式のフォームを下記のように変更させたいです。
左3列はT04を編集可能状態で表示し、右2列はT03の全レコードの金額と取引番号を編集不可状態で表示させたいです。
|社員番号|取引番号|金額||社員番号|金額|
|:--:|:--:|--:||:--:|--:|
|2220|99999|100,000||2220|100,000|
|2225|99999|10,000||2225|10,000|
|2240|99999|500,000||2240|500,000|
|2254|99999|1,000,000||2254|1,000,000|

※すべてテキストボックスに表示させる予定です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

テーブルT03_社員データT04_社員データ内訳の関係はどうなってますか。
名前から推測するに一対多の関係だと思われますが、どうでしょうか。

まずは、2つのデータにはなんらかの関係があるはずですので、それを明確にしましょう。
そして、それをそれをどのように表示したいのかを明確にしましょう。

現状のフォームは帳票フォームですか、単票フォームですか。
また、テキストボックスに「フィールドの最初から最後までの全てのデータを表示させたいです。」とは具体的にどのような表示をイメージしてますか。

他テーブルのデータを表示するといっても、Lookupを使うのか、クエリにして2つのテーブルを結合するのか、それとも、サブフォームを使うのがいいのか、サブデータシート表示がいいのか、・・・・いろいろあります。

とりあえず、データの関係を分析して、どのように表示するのか、を明確にすることから始めましょう。

分からなければ、現状のテーブルなのデータ例と、その表示例を提示されるといいでしょう。

投稿2019/02/23 06:53

編集2019/02/23 06:54
hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

フォームのレコードソースでない場合は、直接参照はできません。
DLookup()関数などで経由します。

=DLookup("社員番号","T03_社員データ","Key=" & [条件値])

投稿2019/02/22 12:52

sazi

総合スコア25184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問