ここ最近備忘録はAccessVBAネタが多いですね。仕事で書類の検索データベースの構築をお願いされたのですが、もう5年近くまったく触っていなかったのでいろいろ忘れていて大変です。
また、いつお願いされるかも分からないので、引き続き思い出したことも含めて備忘録に残しておこうと思います。
今回実現したいこと
検索結果一覧のサブフォームに表示されているレコードセレクタをダブルクリックしたときに、項目の詳細フォームを表示するようにしたい。
検索フォームの設定
サブフォームのレコードセレクタをクリックしたとき[F詳細]フォームを開く。
Private Sub Form_DblClick(Cancel As Integer) '開く DoCmd.OpenForm "F詳細" End Sub
F詳細フォームの設定
F詳細フォームが開くときフォーム[F検索]のサブフォーム[F検索!tb_検索結果_サブフォーム]の管理noと書類管理テーブルの管理noが一致するデータを[F詳細]フォームに表示させる。
Private Sub Form_Open(Cancel As Integer) '変数の設定とか Dim rs As DAO.Recordset Dim db As Database 'テーブルのセット Set db = CurrentDb '稟議noをキーにデータを抽出 mySQL = "SELECT * FROM 書類管理 WHERE 管理no = '" & Forms!F検索!tb_検索結果_サブフォーム.Form!管理no & "'" Set rs = db.OpenRecordset(mySQL, dbOpenDynaset) 'テキストボックスに抽出したデータ格納 txt_管理no = rs!管理no txt_書類名 = rs!書類名 txt_書類概要 = rs!書類概要 txt_備考 = rs!備考 End Sub
思い出すにはまだまだ時間がかかりそう・・・。