カレンダーフォームの操作についてヘルプIII

このQ&Aのポイント
  • カレンダーフォームの操作についてご指導をお願いします。カレンダーマスターとして使用する際に、日付のコメント入力がリアルタイム表示でできない不具合が発生しています。
  • カレンダーフォーム「カレンダーマスター」でのコメント入力やヒントテキストの設定において、日付の表示が正常に動作しない問題が発生しています。デザインビューでの操作についてもアドバイスをお願いします。
  • カレンダーフォームの操作方法に関してご相談です。現在、カレンダーマスターフォームのヒントテキストを入力すると、本日の日付に戻らず、入力した日付が表示されたままになってしまいます。この問題の解決策をご教示いただけないでしょうか。
回答を見る
  • ベストアンサー

カレンダーフォームの操作についてヘルプIII

カレンダーフォームの操作についてご指導をお願いします。 Access2007 カレンダーコントロール12.0 やりたいこと 開いたカレンダーコントロールフォーム「フォーム名:カレンダーマスター」の任意の日付にコメントを入力、リアルタイム日付表示状態でメモ確認カレンダーとして使いたい。 やったことと「不具合」 「カレンダーマスター」をデザインビューで開いて「プロパティーシート」その他タブの「ヒントテキスト」行に記入する。しかし、起動時にはカレンダーが本日の日付になていましたが、将来の日付を選択してヒントテキストを入力後にフォーム「カレンダーマスター」へ戻すと、本日の日付に戻らず入力した日付表示で本日の日付に戻りません。入力操作(カレンダーマスター → コメント入力日を選択 → デザインビュー → ヒントテキスト入力 → フォームに戻す) おねがい フォーム「カレンダーマスター」を開いた状態でコメントの入力が可能な方法かあればアドバイスをお願いします。可能でなければデザインビューで開いて「ヒントテキスト」行に記入してフォーム「カレンダーマスター」に戻した時に、本日の日付に戻せる方法を教えて下さい。 アドバイスをお願いします。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.6

>「エラーが表示されました」 おそらくスペルの違いでしょう Private Sub Form_Load()の中身はPrivate Sub Form_Activate()の中身と同じです。 エラーの出てないPrivate Sub Form_Activate()の中身をコピペしてみて下さい。 フォームを開いたとき(Load時は)はActivateでもあるので Private Sub Form_Load()のモジュールは必要ないようですね削除してもよいかも フォームのデザインビューでデザインリボンの右側のコードの表示をクリックすると添付のような画面になります。 左の蛍光マークのあるところはボックス等イベントを発生させるリスト、 右の蛍光マークのあるところはイベントのリストです。 左のリストの一つを選び、右のイベントリストの一つを選ぶとPrivateで始まる最初の行と End Subで終わる最後の行が表示され、この間にコーディングします

eokwave
質問者

お礼

有難うございます。ご面倒をお掛けしました。 道筋を示していただきましたので「自分に足らない知識領域を認識」、ご指導のポイントを確認しながら「知識の蓄積で知識の集約」実現できる様に進めてまいります。物事には「一足飛びには到達できない」ものがあると感じましたので、chayamatiレベル11様に「この件で」これ以上のご面倒はお掛けすることは、失礼あり「私には」出来ません。勝手ながら一旦、締めさせて頂く(わがまま)をお許し下さい。材料は全て揃えていただきましたので、分かる方なら出来て当たり前だと思います。ベストアンサーで締めさせていただきます。ありがとうございました。

その他の回答 (5)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.5

