アクセスでカレンダーコントロールを使用し、タイトルのことをしたいと考えています。

カレンダーコントロールをクリックする前にキャレットがあったコントロールにカレンダーコントロールのValueを代入したいと考えています。

複数のテキストボックスなのでそのコントロールの名前を取得しないといけないと思いますが、コードをどう書くのかがわかりません。

可能な限りコードで示して頂けるとわかりやすく助かります。丁寧に教えて頂ける方、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

まず。

適当な非表示のテキストボックスを一つ作成します。これは、カレンダーコントロールをクリックする直前のコントロール名を記憶させるものなので、グローバルな変数でもOKです。

例えば、値を入力するためのテキストボックスを3つ(それぞれ、TextBox1、TextBox2、TextBox3)と名前保存用のテキストボックス(SaveBox)、

TextBox1、TextBox2、TextBox3それぞれのフォーカス喪失時に次のようなコードを書き、自分の名前を保存します。

Private Sub TextBox1_Exit(Cancel As Integer)
Me("SaveBox") = Me("TextBox1").Name
End Sub

これで、カレンダーをクリックする前に最後にフォーカスのあったコントロール名が分かります。あとは、このコントロールにカレンダーの値を代入すればいいだけです。

Private Sub Calendar0_Click()
Me(Me("SaveBox").Value) = Calendar0.Value
End Sub
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。まだ試していませんがばっちりできそうな気がします。試し後報告いたします。

お礼日時:2003/10/25 14:44

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q2006年カレンダーを無料ダウンロードできるところ

2006年カレンダーを無料ダウンロードできるところを探しています。できたらプリントアウトせず、書き込みをしたいため、ワード形式かエクセル形式のファイルがいいんです。

自分でも探してみたのですが、Adobeを使わないといけない形式ばかりで、書き込みができるものを見つけることができませんでした。

もしウエブサイトをご存知でしたら教えてください。

Aベストアンサー

オフィス製品があるのでしたら、こちらはどうです?
オフィスのテンプレートです。

参考URL:http://office.microsoft.com/ja-jp/templates/CT011653371041.aspx

Qカレンダーコントロールのダイアログボックス

ACCESSでボタンをクリックすると、カレンダーコントロールのダイアログボックスが表示されて、日付が入力出来るようにしたいのですが...
この方法で日付を入力するテキストボックスに共通で使用出来たらと考えています。
カレンダーコントロールのダイアログボックスの作成から分からないのでお願いします。

Aベストアンサー

前回の質問時に上記提案をしましたので、その続きということで以下に記載します。

1.新規にフォームを作成して、カレンダーコントロールをフォームに貼り付けます。名前をCALとでもしましょう。また、単票形式とします。
2.フォームモジュールを開いて以下のコード記載します。

Option Compare Database
Private ctrTarget As Control '元FormのControl格納変数

Public Sub ControlSet(OriginalControl As Control)
Set ctrTarget = StartControl
End Sub

Private Sub CAL_Click()
ctrTarget = Me.CAL.Value
End Sub

3.このフォームをFormCalenderとして保存します。

4.日付を入力するテキストボックスがあるフォームにボタンを貼り付けます。このボタンのイベント「クリック時」にコードビルダーでダイアログフォームを開く以下のコードを貼り付けます(ここではDateButtonという名前にしました)。

Private Sub DateButton_Click()
DoCmd.OpenForm "FormCalender"
Form_formCalender.ControlSet Me.日付
End Sub

以上で、準備完了です。

上記は4のモジュールで、ダイアログ用フォームを開き、日付値を戻すコントロールを指定します。また、2のモジュールがカレンダーコントロールで日付を選択した時点で、テキストボックスに日付値を代入するものです。
なお、長くなるためエラー制御は記載していません。
最近、書いていないので上手く動かなかったら補足お願いします。

前回の質問時に上記提案をしましたので、その続きということで以下に記載します。

1.新規にフォームを作成して、カレンダーコントロールをフォームに貼り付けます。名前をCALとでもしましょう。また、単票形式とします。
2.フォームモジュールを開いて以下のコード記載します。

Option Compare Database
Private ctrTarget As Control '元FormのControl格納変数

Public Sub ControlSet(OriginalControl As Control)
Set ctrTarget = StartControl
End Sub

Private Sub CAL_Click()
ctrTa...続きを読む

Q映画などの無料ダウンロード方法

映画などの無料ダウンロード方法
チャーリーとチョコレート工場などを無料でダウンロードしたいで無料ダウンロードできるサイトややり方を教えて下さい。
よろしくお願いします。m(__)m

Aベストアンサー

2010年の1月1日より、改正著作権法が施行されました。
これにより、音楽・動画などの著作物を権利者の許可無くアップロードしたものを
ダウンロードするだけで犯罪となります。
ただし、ストリーミングは対象外なので、動画サイトなどに違法アップロードされたものを
見ても大丈夫です…が、やはりきちんと買いましょう。

