• ベストアンサー

Access2000:フォームのテキストフォームに値を代入Part2

前回も質問して、また違った改良が入りそうなので質問させていただきます。 マクロに「フォームを開く」を登録し、テキストフォーム値を入れることをこれまで手動でしてきました。 今回VBAを使って自動フォーム登録したいと考えています。 上記マクロをVisualBasic変換し、新たなマクロにこのVisualBasicをプロシージャとして登録させます。 DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal 変換後上記のようなフォームを立ち上げるプログラムが生成されました。上記フォームのテキストフォーム部に値を代入させたいばあいどういう記述をしてあげればよろしいでしょうか? テキストフォームの名前は”年月”です。 Me![年月]=date ではうまくいきません。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.4

質問者の作業を再現してみました。 '------------------------------------------------------------ ' マクロ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 と、やりたいのでしょう!

fm0606
質問者

お礼

ありがとうございます。 まさにそのとおりでございます。 つたない質問文で申し訳ございませんでした。

その他の回答 (4)

  • maaaa
  • ベストアンサー率14% (4/27)
回答No.5

No.3さん、補足ありがとうございます あとから、ふっと、思ったのですが date、とあるので そのフォームに日付のフィールド(項目)があって 手で、いちいち、入力せずとも、今日の日付を 入れたい、のでしょうか これだと、問題のフォームをデザインで開き その日付フィールドを選んだら、右クイック そこに、プロパティがあるから選んでください でたら、データタブを選ぶと 規定値、という項目があります ここに、 =date() といれてください、(カッコ忘れず) これで、あたらしくレコードを入れようとすると  日付がはいります

回答No.3

う~ん、No2さんが言ってることがVBAでの記述なんだけどなぁ… 開いたフォームのプロパティをあけると、 「フォームを開く時」とかってところありますよね? そこに Me![年月]=date と書くと出来ますよ。 この方法がNo2さんも言ってるVBAの方法です。

  • maaaa
  • ベストアンサー率14% (4/27)
回答No.2

ご指摘のヶ所からは、フォームを開くこと、と 特定のレコードを開く、ことしか、条件付けできません フォームを開いた時に特別の値をいれたいのであれば そのフォームをデザインビューで開いて ’開く時’というプロパティを使ってください 開く得→コードビルダー、で、例の関数の枠組み が出ますから、 年月=date [年月]=date どちらでもいいと思います。 また、年月、というコントロールは非連続フィールド でないと、ダメかも知れません

fm0606
質問者

補足

すみません、意味がよくわかりません。 あくまでもVBA(プログラム)上で行いたいので フォームのプロパティに埋め込むことは 考えておりません。

回答No.1

Me![年月]=date はどこに書かれていますか? Meと言っているのでフォームの「立ち上げ時」とかに書くとうまくいきますょ。

fm0606
質問者

補足

今までは DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal の下の行に Me![年月]=date と書いていました。 立ち上げ時というのは、どの部分のことでしょうか?

関連するQ&A

専門家に質問してみよう