>「Me.Calendar4 = Date+1(明日)」頂きましたが、何処にどの様に記述すれば実現できるのでしょうか。 前回の回答に追加しますが「Calendar4」とは別名のテキストボックスにします。 Private Sub Form_Load() Me.Calendar4 = Date  Me.Calendar3 = Date+1 '翌日 このシングルコーテーション以降はメモ書きです Me.Calendar2 = Date+7 '1週間後 済みません Date+1 とアドバイスの誤り見付けられましたね End Sub Private Sub Form_Activate() Me.Calendar4 = Date  Me.Calendar3 = Date+1 '翌日  Me.Calendar2 = Date+7 '1週間後 End Sub この機会にメインルーチンとサブルーチンにつて 参考URLによりますと 「サブルーチン(英: subroutine)は、コンピュータプログラミングにおいて、プログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの(メインルーチン)と対比して「サブルーチン」と呼ばれる。サブプログラム (subprogram) と呼ばれることもある。また、「サブ」をつけずに「ルーチン」と呼ぶこともある。」 とありますが、ここでは メインルーティン:イベント(きっかけ)で起動する。末尾にイベント名が付加されている。 サブルーチン:他のルーチンより起動する、使用目的は複数ルーチンで同じ処理があったり、ルーチン内の意味的なまとまりを示すためにサブルーチン化し、全体を見易くします。 今回の例では「Private Sub Form_Load()」と「Private Sub Form_Activate()」の内容は同じです。 この同じ内容を「日付初期化RTN」とサブルーチン化します。 Private Sub Form_Load() 日付初期化RTN() End Sub Private Sub Form_Activate() 日付初期化RTN() End Sub Private Sub 日付初期化RTN() Me.Calendar4 = Date  Me.Calendar3 = Date+1 '翌日 Me.Calendar2 = Date+7 '1週間後 End Sub >docmd.迄入力すると候補のリスト・・・」とありますが、差し支えなければ記入の例をご伝授頂けませんでしょうか。 Private Sub マスタ登録_Click() DoCmd.OpenForm "マスタ登録" End Sub の誤りでした。 前回の参考URL http://www.geocities.jp/cbc_vbnet/kisuhen/docmd.html#gotocontorolの最上行にDocmdの目次があります。このどれかを選ぶと、説明文の次に使用例があります。

参考URL:
https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%96%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3
eokwave
質問者

補足

chayamati レベル11様へ 単純に現在と明日以降のコメントの入力について、現状のご報告とアドバイスをお願いしたく思います。 1,マスタフォーム「カレンダーコントロールを張付けてある」のプロパティーのイベントタブ「読み込み時」と 「アクティブ時」に以下の書込を致しました。「エラー表示」がでましたのでご報告致します。 「エラー表示はありません」 Private Sub Form_Activate() Me.Calendar4 = Date Me.Calendar3 = Date + 1 '明日 Me.Calendar2 = Date + 7 '1週間後 End Sub 「エラーが表示されました」 (コンパイラエラー メソッドまたはデータメンバが見つかりません)との表示があります。 Private Sub Form_Load()※黄色マスクがかかっています。 Me.Calendar4 = Date Me.Calendar3 = Date + 1 '明日※この部分に青色マスクがかかリます。念の為この部分を削除するとエラーは発生しないようです。 Me.Calendar2 = Date + 7 '1週間後 End Sub 2,予定表の入力について「今日の時点で明日の予定の入力の場合」 マスターフォームをデザインビューで開いてカレンダーコントロールをアクティブにし、明日の日付をクリックの後にその他タブ「名前」を「Calendar3」にしてからヒントテキストに入力するのでしょうか。実際にやってみましたが、入力済の「Calendar4」今日の予定が、明日の予定「Calendar3」で入力した文言と同じになってしまいました。 勘違いの可能性が非常に高い感じ・・・。再度、ご面倒をおかけしますがご指導願います。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.4

