OSは98SEでACCESS2000を使用しています。
Aという帳票フォームとBという単票フォームがあります。
A帳票フォームには製造指示日、原料番号、原料種類、原料重量という項目があり、データが表示されています。
B単票フォームには製造指示日、原料番号、原料種類、原料重量、開始日時、労務時間等A帳票フォームの詳細があります。
A帳票フォームのデータ1をクリックすると、Bという単票フォームに移動してデータ1の詳細が表示される様にしたくていろいろやってみようと思ったのですが、どの様にしたらよいかさっぱりわかりません。
どなたか教えていただけないでしょうか。
簡単なVBAはわかりますが、やさしく教えていただけるとうれしいです。
どうぞよろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
コマンドボタンのウィザードを使いましょう。
1.A帳票フォームの詳細セクションにコマンドボタンを配置しする。
2.(ウィザードが立ち上がる)
3.フォームを開くを選択しB単票フォームを選ぶ
4.特定のレコードを表示するを選択し
5.どのカラムで関連付けるか選択する。
生成されたコマンドは以下のようになります。
------------------------------
Private Sub コマンド1_Click()
On Error GoTo Err_コマンド1_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "B単票"
stLinkCriteria = "[XXXXX]=" & "'" & Me![XXXXX] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_コマンド1_Click:
Exit Sub
Err_コマンド1_Click:
MsgBox Err.Description
Resume Exit_コマンド1_Click
End Sub
---------------------------------------
storkさん回答ありがとうございます。
また、わかりやすい説明で助かりました。
早速使わせていただきました。
自分の中で、さっぱりわからないこともあり難しく考えていたので、
Storkさんの回答をいただいたときは、えっ?これでできるの?というかんじでしたf^^;
本当に助かりました、今後ともよろしくお願いいたします。
ありがとうございました。
No.3
- 回答日時:
補足します。
サブフォームの作り方
・新規作成からフォームウィザードで必要なテーブルを選択する。
・必ず単票形式で作成する。
・サブフォームをデザインビューで開けて、フォームのプロパティ
の中から書式→既存のビューで「データシート」を選択します。
メインの作り方
・新規作成→デザインビューで新たにメインフォームを作成。
・デザインビューでツールボックスからサブフォーム/サブレポート
を選択し貼り付けるサブフォームのプロパティでデータのソースオ
ブジェクトを先に作ったサブフォーム名を選択する。
原料番号が単票形式だと1テキストボックスだけになるのでプロパ
ティのイベントのダブルクリック時に↓を記述する。
Private Sub 番号_DblClick(Cancel As Integer)
Dim lngID As Long
lngID = Me.原料番号.Value 'フォームの原料番号フィールドの値を変数に格納
DoCmd.Close acForm, "フォームA" 'Aのフォームを閉じます。
DoCmd.OpenForm "フォームB", acNormal, , "原料番号=" & lngID
'フォームBを開く際にフォームAの原料番号とフォームBの原料番号を「=」にする。
End Sub
これでWクリックした原料番号がフォームBに返されます。
上記の記述は応用が利きます。ので色々使って見てください。
もし間違っていたら追記してください。
補足ありがとうございます。
初心者な私にはちょっとわからないところがあったのですがとても参考になりました。
今回は急いでいることもあり、storkさんの方を使わせていただこうと思います。
また、教えていただいたやり方を自分なりに勉強させていただき、後々活用させていただこうと思ってます。
本当にありがとうございました。
No.2
- 回答日時:
詳しい状況がわからないので
簡単な検索閲覧方法を記述します。
1.帳票フォームにフォームフッターを右クリックから選択して付
けます。そこにコンボボックスを付け原料番号を検索キーとして
プロパティの『データ』の値集合ソースを「...」から選択し原料
番号「元テーブル名」に設定します。
『書式』の列数を2にして、列幅を1cm;2cmにして、リスト幅を4cmに
します。
↑でコンボボックスが完成し選択も出来るはずです。
まだ連結していませんので↓
Private Sub 移動先_AfterUpdate()
DoCmd.ShowAllRecords
DoCmd.GoToControl "原料番号"
DoCmd.FindRecord Me![移動先], acAnywhere, , acDown
End Sub
フォームを「デザインビュー」に戻し、[移動先]コンボボックスの
[更新後処理]イベントプロシージャに記述します。
以上が簡単な検索方法です。
この後に前に記述した↓
>Dim lngID As Long
>lngID = Me.id.Value 'フォームのidフィールドの値を変数に格納
>DoCmd.Close’Aのフォームを閉じます。
>DoCmd.OpenForm "テストB", acNormal, , "id=" & lngID
> 'OpenFormの第4引数に抽出条件をセットします。
>解説するとidというテキストBoxを付けてあげてキーとします。
>それを元に同じ内容のBのFormを開くことが出来ます。
を連動させると次フォームが開けます。
(例)
Private Sub 移動先_AfterUpdate()
Dim lngID As Long
DoCmd.ShowAllRecords
DoCmd.GoToControl "原料番号"
DoCmd.FindRecord Me![移動先], acAnywhere, , acDown
'↑必要があればのお話です。
lngID = Me.原料番号.Value 'フォームの原料番号フィールドの値を変数に格納
DoCmd.Close acForm, "フォームA" 'Aのフォームを閉じます。
DoCmd.OpenForm "フォームB", acNormal, , "原料番号=" & lngID
End Sub
正しい方法では無いと思いますが、最初に覚えた方法なので・・・ご了承ください。
上記の方法を転用すると仮定してクリックした居場所の「クリック時イベント」に
記述すれば使えるかと・・・思います。
もしそれ以上をご希望ならばサブフォームを使用する方法が効率的
だと思います。
(例)サブフォームを作る方法
1.TBL・クエリをデータシートで作成しておきます。
2.新しいフォームをデザインビューから作成しツールボックスから
サブフォーム/サブレポートを選択し最初に作成したサブフォームを
選択します。
3.検索キーもしくはサブフォーム内のクリック動作で次フォームに
移動するのが良いと思います。
※ただし、説明がだいぶ長くなりますのでご希望であれば追記して下さい。
注意)自信はありませんので・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Access(アクセス) マイクロソフト アクセス2021のフォームビュー作成でレイアウトを帳票形式から単票形式にあとから変更 1 2023/03/03 10:56
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript 助けてください!スパムメールがとんでもなく大量に届きます。 3 2023/08/10 16:32
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
googleフォームでインストール...
-
サブフォームが見えなくなる。
-
Access 複数フォームを...
-
Access2000 サブフォームのReco...
-
access サブフォームにリストを...
-
サブフォームでのダブルクリッ...
-
ACCESS サブフォーム MAX関数...
-
保存されない理由は?accessvba
-
Accessのサブフォームから値を...
-
複数項目でのサブフォームとの...
-
(ACCESS)条件に応じて、テキ...
-
ACCSESS2013VBA フォームのレコ...
-
単票フォームと帳票フォームを...
-
コンボボックスで選択実行後、...
-
2回目に画面のレコードセットの...
-
アクセス2000の終了時にバック...
-
Accessで、サブフォームのある...
-
Access ウィンドウサイズの変更
-
Accessのコンボボックスに連動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
ACCSESS2013VBA フォームのレコ...
-
Accessのサブフォームから値を...
-
access サブフォームにリストを...
-
(ACCESS)条件に応じて、テキ...
-
Accessで、一覧からクリックし...
-
Access2000 サブフォームのReco...
-
サブフォームが見えなくなる。
-
サブフォームでのダブルクリッ...
-
AccessのFormのみをスクリーン...
-
googleフォームでインストール...
-
2回目に画面のレコードセットの...
-
初心者です。accessで請求書を...
-
ACCESSでfilterとorderbyについて
-
ACCESSでサブフォームの...
-
アクセスで サブフォームの表...
-
レコードセットで得た結果をサ...
-
サブフォームのデータを保存す...
おすすめ情報