• ベストアンサー

ACCESS2000で カレンダコントロール の日付の規定値

宜しくお願いします。 フォームを開いたとき、カレンダコントロールの日付を今日にしたいのですが カレンダ.Value = Date カレンダ = Date カレンダ = Now() では実行時エラーにはなりませんが、結果はフォームを設定した時のままです。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.6

う~ん、なんか変なごみでも引っ付いてたのかな? > 空のデータベースを立ち上げて、フォームにカレンダコントロールを配 > 置しカレンダ=Date でうまく動作しました。CPの日付を変更してもつい > てきてくれます。 Access2000で、SR?(サービスリリース)は当ててあります?

shinkami
質問者

補足

白状します。 今年の3月に電源部を取り替えさせてほしいとメーカよりリコールが入り、初期化して送り、帰ってきたPCにSetUpを施したのですが、メールとWebが効かなくなり、色々ためしているうちにOFFICEをインストールするとだめになることが分かり、Word、Excel、Access、PowerPoint、Publisherと一つづつメールの動作をチェックしながらインストールしました。これだけ使えればいいかとこれ以上の原因究明はしておりません。 従いましてSR-1、SR-2は未着手です。 この為でしょうか今回のシステム開発中に何度かトラブルが発生しました。 何れもインポートあるいは、新規作成でフォームとコードのコピー&ペースト解決しました。 ・レポートで期待通りに並んでくれない ・読み取り専用でしか開かない ・実行段階で変数に値が代入できない(エラーメッセージ) ・コーディングして書き込みしようとすると、もとへ戻すのアイコンをクリックしたような動作をし、読み出した時まで戻ってしまう

その他の回答 (5)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.5

#2です^^; えっと・・・ > カレンダコントロールは連結コントロール?非連結コントロール? > 連結もとのフィールドの既定値を持ってきてるって可能性も無くは > 無いんだけど・・・ の部分の話は、どうでしょうか? テーブルのフィールドに既定値設定してあって、その値を読み込んできてるって可能性も捨て切れないのですが・・・ 単純に、テーブルのフィールドと連結してあるようでしたら、テーブルのフィールドの規定値に =Date() と、設定してみては、どうでしょう? あと、記憶が薄いのですが・・・ カレンダコントロールで、値は入ってるが表示が変!?って言うのもあった記憶があるのですが カレンダ.Refresh と、再描画してみてどうですか?

shinkami
質問者

お礼

空のデータベースを立ち上げて、フォームにカレンダコントロールを配置し カレンダ=Date でうまく動作しました。CPの日付を変更してもついてきてくれます。 そこで、この空のデータベースに、テーブル・フォーム等全てインポート(外部データの取り込み)すると期待通りの動作です。 何なんでしょう 取りあえず一件落着です。 ご丁寧なお付き合い有難うございました。

shinkami
質問者

補足

コントロールソース蘭が空白ですから、非連結です。 Refreshも効き目ありません。 変なものを見つけました。カレンダを右クリックするとcalendaオブジェクトの先に別のプロパティがあり、このプロパティの中に日付項目が有りました。この日付が表示されています。またこの場所に直接入力も出来ます。 ここをうまくコントロールすれば良いような氣がしますが、単純には解決しません

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>[可視]はハイ になっています。 じゃどっちでもできます >カレンダの次に[.]で色々候補がリストされますが、 >Today,Date,Nowの何れもリストの中にありません。 TodayはActiveXのメソッドですからそこには出てきません自分で打ち込んでください カレンダーコントロールを選択してF1を押すとヘルプが表示されます 詳しくはそれを見てください Dateはステートメントですよ[.]は関係ありません VBAエディタでDate()と関数を書くとDateに書き直されるはずですが

shinkami
質問者

お礼

一件落着しました。 詳しくはDxak様宛てのお礼をご覧ください。 ご丁寧なお付き合い有難うございました。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

難しく考えないでもいいのでは、下のどちらでもできますよ Private Sub Form_Load() Me.Calendar4.Value = Date ’値を代入 Me.calendar5.Today    ’コントロールのメソッドを使用 End Sub ただし、[可視]を[いいえ]にしていると値の代入はできません その場合はメソッドのほうを使ってください

shinkami
質問者

お礼

対応ありがとうございます。 [可視]はハイ になっています。 カレンダの次に[.]で色々候補がリストされますが、Today,Date,Nowの何れもリストの中にありません。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

う~ん、理由は思い出せないのですが・・・ カレンダーコントロールのValueは、文字型だったと思います だから、 > カレンダ.Value = Date を カレンダ.Value = CStr(Date) と、記載して使用してます 予想なんですが・・・Variant/Date型という型が特異な型でNull型を受取るのですが、汎用性を取るためには、Date型とするべきだったが・・・Null型が使用できないためやもえずString型にした物だと・・・資料を探したんですが、見つかりませんね^^; 型は、自動的に変更されるはずなんで問題は無いはずなのですが・・・念のため確認ください^^; また、#1さんの言うように、どこのイベントに書くかによって、動きも違うので、気をつけてね~^^ 私の場合は、フォームを開いた際、最後に発生する「レコード移動時」に書く事が多いです 理由としては、レコードを移動したときにも反応するので、多重に稼動、記載する必要がなくなるので、そこに書いてあるだけなんですけどね^^; カレンダコントロールは連結コントロール?非連結コントロール?連結もとのフィールドの既定値を持ってきてるって可能性も無くは無いんだけど・・・

shinkami
質問者

補足

対応ありがとう御座います。 これで[解決]と思ったのですが、 カレンダ.Value = CStr(Date)をセットして、デバッグモードで追いかけると このループにはくるのですが素通りという感じで何の変化もありません。 Access2000ではダメなのでしょうか

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

フォームの「読み込み時」イベントで 代入してください。

shinkami
質問者

お礼

一件落着落着です。 有難うございました。

shinkami
質問者

補足

対応感謝します。 イベントからどのように入ますか(式ビルダ、マクロビルダ、コードビルダ) 自分はコードビルダから入り Private Sub Form_Load() DoCmd.Maximize [カレンダ] = Date [対象日] = [カレンダ] [対象月] = [カレンダ] - Day([カレンダ]) + 1 End Sub としましたが、質問の通りです。 今日はDateで、いいんですよね。Now()も試して見ましたがダメです。

関連するQ&A