2,本日以降の日付への入力「アクティブな状態で明日の日付をクリックし、デザイ ンフォームにすると本日の日付になる」ができないですが、どこがいけないのでしょ うか。 ・日付の計算はexcelと同じです。  明日は Me.Calendar4 = Date+1  1週間後は Me.Calendar4 = Date+1 II、マスタ登録とラベルボックスについて メニュータブの「ホーム」直下のクリップボード文字横の右下向き「矢印」を選択す ると「マスタ登録と呼ぶラベルボックスを配置」のアイコンと説明文字が現れました 。クリックするとマスターフォームにラベルが張り付きました。ここまではできまし たが。 1,名前を「Calendar4」にすると(このフォームは同じ名前のコントロールがあり ます。・・・・・。と!メッセージダイアログが出まして、名前の変更ができないよ うです。) ・一つのフォーム上のボックス名はボックスの種類が違ってもユニークです。  「Calendar4ラベル」とでもしますか 2,これが重要ですが、「マスタ登録と呼ぶラベルボックスを配置」の利用方法が今 一歩分からないのですが。 ・デザインビューで  [「マスタ登録」ラベルを右クリック]→[イベント]→[クリック時の右端の…]  →[コードビルダ]→[OK]で表示されたコーディングを次のように完成させます Private Sub マスタ登録_Click() DoCmd.OpenForm "マスタ登録" End Sub ※上記コーディングで、半角入力モードでdocmd.迄入力すると候補のリストが表示されます。

eokwave
質問者

補足

ご面倒とは思いますが、アドバイスをお願いしたいと思います。 [I-2] マスターフォームのカレンダーコントロールをアクティブにして、プロパティーシートの「その他」タブのヒントテキストにコメントを入力すると当日の日付で「入力文言」が反映されました。 将来のコメントを残す手法について更にアドバイス「Me.Calendar4 = Date+1(明日)」頂きましたが、何処にどの様に記述すれば実現できるのでしょうか。考えてみましたが発想を展開「老化かも」できませんでした。 アドバイスの記述 ・明日は Me.Calendar4 = Date+1 ・1週間後は Me.Calendar4 = Date+7 [II-2] コマンドボタンを使わずテキストボックスでフォームを開ける「この点は確り理解しました」ことを知りました。末尾コメントに「半角入力モードでdocmd.迄入力すると候補のリスト・・・」とありますが、差し支えなければ記入の例をご伝授頂けませんでしょうか。 Private Sub マスタ登録_Click() DoCmd.OpenForm "マスタ登録(フォーム名)" End Sub 以上ですが、私自身の理解ズレの心配でもありまして、誠に心苦しいんですがご指導をお願いします。 追伸:前のアドバイス「2項目が宿題になっている」がきっかけで「自作データベース(分野別のデータを保存して検索するだけですが)」を手直し「使いやすさが利用に繋がることを確認」する良い機会になりました。有難うございます。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

