- ベストアンサー
Access2000:フォームのテキストフォームに値を代入Part2
前回も質問して、また違った改良が入りそうなので質問させていただきます。 マクロに「フォームを開く」を登録し、テキストフォーム値を入れることをこれまで手動でしてきました。 今回VBAを使って自動フォーム登録したいと考えています。 上記マクロをVisualBasic変換し、新たなマクロにこのVisualBasicをプロシージャとして登録させます。 DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal 変換後上記のようなフォームを立ち上げるプログラムが生成されました。上記フォームのテキストフォーム部に値を代入させたいばあいどういう記述をしてあげればよろしいでしょうか? テキストフォームの名前は”年月”です。 Me![年月]=date ではうまくいきません。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
質問者の作業を再現してみました。 '------------------------------------------------------------ ' マクロ1 ' '------------------------------------------------------------ Function マクロ1() On Error GoTo マクロ1_Err DoCmd.OpenForm "フォーム1", acNormal, "", "", , acNormal Forms("フォーム1").Controls("日付") = Date マクロ1_Exit: Exit Function マクロ1_Err: MsgBox Error$ Resume マクロ1_Exit End Function と、やりたいのでしょう!
その他の回答 (4)
- maaaa
- ベストアンサー率14% (4/27)
No.3さん、補足ありがとうございます あとから、ふっと、思ったのですが date、とあるので そのフォームに日付のフィールド(項目)があって 手で、いちいち、入力せずとも、今日の日付を 入れたい、のでしょうか これだと、問題のフォームをデザインで開き その日付フィールドを選んだら、右クイック そこに、プロパティがあるから選んでください でたら、データタブを選ぶと 規定値、という項目があります ここに、 =date() といれてください、(カッコ忘れず) これで、あたらしくレコードを入れようとすると 日付がはいります
- CHIPDALE77
- ベストアンサー率21% (47/223)
う~ん、No2さんが言ってることがVBAでの記述なんだけどなぁ… 開いたフォームのプロパティをあけると、 「フォームを開く時」とかってところありますよね? そこに Me![年月]=date と書くと出来ますよ。 この方法がNo2さんも言ってるVBAの方法です。
- maaaa
- ベストアンサー率14% (4/27)
ご指摘のヶ所からは、フォームを開くこと、と 特定のレコードを開く、ことしか、条件付けできません フォームを開いた時に特別の値をいれたいのであれば そのフォームをデザインビューで開いて ’開く時’というプロパティを使ってください 開く得→コードビルダー、で、例の関数の枠組み が出ますから、 年月=date [年月]=date どちらでもいいと思います。 また、年月、というコントロールは非連続フィールド でないと、ダメかも知れません
補足
すみません、意味がよくわかりません。 あくまでもVBA(プログラム)上で行いたいので フォームのプロパティに埋め込むことは 考えておりません。
- CHIPDALE77
- ベストアンサー率21% (47/223)
Me![年月]=date はどこに書かれていますか? Meと言っているのでフォームの「立ち上げ時」とかに書くとうまくいきますょ。
補足
今までは DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal の下の行に Me![年月]=date と書いていました。 立ち上げ時というのは、どの部分のことでしょうか?
お礼
ありがとうございます。 まさにそのとおりでございます。 つたない質問文で申し訳ございませんでした。