
Access2003です。
フォームにサブフォームを設置し、直接テーブルを表示させています。
このサブフォームのテーブルのある行をダブルクリックしたら
その行のデータを他のフォームのオブジェクトにセットしたいのですが
行や行のデータ全てを取得は出来るのですが、サブフォームのイベントがEnterとExitしかなくて、イベント発生が出来ません。
フォームのダブルクリックでXとYを見て…と思ったのですがサブフォーム上ではフォームのダブルクリックイベントが発生せず。
サブフォームのテーブルはユーザーがソートする事もあるのでベタに上にテキストボックス等を置く事は出来ません。
どうにかダブルクリックで動作させる方法はありませんでしょうか?
No.2ベストアンサー
- 回答日時:
> どうにかダブルクリックで動作させる方法はありませんでしょうか?
前回の質問でも触れたように(下から2つ目の段落)、
http://oshiete1.goo.ne.jp/qa4952701.html
> サブフォームの「コントロールとしてのイベント」は「Enter」と「Exit」の2つしかありませんが、
> ソースオブジェクトに指定したフォーム(上記の例では「SF1」)側で、各種イベント(Open
> その他)が実行
されます。
ですので、No.1の方の回答にもあるように、『既定のビュー』(フォームのプロパティシートの
『書式』タブにあります)を「データシート ビュー」にしたフォームを、サブフォームのソース
オブジェクトにすれば、テーブルと同様の表示で、かつ、ダブルクリック等のイベントを発生
させることができます。
(但し、テーブル/クエリでは「サブデータシート」を表示できますが、これには非対応です)
【重要】
「フォームのダブルクリックイベント」は、データシートの外側(データが表示されていない、
グレーの背景部分)をダブルクリックした時にしか発生しません。
『データシート内でのダブルクリック』でデータを取得するレコードを指定する場合は、面倒
でも「各コントロールのダブルクリックイベント」に処理を記述してやる必要がありますので
ご注意下さい。
(以下のように、他のフォームへの代入を行う部分を、イベントとは別のSubとして作成して、
各コントロールではそれを呼び出す形にすると、コードを組むのも修正/管理するのも
比較的楽だと思います)
なお、ダブルクリックした時点で、コントロールの値は「現在のレコードのもの」しか参照
できないので、x,yなどで「どのレコードが選択されたか」の判定は不要です。念のため(汗)
Private Sub 社員コード_DblClick(Cancel As Integer)
Call FromAtoB
End Sub
Private Sub 氏名_DblClick(Cancel As Integer)
Call FromAtoB
End Sub
Private Sub FromAtoB()
With Forms!フォームB '別フォームの名前が「フォームB」の場合
!社員コード = Me!社員コード
!氏名 = Me!氏名
'(以下、データを転記する処理を必要な追加)
End With
End Sub
回答ありがとうございます。
直接で出来ないかと思っていたのですが、それは無理なのですね。
No.1の方の回答でテーブル仕様で作成しようとしてだめだったのですが
>、『既定のビュー』(フォームのプロパティシートの
『書式』タブにあります)を「データシート ビュー」にしたフォーム
で出来ました!
検索で「テキストうんぬん」と出てくるのもこれですね!
一度出来てしまえば色んなイベントをいじれそうです。ありがとうございました!
No.1
- 回答日時:
> フォームにサブフォームを設置し、直接テーブルを表示させています
これを変更すればできると思います。
手順)
・フォームウィザードで、そのテーブルを対象に表形式でフォームを作成します。
・ダブルクリックなどのイベントを設定します。
・動作等確認します。
・フォームのプロパティで、既定のビューをデータシートに変更し、保存します。
・親フォームのサブフォームコントロールのプロパティで、「ソースオブジェクト」に先ほど作成し保存したフォームを指定します。
※データのやり取りは、サブフォームコントロール名を経由して行います。
サブフォームコントロール名を「FSUB」とした場合、
親から子には(親側で実行)
Me.FSUB.Form.子テキストボックス = Me.親テキストボックス とか、
子から親には(子側で実行)
Me.Parent.親テキストボックス = Me.子テキストボックス とか
Forms("親フォーム名").親テキストボックス = Me.子テキストボックス など
で、どうなりますか。
回答ありがとうございます。
>これを変更すればできると思います。
あ、そうなのですね。このまま何とか出来ないかと思ってましたが、変える必要があるのですね。
早速やってみようとしたら
>・フォームウィザードで、そのテーブルを対象に表形式でフォームを作成します。
のとこで「フィールドが多すぎて作成出来ません」となってしまいました;;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
このQ&Aを見た人はこんなQ&Aも見ています
-
Access サブフォームでの選択行の取得
その他(データベース)
-
レコードをダブルクリックすると別フォームでひらく
Access(アクセス)
-
サブフォームのイベント取得
Visual Basic(VBA)
-
-
4
Accessのサブフォーム
Access(アクセス)
-
5
Accessでセレクタをダブルクリックで別フォームで詳細表示
Access(アクセス)
-
6
Access でレコードセレクタが押されたときのイベントは?
その他(プログラミング・Web制作)
-
7
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
8
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
9
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
-
10
ACCESS VBAサブフォーム(DATA SHEET)の値の取得方法
Visual Basic(VBA)
-
11
access テキストボックスの値取得
Access(アクセス)
-
12
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
13
「フォームを作成できませんでした」
Access(アクセス)
-
14
サブフォームを非表示させる方法を教えて下さい
その他(Microsoft Office)
-
15
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
16
アクセスでサブフォームのレコードを取得したい。
Access(アクセス)
-
17
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
18
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
19
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
20
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 2010 分割フォームのフ...
-
access サブフォームにリストを...
-
Accessのサブフォームから値を...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
ACCSESS2013VBA フォームのレコ...
-
MS Accessでクエリの結果をフォ...
-
(ACCESS)条件に応じて、テキ...
-
初心者です。accessで請求書を...
-
サブフォームが見えなくなる。
-
アクセスでサブフォームのレコ...
-
Access2000について
-
アクセス2000を使っての顧...
-
サブフォームでのダブルクリッ...
-
アクセス2003 - レコード追...
-
サブフォームの切り替え方を教...
-
複数項目でのサブフォームとの...
-
保存されない理由は?accessvba
-
Accessでタブの設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
access サブフォームにリストを...
-
(ACCESS)条件に応じて、テキ...
-
ACCSESS2013VBA フォームのレコ...
-
Access2000 サブフォームのReco...
-
Accessでサブフォームの中の並...
-
サブフォームが見えなくなる。
-
AccessのFormのみをスクリーン...
-
googleフォームでインストール...
-
初心者です。accessで請求書を...
-
サブフォームでのダブルクリッ...
-
Accessで、一覧からクリックし...
-
アクセスでサブフォームのレコ...
-
サブフォームのデータを保存す...
-
Accessのサブフォームから値を...
-
コンボボックスで選択実行後、...
-
アクセスで サブフォームの表...
-
サブフォームの切り替え方を教...
おすすめ情報