>アドバイスのVBAをフォーム(マスター)のカレンダー部分(名前:Calendar0)をアクティブにして更新ご処理に記述しましたが、日付は変更されませんでしたl カレンダーフォーム開いた状態で 他のフォームを開くとカレンダーフォームはスリープ状態です。 他のフォームを閉じるとカレンダーフォームはスリープからアクティブなります。 このイベントにVBAを定義します。 結論は開いた時とアクティブになった時の2つのVBAが必要です。 Private Sub Form_Load() Me.Calendar4 = Date  End Sub Private Sub Form_Activate() Me.Calendar4 = Date  End Sub >データベースツールのパフォーマンス最適化で全ての項目設定で実施した これはやらないほうがよろしいかと >今後の使い方として、フォーム(マスター)にコマンドボタンを配して、別の予定表データベース(新たに作成)のフォームを呼び出して管理する方法を検討しています。 コマンドボタンボタンでなくすべてのボックスでイベント処理が出来ます。 例 予定表登録フォームをマスタフォームから呼び出してみましょう マスタフォームにマスタ登録と呼ぶラベルボックスを配置します (ラベルを配置しただけではラベル0という名前です、これを表示名と同じ予定表登録に変更します VBAは Private Sub 予定表登録_Click() DoCmd.OpenForm "予定表登録" End Sub 詳しくは参考URLを参照して下さい >日付にヒントテキストを埋め込む事は可能でしょうか。 ボックスのプロパティーシートのその他タグにあります。 Accessのリボンアイコンに似た動作です

参考URL:
http://www.geocities.jp/cbc_vbnet/kisuhen/docmd.html
eokwave
質問者

補足

chayamati レベル11様 ご報告申し上げます。 I、カレンダーにヒントテキストの入力について 1,マスターフォームを開いてカレンダー部分をアクティブ(名前:Calendar4)にし、プロパティーシートのヒントテキスト欄に記入すると、マスターフォームを開いた時に「本日の日付」ボタンをマウスで撫ぜると記入したコメントが表示されました。”感激です” 2,本日以降の日付への入力「アクティブな状態で明日の日付をクリックし、デザインフォームにすると本日の日付になる」ができないですが、どこがいけないのでしょうか。 II、マスタ登録とラベルボックスについて メニュータブの「ホーム」直下のクリップボード文字横の右下向き「矢印」を選択すると「マスタ登録と呼ぶラベルボックスを配置」のアイコンと説明文字が現れました。クリックするとマスターフォームにラベルが張り付きました。ここまではできましたが。 1,名前を「Calendar4」にすると(このフォームは同じ名前のコントロールがあります。・・・・・。と!メッセージダイアログが出まして、名前の変更ができないようです。) 2,これが重要ですが、「マスタ登録と呼ぶラベルボックスを配置」の利用方法が今一歩分からないのですが。 III、カレンダーコントロールのVBAについて アドバイスの「カレンダーフォーム開いた状態で他のフォームを開くとカレンダーフォームはスリープ状態。」「2つのVBAが必要」の2項目の深い知識を得られたことに感謝いたします。”有難うございます” 申し訳ないですが、ご報告いたしました内容についてアドバイス「ピンポイントヒント」をお願いできますでしょうか。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

こんにちは カレンダーフォームは自作されたフォームの一つですね、認識間違いでした。 カレンダーフォームのデザインビューで次のコード(VBA)を追加してください。 Private Sub Form_Activate() カレンダー日付 = Date End Sub 追伸 1.Access2007ならテキストボックスの書式プロパティーを日付にしておくと  カーソルがこのボックスの上に来た時右端にカレンダー入力アイコンが表示されます 2.フォーム間の参照は参照するフォームの内容が先に確定していなければなりません。 3.ところでカレンダーコントロールはAccess2003迄でそれ以後のヴァージョンでは  機能しなっかった気がしますが

eokwave
質問者

補足

アドバイスを有難うございます。説明不足がありそうです。現状のフォームですが、カレンダーフォームをAccess2007のツールからダウンロードしたものを無地のフォーム(名前:マスター)に貼り付けてあります。その上で、アドバイスのVBAをフォーム(マスター)のカレンダー部分(名前:Calendar0)をアクティブにして更新ご処理に記述しましたが、日付は変更されませんでした。又、カレンダー(Calendar0)を貼り付けてある元フォーム(マスター)のアクティブ時にも記述しましたが、日付は本日日付になりませんでした。 Private Sub Calendar0_Enter() Calendar0 = Date End Sub Private Sub Form_Activate() Calendar0 = Date End Sub 追伸:質問掲載の内容を変更した経緯もあり、アドバイスを頂くタイミングが遅れてしまったようです。自分なりにフォームを開いた時に日付を変更するVBAをWEBで見つけまして、フォーム(マスター)の(読み込み時)に記載しましたところ、フォームを開いた時に本日日付に変更できる様になりました。ご報告します。 Private Sub Form_Load() Me.Calendar4.Value = Date  End Sub 追伸:不具合が発生しました。データベースツールのパフォーマンス最適化で全ての項目設定で実施したところ、開いた時にエラーアラートがでまして、その後にカレンダーが表示される様になりました。但し、VBAを削除してVBAを書き直すとエラーアラートは出なくなりました。 以上ですが、全て当日日付を表示させる内容です。今後の使い方として、フォーム(マスター)にコマンドボタンを配して、別の予定表データベース(新たに作成)のフォームを呼び出して管理する方法を検討しています。二度手間になりますが、日付にコメントを入力するのは難しそうに感じ始めたことが理由ですが、その様に感じています。日付にヒントテキストを埋め込む事は可能でしょうか。言っていることにピント外れがありましたらご指摘下さい。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

自分も興味があり、どなたかの回答を待っていましたが 回答がないので投稿します。見当外れならゴメン >カレンダーフォーム ? 添付画像はAccess2000のActiveXのカレンダーによく似ています。 これと同種のものならボックスの一種です。 何かのイベントで更新可能です。 Private Sub カレンダー_DblClick(Cancel As Integer) カレンダー = Date '本日の日付 End Sub

eokwave
質問者

補足

アドバイスを有難うございます。私の説明不足がありそうです。現状のフォームですが、カレンダーフォーム(Access2007のツールからダウンロード)したものを無地のフォーム(名前:マスター)に貼り付けてあります。その上で、アドバイスのVBAをカレンダー(Calendar0)を貼り付けてある元フォーム(マスター)のダブルクリック時にも記述しましたが、日付をダブルクリックしてもエラーアラートがでます。念の為、日付は本日日付になっていません事でお伝えします。 Private Sub Form_DblClick(Cancel As Integer) カレンダーフォーム マスター = Date '本日の日付 End Sub 追伸:質問掲載の内容を変更した経緯もあり、皆様からのアドバイスを頂戴するタイミングが合わなかった様な気がしています。そこで、自分なりにフォームを開いた時に日付を変更するVBAをWEBで探しましたところ、それらしい記事がありましたので、フォーム(マスター)の(読み込み時)に記入して見ましたところ、フォームを開いた時に本日日付に変更できる様になりました。本日日付でのフォーム表示についてご報告します。 Private Sub Form_Load() Me.Calendar4.Value = Date  End Sub 追伸:不具合が発生しました。データベースツールのパフォーマンス最適化で全ての項目設定で実施したところ、開いた時にエラーアラートがでまして、その後にカレンダーが表示される様になりました。但し、VBAを削除してVBAを書き直すとエラーアラートは出なくなりました。「基礎知識不足かと思いますが思い当たることがあれば教えて下さい」 以上ですが、全て当日日付を表示させる内容です。今後の使い方として、フォーム(マスター)にコマンドボタンを配して、別の予定表データベース(新たに作成)のフォームを呼び出して管理する方法を検討しています。二度手間になりますが、日付にコメントを入力するのは難しそうに感じ始めたことが理由ですが、その様に感じています。日付にヒントテキストを埋め込む事は可能でしょうか。言っていることにピント外れがありましたらご指摘下さい。

関連するQ&A

  • カレンダーフォームの日付をユーザーフォームに登録したい

    ユーザーフォームにいくつかの入力欄としてテキストボックスを作成しました。 その中に日付を入力したい欄があるため同じユーザーフォーム内にカレンダーを作成しました。 このカレンダーをクリックした日付がユーザーフォーム内の任意のテキストボックスに入力されるようにしたいのですが、可能でしょうか? 教えてください。よろしくお願いします。

  • (EXCEL)カレンダーコントロールについて

    (EXCEL2002) カレンダーコントロール、または万年カレンダーをシート上に作成してあり、カレンダーの日付をクリックするとVBAのUserForm1が表示されて UserForm1にはTextBox1(商品名を入力します)とTextBox2(数量を入力します)とCommandButton1(登録と記入してあります)があり、各テキストボックスに入力して登録を押すと、別シートに(日付(A列)は記入してあります)B列、C列にクリックした日付の行に記入されるようにできないでしょうか?    A   B    C  ------------ 1 | 日付 商品名 数量 2 | 1 3 | 2

  • カレンダーについて

    お世話になります。 Web画面でテキストボックスの横にカレンダーのアイコンみたいなのがあってそれをクリックするとカレンダーが表示する入力するフォームをみました。 このような日付入力(カレンダーが表示され、日付をクリックしたらテキストボックスに選択された日付を挿入)がある入力フォームを作成するには一般的、何を使用して作成しているのでしょうか。 JavaScript? PHPで作成しようと思っています。 また参考になるサイトなど、ご存知の方がいましたらアドバイスお願いします。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • access2010の「日付選択カレンダー」

    access2010の「日付選択カレンダー」について、教えてください 1.状況      フォームのテキストボックスを作成し、下記の設定を行いました      書式→をyyyy/mm/dd、日付選択カレンダーの表示→日付 2.教えて欲しい事      アイコンをクリックし、カレンダー操作によりテキストボックスへ設定できますが、      テキストボックスに本日以外の日付(例えば、2020/12/31)を指定し、      カレンダーを起動すると、本日を選択した状態にてカレンダーが表示される      →カレンダーが2020/12/31を選択した状態にて、       カレンダーを起動させる方法を教えてください ※よろしくお願いします。検索してもヒットしません

  • カレンダーコントロールの使い方

    フォーム1のイベントで、カレンダーコントロールの挿入されたフォーム2を開く。 日付をクリックした時に、フォーム1のテキストボックスに日付を挿入。 挿入されたと同時に、フォーム2は閉じて、フォーム1がアクティブになる。 という一連の作り方を教えて頂けないでしょうか。 よろしくお願いいたします。

  • カレンダーコントロール

    カレンダーコントロールの初期値を本日の日付に設定したいのですがどこで記入すればいいかわかりません。 calendar1.year、month、dayを利用するのでしょうか

  • エクセルVBAのカレンダーコントロールの件で

    エクセルVBAを使用して リストボックスかコンボボックスかテキストボックスかを クリックするとカレンダーコントロールが呼び出されて カレンダーコントロールの日付をクリックすると カレンダーコントロールは閉じその値が上記2行目いずれかに 入力されるようにすることは可能なのでしょうか いろいろ文献を探してみたのですがよくわからずじまいでした よろしくお願いします

  • 再度質問です。アクセスのカレンダー表示について以前O_cyanさんに質問していたのですが、、、。

    >日付のところをクリックするとその日の入力画面が表示されるにはどうしたらよいでしょうか 入力画面を開く時にカレンダーからクリックされた日付を取得します。 例えば入力画面の日付コントロールにカレンダーのクリックされた日付を代入したい場合は入力画面のフォームのプロパティの開く時のイベントに Private Sub Form_Open(Cancel As Integer) Me.日付 = Forms!カレンダー名.Value End Sub とすれば入力画面が開くと日付にカレンダーの日付を取得できます。 と、回答いただいていたのですが、そこがうまくできません。もう一度 教えてくださいませんか?メインメニューのカレンダーコントロールの日付をクリックすると、別フォームの検体別入力というフォームが開き、その日付が依頼日というコントロールのところに自動で入力されるようにしたいのです。最後の依頼日コントロールに自動で入力というのができていません。ちなみに依頼日コントロールはテキスト119と書いてあるのですが、どちらをイベントのコード内に入力したらいいのでしょうか?カレンダー名はCalendar3です。どうかよろしくお願いします。

  • excel VBA フォームを使って

    初歩的な質問だと思いますが、教えていただけますでしょうか。 excelのVBAを使って、ユーザフォームを作ります。 そこにカレンダーコントロールでいわゆる「カレンダー」を作成し、 その下にテキストボックス(ちょっと大きめ)を作ります。 カレンダーをクリックし、テキストボックスにスケジュールが表示されるというものを作りたいです。 現在ワークシートには、scheduleというものだけを作成し、そこには日付とスケジュールを書き込んでいる状況です。 スケジュールは1行のみとは限りません。複数行のほうが多いです。 お忙しいところ申し訳ありませんが、よろしくお願いします。

  • ACCESS カレンダーコントロールで移動

    入力終了したデータをフォームに表示させているのですが、カレンダーコントロール9.0とテキストボックスをコントロールソースにして、日付が数字とカレンダーの日付が押された状態で表示されるようにしています。 レコードセレクタからいちいち任意の日付を探すのは面倒なので、出来ればカレンダーコントロールの日付をクリックまたはダブルクリックすることによりその日にレコードが移動してデータが表示させたいのですが、どのような方法があるでしょうか? 使用しているのはACCESS2000です。何卒、良い知恵がありましたら(そのような感じのことが書いてあるwebページでも構いません)宜しくお願いいたします。

専門家に質問してみよう