![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
既存のフォームは項目が多く一目でどれがどこにあるかわかりにくいので、使用していない項目は隠して欲しい、隠した項目もいざ必要となった時には見れるようにして欲しいと言われました。
そこで私は、使用してない項目は別のフォーム(以降:隠れフォームと記述)にして、既存のフォームにコマンドボタンを設けて、クリックすればたどり着けるようにしました。
ところが、隠れフォームへのコマンドボタンを押すと表示されるデータは既存フォームに表示されているデータであって欲しいのですが、隠れフォームのデータは一番最初のデータのままです。
既存フォームと隠れフォームを一緒に移動させる方法はないのでしょうか?
隠れフォームのテーブルは既存フォームと同じです。
隠したい項目だけを選んでクエリを作成してそこから隠れフォームを作成しました。
ツールボックスのサブフォームは使っていません。
どのような方法をとるとよいでしょうか?
どなたかお知恵を貸してくださるようお願いいたします。
No.2ベストアンサー
- 回答日時:
そのテーブルに、主キー(もしくは重複なしのインデックスつきの)フィールドはありますか?
もしあるのでしたら、
> 隠したい項目だけを選んでクエリを作成してそこから隠れフォームを作成しました。
とのことなので、そのクエリに、「既存フォームで現在表示中のレコード」に絞り込む条件を
追加してやるのが一番簡単だと思います。
1)隠れフォームのレコードソースにしているクエリをデザインビューで開く
2)主キー(または重複なしのインデックスつきの)フィールドがまだ追加されていない場合は
それをドラッグ&ドロップなどで追加
3)上記フィールドの『抽出条件:』欄に、以下のような式を入力
・既存フォームの名前が「フォーム1」、上記フィールドが「ID」の場合:
[Forms]![フォーム1]![ID]
・既存フォームがサブフォームを持ち、データ表示をそのサブフォームで行っている場合:
(メインフォームが「フォーム1」、サブフォームコントロール(→「ソースオブジェクト」として
指定しているフォーム名ではないので注意)が「サブ1」、上記フィールドが「ID」として)
[Forms]![フォーム1]![サブ1]![ID]
4)クエリを保存して閉じる
・・・以上です。
なお、フォーム1が開いていない状態でこの隠れフォームを開くと、「[Forms]![フォーム1]![ID]」
(または「[Forms]![フォーム1]![サブ1]![ID]」)の入力を求めるパラメータダイアログが表示される
ようになります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
※蛇足※
Husky2007さんの後者案を、375kさんのフォームに現状のまま適用した場合、「現在レコード
ソースに設定済のクエリ」がいったん読み込まれた後に、再度SQL文がレコードソースとして
設定されることになるように思います。
もしそちらを採用されるのでしたら、隠れフォームのレコードソースは削除した上で、
Private Sub Form_Open(Cancel As Integer)
If Len(Me.OpenArgs & "") = 0 Then
Me.RecordSource = "クエリ1"
Else
Me.RecordSource = Me.OpenArgs
End If
End Sub
とされるのがよいのではないでしょうか。(現在のレコードソースが「クエリ1」だったとして)
お返事が遅くなって申し訳ありませんでした。
教えていただいた内容を参考に自分が使っている.mdbに適するようにアレンジしてみます。
ありがとうございました。
No.1
- 回答日時:
Access の質問なんだろうか・・・。
多分、そうだと仮定して・・・。1、リンクを利用する。
Private Sub コマンド_詳細フォームを開く_Click()
On Error Resume Next
DoCmd.OpenForm "tab1 full", , , "[ID]=" & Me![ID]
End Sub
2、OpenArgs を利用する。
Private Sub コマンド_詳細フォームを開くII_Click()
DoCmd.OpenForm "tab1 full", , , , , , "SELECT * FROM tab1 WHERE ID=" & Me.ID
End Sub
tad1_full:
Private Sub Form_Open(Cancel As Integer)
If Len(Me.OpenArgs & "") > 0 Then
Me.RecordSource = Me.OpenArgs
End If
End Sub
前者はフィルターがかかります。
後者は、1レコードだけを検索・表示します。
そういう意味では、後者がお勧めです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(IT・Webサービス) 必要なデータを定形資料に取り込む方法 3 2022/08/26 09:29
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(データベース) accessでのフォームの連携について 2 2022/06/14 00:45
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Access(アクセス) アクセス フォームの自動入力 1 2023/03/20 00:18
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
ACCSESS2013VBA フォームのレコ...
-
Access 複数フォームを...
-
サブフォームでのダブルクリッ...
-
ACCESS サブフォーム MAX関数...
-
(ACCESS)条件に応じて、テキ...
-
Access2000 サブフォームのReco...
-
アクセスで サブフォームの表...
-
AccessのDoCmd.ApplyFilterの使...
-
access サブフォームにリストを...
-
access 直前まで開いていたフォ...
-
サブフォームでフィルタしたデ...
-
アクセスでサブフォームのレコ...
-
複数項目でのサブフォームとの...
-
Accessでサブフォームの中の並...
-
サブフォームの切り替え方を教...
-
アクセス2003 - レコード追...
-
【ACCESS2000】 サブフォーム...
-
Accessのサブフォーム上で常に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
Accessのサブフォームから値を...
-
Access 複数フォームを...
-
ACCSESS2013VBA フォームのレコ...
-
(ACCESS)条件に応じて、テキ...
-
Access2000 サブフォームのReco...
-
access サブフォームにリストを...
-
アクセスでサブフォームのレコ...
-
サブフォームが見えなくなる。
-
サブフォームのデータを保存す...
-
AccessのFormのみをスクリーン...
-
レコードセットで得た結果をサ...
-
Accessでのフォーム表示がうま...
-
サブフォームの切り替え方を教...
-
2回目に画面のレコードセットの...
-
ACCESSでfilterとorderbyについて
-
Accessで、一覧からクリックし...
-
Accessのサブフォーム内で連続...
-
googleフォームでインストール...
おすすめ情報