Accessでフォーム上にサブフォーム(データシート)を作成すると、
新規レコード欄にも自動的に連結フィールドの値が表示されます。
このサブフォームをメインフォーム上に作らずに、
コマンドボタンクリック時にあるフィールドが一致する(上記で言う連結フィールド)データを表示したサブフォーム(データシート)を開くかたちにしたいのですが、そうすると当然ながら新規レコード欄には連結フィールドの値は表示されません。
これをメインフォーム上にサブフォームを作った時と同じように、新規レコード欄に連結フィールド値を表示させるにはどうしたら良いでしょうか?
サブフォームを開く段階で新規レコードに結合フィールドの値を(VBAで)入力する事も考えましたが、そうするともしそこにデータを入れるつもりじゃなくても1つのレコードとしてデータが残ってしまいます。
メインフォーム上に作ったサブフォームなら、新規レコードに結合フィールドの値は表示されているものの、その他のフィールドにデータを入力しなければ1つのレコードとしてデータが残ることはありません。
こういう事が可能かどうかわかりませんが、ご存知でしたら教えてくださいませ。
よろしくお願いします!
No.1ベストアンサー
- 回答日時:
> そうするともしそこにデータを入れるつもりじゃなくても1つのレコードとして
> データが残ってしまいます。
コントロールに直接代入する代わりに、DefaultValue(プロパティシート上では
『データ』タブに『既定値』として表示されます)への代入にすれば、ほぼメイン
フォーム上にサブフォームとして作った場合と同様になるかと思います。
例えば、コマンドボタンのクリック時で処理するなら、以下の通り:
Private Sub コマンド0_Click()
'データ入力用のフォーム(名前はPF1と仮定)を開く
DoCmd.OpenForm "PF1"
'呼び出し元の『ID』テキストボックスと同じ値を、上記フォームの『ID』
'テキストボックスの既定値(DefaultValue)に設定
Forms!PF1!ID.DefaultValue = Me!ID
End Sub
・・・以上です。
できました!!
クリック時、 DefaultValue に設定してみました。
IDはテキスト型ですが、ハイフン(-)を含む数字で入力していたので、ハイフンをマイナスと認識されて勝手に計算され、新規レコードに変な数字がでました。
何の数字か分からずいっとき悩みましたが、="Forms!メインフォーム!ID"とダブルクォーテーションで囲むことで解決しました。
プロパティのデータタブの規定値に =Forms![メインフォーム]![ID] を設定する方でもできました。
(何故か Me!ID にすると Name? が出てダメでした。)
"規定値"にすれば良かったんですね。
本当に助かりました!勉強になります。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードを保存するコード ア...
-
ACCESS起動時に所定フォームを...
-
Accessでのデータ消滅に...
-
フィルタ後のフォームの件数の...
-
ACCESSでフォームを使って、テ...
-
新規レコード行を非表示にしたい
-
Access 「このレコードを保存す...
-
Access2010、値を入力したら自...
-
アクセス データの競合を非表...
-
アクセスの自動保存解除はでき...
-
Access 更新キャンセルするには?
-
アクセスでフォームビューがみ...
-
アクセスでの警告について教え...
-
レコード削除時に(サブ)フォー...
-
ACCESSフォームのリストボック...
-
Access2002_メソッドまたはデー...
-
Access 連結フィールド値を自...
-
Access 帳票フォームでカレント...
-
Accessで一件の新規レコードの...
-
Accessでフォーム上に 直前の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードを保存するコード ア...
-
ACCESSでフォームを使って、テ...
-
アクセスでフォームビューがみ...
-
新規レコード行を非表示にしたい
-
フィルタ後のフォームの件数の...
-
Accessでレコードの保存をせず...
-
アクセスの自動保存解除はでき...
-
AccessVBA RecordSourceのリセ...
-
Accessでフォーム上に 直前の...
-
レコード削除時に(サブ)フォー...
-
ACCESSフォームのリストボック...
-
Access:フォームプロパティ「...
-
Accessで上の行を自動でコピー...
-
Access レコード移動時イベント...
-
accessのクエリで、該当するデ...
-
ACCESSのクエリで抽出したデー...
-
ACCESS起動時に所定フォームを...
-
Accessで新しいレコードに規定...
-
Access 「このレコードを保存す...
-
Access 帳票フォームでカレント...
おすすめ情報