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

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

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

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

Q&A

解決済

3回答

10383閲覧

Access フォームのコンボ ボックスに値が表示できない

K.Kawamoto

総合スコア5

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

コンボボックス

GUIの要素のひとつです。Listboxと同様にいくつかのうちひとつを選択する機能だが、Comboboxの場合は選択されたもののみがデフォルトとして表示される。

0グッド

0クリップ

投稿2020/10/11 01:04

コンボ ボックス「受講者数」の設定は、「値リスト」で下記の様にしています。
受講者数

フィールド右の下矢印でのプルダウン リストからの取得/表示は、問題なくできます。

問題は、この同じフィールドに、VBAで値を代入しても表示されません。

ちなみに、すぐ隣の「日程形式」のフィールド(下記)では、「値集合タイプ」は「テーブル/クエリ」ですが、リストからの取得/表示、VBAでの代入も表示も問題ありません。
日程形式

VBAのコードは、
Me!日程形式 = w_nittei
Me!受講者数 = W_受講者数
で、w_nittei、W_受講者数 には、正しい値が入っています。

以上

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

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

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

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

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

sazi

2020/10/11 01:22 編集

「受講者数」のVBAでの設定コードを追記して下さい Me!受講者数 = W_受講者数 だけなら、W_受講者数の値は? また、値を設定しているイベントは何ですか? 画面を開いた時、コントロールソースの値は表示されていますか?
K.Kawamoto

2020/10/11 01:58

余り適切には答えられないと思うのですが。 ① W_受講者数の値は? やろうとしているのは、講座についてのアンケートの集計です。 例えば、10人の受講者がいた場合、最初のアンケートの入力の時受講者数=10を 入力すれば、これは、プルダウン リストから「受講者数」フィールドに取得できます。 2枚目以降は、w_受講者数(=10)に入れて置き、受講者数」フィールドにvbaで代入 して表示しようしています。これが表示されないのが問題です。 従って、W_受講者数の値は最初に取得した値(=10)です。 ② 値を設定しているイベントは何ですか? 適切に答えられないのですが・・・ 入力された時とか、フォームがレコードを保存した時とか??? 自分で一番疑っているのは、「受講者数」の「書式」のAttributeあたりですが??? よろしくお願いします。
sazi

2020/10/11 03:06 編集

W_受講者数というのは変数ですよね。 変数ではなく、Me!受講者数=10としたら表示されますか? 抜粋ではなく、もう少し全体が分かる内容のコードを質問に追記して下さい。 もう一つ > 画面を開いた時、コントロールソースの値は表示されていますか? についても、お答えください。
hatena19

2020/10/11 03:52

とりあえずその代入しているコードのあるプロシージャ全体(Private Sub から End Sub)までを提示してくれませんか。 画像のようにコンボボックスを設定して、 Private Sub コマンド5_Click() Me.受講者数 = 5 End Sub としたら当たり前ですが、ちゃんと5と表示されました。
K.Kawamoto

2020/10/11 04:05

お返事、ありがとうございます。 ① Me!受講者数=10としたら正しく出ると思います。 と言うのは、「受講者数」とは別に、新たに「テキストボックス」をフォームに作り Me!テキストボックス = W_受講者数 としたら、正しく「10」が表示されました。 ② 「 画面を開いた時、コントロールソースの値」の表示法がはっきりしないので、 VBA でブレークポイントで止め、コントロールソースのテーブルで値を確かめ ましたら、ちゃんと入っています。 よろしくお願いします。
sazi

2020/10/11 04:26 編集

出ると思いますではなく、確認をされて下さい。 エラーが出ているけど無視されている状態かもしれませんので。 そういった意味で、コードも質問に追記して下さいと言っているのですが。 コントロールソースのテーブルに値が入っているなら、画面を開いた時にその値が表示されるはずです。 もちろん、値を設定する処理が開くときなどで行われていると上書きされてしまいます、のでその場合はその旨で報告して下さい。
K.Kawamoto

2020/10/11 05:52

① 確認しました。Me!受講者数=10としたら正しく出ます。 ② 画面を開いたら、コンボボックスなので表示は”0”で入力待ち状態です。
sazi

2020/10/11 06:13

「Me!受講者数=10」としたら表示されて、「Me!受講者数 = W_受講者数」としたら表示されないという事なら、W_受講者数の値の影響ですね。 ただ、それも変ですし、やっぱり必要な情報としては実装しているコードです。
guest

回答3

0

自己解決

実は、理屈は分かっていないのですが、実現したい機能は実現しました。
従いまして、解決ではないのですが、他に書く場所が分からないので、
このに書きます。
下記で、たまたま実現しました。
「デザイン」タブの中に「四角」(似たようなので「直線」)というのが
ありますが、全く偶然ですが、データを表示できる「四角」が見つかりましたので、
その「四角」を、問題のコントロール フィールドまで広げたらOKでした。???
この「四角」見た目だけと思っていたのですが、何か他にも機能あるようです。
分かってる方、教えて下さい。

投稿2020/10/20 07:00

K.Kawamoto

総合スコア5

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

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

0

VBA

1 Me!受講者数 = W_受講者数 2 Me.Requery

としてはいかがでしょうか。

投稿2020/10/17 01:39

kitasue

総合スコア314

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

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

0

こんばんは。
プロパティのコントロールソースを空白にすると、vbaで代入できますか?

投稿2020/10/15 12:17

kanda_ryuichi

総合スコア6

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

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

K.Kawamoto

2020/10/17 00:15

kanda_ryuichi 様 ご連絡、ありがとうございました。 お申し越しの件ですが、問題のデータ フィールド、コンボ173の コントロール ソース、今は「受講者数」ですが、これはフォームの ベースになっているテーブルのデータ フィールドに結びついているので、 空白(NULL)にしてしまうと入力が機能しなくなると思うのですが??
kanda_ryuichi

2020/10/17 17:57

プロパティのコントロールソースを空白にしても、vbaで代入出来なかった、ということですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問