参考URL:http://d.hatena.ne.jp/nakakzs/20090518/1242657559

QAccessのカレンダーコントロールについて

いつもお世話になっております。

Accessのフォーム上に貼り付けるコントロールで
クリックするとカレンダーが表示され、日付を選択
することで、テキストボックスに選択した日付が
表示されるという画面を見たことがあります。
どのようにすれば、このコントロールを使えるように
できるのでしょう?

どうか、よろしくお願いいたします。

Aベストアンサー

「テキストボックスがヌルの場合にクリックすれば」と解釈して・・・

Option Compare Database
Option Explicit

Private Sub Calendar_Click()
  Me.テキスト.SetFocus
  SendKeys Me.Calendar, True
End Sub

Private Sub テキスト_Click()
  If Len(Me.テキスト & "") = 0 Then
    Me.Calendar.Visible = True
  End If
End Sub

Private Sub テキスト_GotFocus()
  If Len(Me.テキスト & "") > 0 And Me.Calendar.Visible Then
    Me.Calendar.Visible = False
  End If
End Sub

Q音楽の無料ダウンロード

ナップスターなどから音楽の無料ダウンロードが出来ると聞きましたが、ネットから好きな音楽を検索し、無料ダウンロードする方法は今でもあるのでしょうか?

Aベストアンサー

ナップスターそのものに関しては今現在サービスはまだ続けているようですが、既に終わっている模様です。
その代わりナップスター互換のクローンツールが代わりに繁栄しています。
日本ではWinMXとか、海外ではまた別のソフトです。
ただこの手のソフトは身元がバレバレになってしまうので、逮捕も続出していますね。日本ではですが。

これとは別にグヌテラ互換のソフトが今後主流になっていくのではないかと言われています。

QAccessのカレンダーコントロールについて

いつもお世話になっております。

アクセスのカレンダーコントロール(MSCAL.ocx)に
ついて教えてください。

コントロールを表示して日を指定します。
その後コントロール上にある年を指定するコンボボックスで別の年を指定します。
するとコントロール上は日が指定されていない状態
になりますが、

Me.Calendar.Value

には以前にしていした日付が残っています。

実現したいのは年を指定するコンボボックスで
別の年を指定した場合、その指定された年数を
知りたいのですが、Me.Calendar.Valueには
以前の日付が入っているため、知ることが
できません。

何かいい方法はないでしょうか?
よろしくお願いいたします。

Aベストアンサー

ちゃんと調べてないので判りませんが、プロパティやヘルプで調べても無かったのでしょうか?

バージョンによっても若干違う場合がありますので、明記された方が宜しいですよ。

どうしても無いのであれば自分で作りましょう。
(例)
フォームにカレンダー、コンボでカレンダーもどきを作成。

コンボは、自分のコンボで隠す。
<当然カレンダーのコンボはTABなどで選択できない(フォーカスが当たらない)様にしないといけないと思います>

であれば、コンボの値は取得できますよネ!
その後、確定動作があるのであれば、VALUE へ値をセットし画面を更新(不要かも)すれば処理できると思いますが。。。

