アプリ版:「スタンプのみでお礼する」機能のリリースについて

宜しくお願いします。

フォームを開いたとき、カレンダコントロールの日付を今日にしたいのですが
カレンダ.Value = Date
カレンダ = Date
カレンダ = Now()

では実行時エラーにはなりませんが、結果はフォームを設定した時のままです。

A 回答 (6件)

う~ん、なんか変なごみでも引っ付いてたのかな?



> 空のデータベースを立ち上げて、フォームにカレンダコントロールを配
> 置しカレンダ=Date でうまく動作しました。CPの日付を変更してもつい
> てきてくれます。

Access2000で、SR?(サービスリリース)は当ててあります?

この回答への補足

白状します。
今年の3月に電源部を取り替えさせてほしいとメーカよりリコールが入り、初期化して送り、帰ってきたPCにSetUpを施したのですが、メールとWebが効かなくなり、色々ためしているうちにOFFICEをインストールするとだめになることが分かり、Word、Excel、Access、PowerPoint、Publisherと一つづつメールの動作をチェックしながらインストールしました。これだけ使えればいいかとこれ以上の原因究明はしておりません。
従いましてSR-1、SR-2は未着手です。

この為でしょうか今回のシステム開発中に何度かトラブルが発生しました。
何れもインポートあるいは、新規作成でフォームとコードのコピー&ペースト解決しました。

・レポートで期待通りに並んでくれない
・読み取り専用でしか開かない
・実行段階で変数に値が代入できない(エラーメッセージ)
・コーディングして書き込みしようとすると、もとへ戻すのアイコンをクリックしたような動作をし、読み出した時まで戻ってしまう

補足日時:2007/06/08 22:45
    • good
    • 0

#2です^^;



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

この回答への補足

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

補足日時:2007/06/07 20:43
    • good
    • 0
この回答へのお礼

空のデータベースを立ち上げて、フォームにカレンダコントロールを配置し
カレンダ=Date でうまく動作しました。CPの日付を変更してもついてきてくれます。

そこで、この空のデータベースに、テーブル・フォーム等全てインポート(外部データの取り込み)すると期待通りの動作です。
何なんでしょう 取りあえず一件落着です。

ご丁寧なお付き合い有難うございました。

お礼日時:2007/06/08 06:20

>[可視]はハイ になっています。


じゃどっちでもできます

>カレンダの次に[.]で色々候補がリストされますが、
>Today,Date,Nowの何れもリストの中にありません。
TodayはActiveXのメソッドですからそこには出てきません自分で打ち込んでください
カレンダーコントロールを選択してF1を押すとヘルプが表示されます
詳しくはそれを見てください

Dateはステートメントですよ[.]は関係ありません
VBAエディタでDate()と関数を書くとDateに書き直されるはずですが
    • good
    • 0
この回答へのお礼

一件落着しました。
詳しくはDxak様宛てのお礼をご覧ください。

ご丁寧なお付き合い有難うございました。

お礼日時:2007/06/08 06:25

難しく考えないでもいいのでは、下のどちらでもできますよ



Private Sub Form_Load()
Me.Calendar4.Value = Date ’値を代入
Me.calendar5.Today    ’コントロールのメソッドを使用
End Sub

ただし、[可視]を[いいえ]にしていると値の代入はできません
その場合はメソッドのほうを使ってください
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/07 15:59

う~ん、理由は思い出せないのですが・・・



カレンダーコントロールのValueは、文字型だったと思います
だから、
> カレンダ.Value = Date

カレンダ.Value = CStr(Date)
と、記載して使用してます

予想なんですが・・・Variant/Date型という型が特異な型でNull型を受取るのですが、汎用性を取るためには、Date型とするべきだったが・・・Null型が使用できないためやもえずString型にした物だと・・・資料を探したんですが、見つかりませんね^^;

型は、自動的に変更されるはずなんで問題は無いはずなのですが・・・念のため確認ください^^;

また、#1さんの言うように、どこのイベントに書くかによって、動きも違うので、気をつけてね~^^
私の場合は、フォームを開いた際、最後に発生する「レコード移動時」に書く事が多いです
理由としては、レコードを移動したときにも反応するので、多重に稼動、記載する必要がなくなるので、そこに書いてあるだけなんですけどね^^;

カレンダコントロールは連結コントロール?非連結コントロール?連結もとのフィールドの既定値を持ってきてるって可能性も無くは無いんだけど・・・

この回答への補足

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

補足日時:2007/06/07 15:33
    • good
    • 0

フォームの「読み込み時」イベントで


代入してください。

この回答への補足

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

補足日時:2007/06/07 09:50
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/08 06:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!