<Access97 カレンダーコントロールから日付選択>
どうも、三流プログラマーのKen3です。 今回は、 カレンダーコントロールを使用して、 日付の選択と共通フォームの作成にチャレンジしてみたいと思います。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba095.lzh にdb97-095.mdb(Access97版)が保存されています。 何かの参考となれば、幸いです。/* * 1.今回のキッカケ */
掲示板に下記の質問をもらいました。 --------------- >カレンダーコントロールを使用して、 >日付を入力することにしました。 >しかし、今日の日付をクリックしても入力できません。 --------------- そんな質問をいただいたので、 カレンダーコントロールを使ってみます。/* * 2.カレンダーコントロールのイベントを探ってデータセット */
Access97の例ですが、 フォームの新規作成後、 挿入・ActiveXコントロール・カレンダーコントロール8.0を選択します。 ( ) おっ、それらしいのが表示されましたね。 プロパティを見ると、 イベントもあるし、いろいろと操作できそうですね。 おっ、それらしいのが表示されましたね。 プロパティを見ると、 イベントもあるし、いろいろと操作できそうですね。 ~~~~~~~~ なんて、言ってました。 一番簡単な利用方法は、 印刷指示画面なんて画面があった時、 日付の入力・表示エリアを作成 [txt印刷日]と名前を付けました、 カレンダーコントロールを配置 [OLE_Calendar]と名前付け その後、 [OLE_Calendar](カレンダーコントロール) の イベントで、 me!txt印刷日 = me!OLE_Calendar.Value と、入力用のテキストボックスへデータを代入でOKだろう ※考えが、甘かったんだけど(笑)
Private Sub OLE_Calendar_Updated(Code As Integer) Me!txt印刷日.Value = Me!OLE_Calendar.Value '更新時にテキストボックスへ代入 MsgBox "aaa2" End Sub |
Private Sub OLE_Calendar_AfterUpdate() Me!txt印刷日.Value = Me!OLE_Calendar.Value '更新時にテキストボックスへ代入 MsgBox "なぜプロパティに載っていない_AfterUpdateが・・・" End Sub |
Private Sub txt印刷日_AfterUpdate() 'テキストボックスの更新後にカレンダーの値も変更したいので If IsDate(Me!txt印刷日) Then '日付と認識できる? Me!OLE_Calendar.Value = Me!txt印刷日 Else MsgBox "日付として認識できませんよ・・・" End If End Sub |
Function INPUT_HIZUKE_Form() As String Dim stDocName As String Dim stLinkCriteria As String INPUT_HIZUKE_RET = "" 'リターン値を初期化 'ダイアログモードでフォームを開く stDocName = "日付選択" DoCmd.OpenForm stDocName, , , stLinkCriteria, , acDialog 'リターン値をセットして、関数を終わる 'フォーム側でpublic変数にセットされていることを信じて(笑) INPUT_HIZUKE_Form = INPUT_HIZUKE_RET End Function |
Private Sub btn決定_Click() 'グローバル変数にリターン値をセット INPUT_HIZUKE_RET = CDate(Me!OLE_Calendar.Value) 'フォームを閉じる DoCmd.Close End Sub |
Private Sub btn中止_Click() 'グローバル変数にリターン値をセット INPUT_HIZUKE_RET = "" 'リターン値は中止なので空文字にする 'フォームを閉じる DoCmd.Close End Sub |
Private Sub btn開始_Click() Dim strWORK As String strWORK = INPUT_HIZUKE_Form() '日付の入力フォームを起動 If strWORK <> "" Then '入力されていたら Me!txt開始日 = strWORK 'フォームのリターン値をセット End If End Sub |
Private Sub btn終了_Click() Dim strWORK As String strWORK = INPUT_HIZUKE_Form() '日付の入力フォームを起動 If strWORK <> "" Then '入力されていたら Me!txt終了日 = strWORK 'フォームのリターン値をセット End If End Sub |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]