いかがでしょうか(^^;

Q無料ダウンロードの意味は

無料ダウンロードとあるので
explorer-construction1.9をダウンロードして使用してみました
http://explorer-construction.softonic.jp/
新版はシエアウエアだと認識していましたが、ここでは旧版のVer1.9のダウンロードです、
ところが使用を始めてみると「お金を払って」のメッセージがしつこくポップアップしてきます。
無料ダウンロードって何ですか?
何か詐欺まがいの気がしますが・・・・

Aベストアンサー

そこまでは無料にして体験してもらって、これ以降は有料との事で大嫌いな商売ですね。そうゆう商売の仕方を禁止にしてほしいですよ。

Qカレンダーコントロールについて教えてください

Access&VBA初心者です。

練習で、カレンダーコントロールをフォームに配置してみました。
で、昨日設置したのですが、
カレンダー自体の色の変え方とかはわかるのですが、
過去ログは一通り見てみたのですが、式の入れ方の場所がよくわかりません。

やりたいことは、「フォームを開いたら、設置した日ではなく、フォームを開いた日に自動的に更新する」です。

Date()を入れるだろうというところまでは推測付くのですが、
どこにどのように入れたらいいのかがわかりません。

直接の答えでなくてもいいので、このあたりを詳しく解説した書籍もしくは、URLなどをご存じないでしょうか?よろしくお願いいたします。

Aベストアンサー

カレンダーの名前を calendar とします。

VBAで、
Form_load の中に、
calendar.value=Date

と書けばできると思います。
これでよかったでしょうか?

QYouTubeから音楽無料ダウンロードについて

今パソコンにYouTubeから音楽を無料ダウンロードして、何年後か近い将来に、コンピューターが進化して、昔にYouTubeから音楽を無料ダウンロードした事がばれて、警察に逮捕される事ってありますか?

またコンピューターが人の脳を超えたら、YouTubeから音楽を無料ダウンロードした事が必ずばれて、何年後か近い将来に警察に逮捕される事ってありますか?

Aベストアンサー

 考え過ぎです。毎日1億回も視聴されているYouTubeを監視出来るわけがありません。違法ダウンロードが事件としてニュース報道された番組を見た事がありますか。そういうニュースは見掛けませんよね。

 違法ダウンロードを摘発するのは難しいのが実情です。現在の防止方法は、プロテクトをかけて、ダウンロード出来ないようにする方法ですが、それ以外の対策を取った例はほとんど無いだろうと思います。

 違法アップロードは警告を受けた後で削除され、アカウント停止で終わりのようです。違法ダウンロードを把握して訴追した事件は聞いた事が無いですね。よほど組織的にDVDやBDの違法アップロードとダウンロードを大量におこなった場合を除いて、警察の摘発までには至らないのではないでしょうか。

 そもそも現在の著作権法が前近代的で、著作権者の利益しか考えておらず、ユーザーの不利益に対する配慮に欠けているので、プロテクトを付け過ぎたBDレコーダーの販売不振などの弊害が出ているようです。

 YouTubeは基本的にダウンロードしても問題ありませんし、ダウンロード出来ない場合は違法だと判断すれば良いだけです。

 考え過ぎです。毎日1億回も視聴されているYouTubeを監視出来るわけがありません。違法ダウンロードが事件としてニュース報道された番組を見た事がありますか。そういうニュースは見掛けませんよね。

 違法ダウンロードを摘発するのは難しいのが実情です。現在の防止方法は、プロテクトをかけて、ダウンロード出来ないようにする方法ですが、それ以外の対策を取った例はほとんど無いだろうと思います。

 違法アップロードは警告を受けた後で削除され、アカウント停止で終わりのようです。違法ダウンロードを...続きを読む

Qaccess2010でのカレンダーコントロール

http://msdn.microsoft.com/ja-jp/library/office/gg251104%28v=office.14%29.aspx
上記urlにある「カスタムカレンダーフォームを使用する」の方法でコントロール[frmCalendar]をクリックすると同時にtextbox[日報選択]の日付を変更することができるのですが、他のサブフォームのリクエリができません。これを1回のクリックでサブフォームをリクエリさせる方法はないですか?

現状ではコントロールによって変更されたtextbox内をもう一度クリックすると他のサブフォームがリクエリされます。下記はVBですが変更または追加があれば教えてください。

Option Compare Database
Private WithEvents calendarForm As Form_frmCalendar
-------------------------------------------------
Private Sub calendarForm_DateChanged(newDate As Date)
Me.[日報選択] = newDate
End Sub
-----------------------------------------------------
Private Sub Form_Open(Cancel As Integer)
Set calendarForm = Me.Calendar.Form
End Sub
----------------------------------------------------
Private Sub Form_Click()
DoCmd.OpenForm "F_日報"
DoCmd.Close
End Sub
----------------------------------------------------
Private Sub Form_Load()
Me![日報選択].Value = Date
Me!F_日報扱い現金.Requery
Me!F_日報扱いクレジット.Requery
Me!F_日報商品売上.Requery
End Sub
----------------------------------------------
Private Sub 日報選択_AfterUpdate()
Me!F_日報商品売上.Requery
Me!F_日報扱い現金.Requery
Me!F_日報扱いクレジット.Requery
End Sub
----------------------------------------
Private Sub 日報選択_Click()
Me!F_日報商品売上.Requery
Me!F_日報扱い現金.Requery
Me!F_日報扱いクレジット.Requery
End Sub

http://msdn.microsoft.com/ja-jp/library/office/gg251104%28v=office.14%29.aspx
上記urlにある「カスタムカレンダーフォームを使用する」の方法でコントロール[frmCalendar]をクリックすると同時にtextbox[日報選択]の日付を変更することができるのですが、他のサブフォームのリクエリができません。これを1回のクリックでサブフォームをリクエリさせる方法はないですか?

現状ではコントロールによって変更されたtextbox内をもう一度クリックすると他のサブフォームがリクエリされます。下記はVBですが変更...続きを読む

Aベストアンサー

Private Sub calendarForm_DateChanged(newDate As Date)
  Me.[日報選択] = newDate
  Call 日報選択_AfterUpdate
End Sub

では、どうですか。

あるいは、

Private Sub calendarForm_DateChanged(newDate As Date)
  Me.[日報選択] = newDate
  Me!F_日報商品売上.Requery
  Me!F_日報扱い現金.Requery
  Me!F_日報扱いクレジット.Requery
End Sub

これでは。

もし、構文エラーになるなら、メニューの [デバッグ]-[****のコンパイル] で反転選択される部分のコードを教えてください。


人気Q&Aランキング

おすすめ情報