[Access2013 vba]
■したいこと
サブフォームのレコードの中から、一レコードだけをチェックボックスなどで選択したいのですが、どのようにしたら出来ますでしょうか。
複数行選択は出来ないようにしたいです。
選択したのち、メインフォームの選択ボタンを押すと、そのレコードのID番号を取得して、呼出元のフォームのIDフィールドに代入したいです。
■画面の流れ・・・
Aフォーム → 帳票型Bフォームで、レコードを選び「開く」ボタンを押す→
B 'メインフォームとCサブフォーム)が開く
Cサブフォームのレコードをチェックボックスにチェックを入れて選択する
B ' メインフォームの「選択」ボタンを押すと B ' メインフォームと、その前のBフォームが閉じて
Aフォームに戻り、AフォームのIDフィールドに選択したIDが格納される。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
揚げ足とりの意図では無い旨、あらかじめお断りしたうえで。
> うまく行きません。
「どう」うまく行きませんか?
「コピペしたので補足の記述が一字ー句違わない」なら、
[MyID]と[optSelect]の間はカンマではなく ! であるべき。
NzでNull対策すれば、iifの条件式そのものが結果として欲しい値。
iifもthenの値、elseの値、それらを区切るカンマもカッコも不要です。
画面の流れではフォームが3つになりましたが、必要?
以下、AフォームのIDフィールドと内容が見える状態で進めて下さい。
> Aフォーム → 帳票型Bフォームで、レコードを選び「開く」ボタンを押す→
Bが子フォームですので、「レコードを選び」の段階で
親フォームであるAフォームのIDフィールドへ値が入りますか?
3つのフォームなら、親・子・孫です。代入のイベントをどこに書いてますか?
孫フォームでクリックしたoptSelectのIDが親フォームに届いてますか?
まずはこれを確認してみて下さい。
#タブレットの手書き入力なのでしんどい。
#夕食の支度したら戻って来ます。
この回答への補足
Aフォーム→ Bフォーム → BフォームとサブフォームC
1) Aフォームで同じレコードにあるcmdBtnを押すと、acDialogモードでBを開きます。
※ここで、(1)のイベントPGは、中断
2) Bの帳票画面で、どのレコードに移動するか決めます。
→各レコードにある「選択」ボタンを押す
→そのレコードのBのIDをグローバル変数にセット
→イベントが走り、次のB+Cサブの一体型画面が開く
3)B+Cサブの BのForm_Load処理で
→グローバル変数のBのIDを取得し
→Me.RecordsetCloneで、該当のレコードをFindFirstして、NoMatch=Falseだったら、そのレコードに移動する
4) B+CのフォームのCのサブフォームの帳票で、ラジオボタンを押すと
そのレコードのC帳票のIDをBのメインフォームのテキストボックスに格納
5) Bの選択ボタンを押すと、Bのテキストボックスに保存されたCのIDを取得して
グローバル変数にセット
6) (2)の画面を閉じ、次に、(4)のB+Cのフォームを閉じる
7) (1)のcmdBtnイベント処理の中断したところから再開し
AのフォームのIDフィールドに、グローバル変数のCのIDをセットして終わり
です。
でも、これですね、何も選択しなかった場合の事をまだ考えてません。
でもでも、やはりラジオボタンがうまく動きません。。。
No.3
- 回答日時:
すみません。
!の件は間違い。一覧表サブフォームのoptSelectの値は
[=Nz([親フォーム]![ID])=Nz([ID]) ] ←右辺はレコードセットのID
この回答への補足
ご回答ありがとうございます。
>一覧表サブフォームのoptSelectの値は
>[=Nz([親フォーム]![ID])=Nz([ID]) ] ←右辺はレコードセットのID
これは、コントロールソースに書き込むのですか?
・レコードセットのIDとは、私はこのBメインとCサブのフォームのCの選択したレコードのIDの事だと理解しましたが。
・親フォームのTextBoxIDにセットしたいのです。
なんとかうまくしたいのですが、また、ラジオボタンの値がクリックしてもなにも代わりません。
どうかお知恵をよろしくお願いします。
ご回答ありがとうございました。
そちらの回答を待っていましたが、色々と試してみてうまくいきました。
こちらのリンクにある「非連結のチェックボックスでレコードを選択する」というやり方を参考にして、ラジオボタンの処理が完成しました。↓
http://hatenachips.blog34.fc2.com/blog-entry-28. …
No.1
- 回答日時:
チェックボックスは複数選択のためのもの。
単一選択なら、オプション(ラジオとも)ボタンを利用します。
でも結構面倒です。
メイン(以下「親」)フォームとサブ(以下「子」)フォーム間で
テキストボックス参照と更新が必要。
子フォームでクリック行のID列値を親フォームのIDテキストボックスへ更新。
(方法は参考URLを参照して下さい)
子フォーム側は、レコードに定義されていないオプション列を設け、
値は自レコードのID列値と親フォームのIDテキストボックス値との比較結果とします。
比較により不一致ならFalseで「未選択」、一致ならTrueで「選択」になります。
参考URL:http://www.happy2-island.com/access/gogo03/capte …
この回答への補足
ご回答ありがとうございます。
チェックしたラジオボタンだけONにするというのは、恐らく、そのレコードソースに式を入れるのかと思い、以下のような式を入れてみましたが、うまく行きません。
「=IIf([Forms]![親フォーム]![txbSelectedID]=[MyID],[optSelect]=-1,[optSelect]=0)」
MyIDとは、子フォーム側のチェックを入れたところの主キーのIDです。
どのようにすれば良いでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
ACCSESS2013VBA フォームのレコ...
-
Access2000 サブフォームのReco...
-
Access 複数フォームを...
-
アクセスで サブフォームの表...
-
サブフォームのデータを保存す...
-
ACCESSでfilterとorderbyについて
-
Accessでサブフォームの中の並...
-
(ACCESS)条件に応じて、テキ...
-
サブフォームでのダブルクリッ...
-
AccessのFormのみをスクリーン...
-
Access2000、これはいったい・...
-
Accessのサブフォーム内で連続...
-
初心者です。accessで請求書を...
-
Access 検索フォーム
-
Access レイアウト変更したサブ...
-
Accessで、サブフォームのある...
-
コンボボックスで選択実行後、...
-
複数項目でのサブフォームとの...
-
サブフォームが見えなくなる。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
ACCSESS2013VBA フォームのレコ...
-
Access2000 サブフォームのReco...
-
(ACCESS)条件に応じて、テキ...
-
access サブフォームにリストを...
-
サブフォームが見えなくなる。
-
Accessのサブフォームから値を...
-
初心者です。accessで請求書を...
-
2回目に画面のレコードセットの...
-
サブフォームでのダブルクリッ...
-
アクセスで サブフォームの表...
-
アクセスでサブフォームのレコ...
-
googleフォームでインストール...
-
サブフォームのデータを保存す...
-
AccessのDoCmd.ApplyFilterの使...
-
サブフォームでフィルタしたデ...
-
Accessで、サブフォームのある...
-
AccessのFormのみをスクリーン...
おすすめ情報