Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


728 / 2272 ツリー ←次へ | 前へ→

【10364】ACCESSにおいて、コマンドボタンの文字が変更されるようにするには? heavenlycastle2003 08/5/12(月) 0:13 質問[未読]
【10366】Re:ACCESSにおいて、コマンドボタンの文字... 小僧 08/5/12(月) 9:57 回答[未読]
【10369】Re:ACCESSにおいて、コマンドボタンの文字... heavenlycastle2003 08/5/12(月) 17:04 回答[未読]
【10371】Re:ACCESSにおいて、コマンドボタンの文字... heavenlycastle2003 08/5/12(月) 17:51 回答[未読]
【10373】Re:ACCESSにおいて、コマンドボタンの文字... 小僧 08/5/12(月) 19:35 回答[未読]
【10374】Re:ACCESSにおいて、コマンドボタンの文字... heavenlycastle2003 08/5/12(月) 20:23 回答[未読]
【10375】Re:ACCESSにおいて、コマンドボタンの文字... heavenlycastle2003 08/5/13(火) 8:27 お礼[未読]
【10367】Re:ACCESSにおいて、コマンドボタンの文字... ミオナ 08/5/12(月) 15:55 回答[未読]
【10368】Re:ACCESSにおいて、コマンドボタンの文字... heavenlycastle2003 08/5/12(月) 16:54 回答[未読]
【10370】Re:ACCESSにおいて、コマンドボタンの文字... ミオナ 08/5/12(月) 17:51 回答[未読]
【10372】Re:ACCESSにおいて、コマンドボタンの文字... heavenlycastle2003 08/5/12(月) 18:08 回答[未読]

【10364】ACCESSにおいて、コマンドボタンの文字が...
質問  heavenlycastle2003 E-MAIL  - 08/5/12(月) 0:13 -

引用なし
パスワード
   ACCESSのカレンダーコントロールの様に作成したい。
・テキストボックスにて年月日の年を表示。(例、2008年)
・コンボボックスにて、月を表示。(1月〜12月)
・コマンドボタンを日の数を表示。
その他様々な祝日や記念日をカレンダーに載せたいと思っています。

●テキストボックスとコンボボックスの見た結果をコマンドボタンに表示させたいと思っています。何行かにわたって暦なども加えたいと思ってます。改行のやり方も教えて下さい。

コンボボックに『1月』と表示させた結果をコマンドボタンに表示させることは出来たました。
参考→Private Sub コンボ53_AfterUpdate()
     コマンド0.Caption = "大安"
   End Sub

【10366】Re:ACCESSにおいて、コマンドボタンの文...
回答  小僧  - 08/5/12(月) 9:57 -

引用なし
パスワード
   ▼heavenlycastle2003 さん:
こんにちは。

>ACCESSのカレンダーコントロールの様に作成したい。

意外と手間のかかるものなんですよね。


> ・コマンドボタンを日の数を表示

コマンドボタンは 6段×7行用意する事になります。
(2008年3月のカレンダーを想定して下さい。)

年月によってコマンドボタンの表記を変えるには

A)フォーム内のすべてのコントロールをループさせて、
 タグのプロパティを使ってCaptionを変えていく

B)コマンドボタンの名前そのものにルールをつけて
 Captionを変えていく

のどちらかが良いかと思われます。


> 改行のやり方も教えて下さい。

「CR」「LF」の組み合わせで改行になります。

> コマンド0.Caption = "大安"

コマンド0.Caption = "大" & Chr(13) & Chr(10) & "安"


Chr(13) & Chr(10) は定数 vbCrLf や vbNewLine で表すことも可能です。

【10367】Re:ACCESSにおいて、コマンドボタンの文...
回答  ミオナ  - 08/5/12(月) 15:55 -

引用なし
パスワード
   こんにちは。

小僧さんもおっしゃっていますが、ご希望のことを実現するのはけっこう手間がかかるかと
思います。

ちょっとお聞きしたいのですが、単なるカレンダーということではなく、そこに祝祭日や
記念日、六曜などのデータも表示させたいということのようですが、このカレンダーの
使用目的は何なのでしょう?

【10368】Re:ACCESSにおいて、コマンドボタンの文...
回答  heavenlycastle2003 E-MAIL  - 08/5/12(月) 16:54 -

引用なし
パスワード
   ▼ミオナ さん:
こんにちは。

>使用目的は何なのでしょう?
使用目的は、代表的なものはスケジュール表です。
さらに、日付ボタンを押下するとメモが書け、または勤務表の該当日を呼出す様々な機能を果すものとしてカレンダーを作成したいと考えています。

私が思ったカレンダーが見つからなかったので、自分で作成しようと思っています。作成期間も永く掛かると思います。たぶん、色々な所で質問をすると思いますが、完成まで手を抜かずにやりたいと思っています。

仮に、六曜や他の記念日が載せてあるACCESSカレンダーを見かけたら、教えて下さい。

【10369】Re:ACCESSにおいて、コマンドボタンの文...
回答  heavenlycastle2003 E-MAIL  - 08/5/12(月) 17:04 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。

回答、有難うございました。
ACCESSで作成したカレンダーで納得いったものがなかったので、自分で作成しようと思っています。
さがしてもしあれば、・・・・。 それを活用しようと思っていますが。
納得いくものを作りたいと思っていますので、宜しくお願いします。
また様々な箇所でも質問をするかと思います。
作成するのは疲れる作業ですが頑張ります。

小僧さんのものを参考にやってみます。
成功したら、又ココに載せます。

【10370】Re:ACCESSにおいて、コマンドボタンの文...
回答  ミオナ  - 08/5/12(月) 17:51 -

引用なし
パスワード
   こんなのを見つけましたが、もうご存知でしょうか?
■Access DE カレンダ EX
  フリーソフトです。すみませんが、Vectorで探してみてください。
    「パーソナル」の「カレンダ」にあります。
   ※ 有料でソースも見ることができるようになるそうです。

六曜のデータは無いようですが、ソースがあればカスタマイズは可能かと思います。
さきほどのと同じカテゴリに「旧暦 for VB」という大変ありがたいものがありますので、組み込み時に
ご利用になるとよろしいかと。(^_^;)
   ※ 標準モジュールとして利用可

【10371】Re:ACCESSにおいて、コマンドボタンの文...
回答  heavenlycastle2003 E-MAIL  - 08/5/12(月) 17:51 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。
>年月によってコマンドボタンの表記を変えるには
>
>A)フォーム内のすべてのコントロールをループさせて、
> タグのプロパティを使ってCaptionを変えていく
>
>B)コマンドボタンの名前そのものにルールをつけて
> Captionを変えていく
>
>のどちらかが良いかと思われます。

Aのループを選択したほうがプログラム的にスマートなものになると考えました。
Aを選択します。

早速しておりますが、結果を表示する箇所がコマンドボタンと既に表示されているものに順次プログラムを書いていく。
ココで早速質問ですが、既に表示されているものに結果を表示するのに手間取っています。良いプログラムが書けないでいます。
良かったらヒントだけでも教えて下さい。

>> 改行のやり方も教えて下さい。
>
>「CR」「LF」の組み合わせで改行になります。
>
>> コマンド0.Caption = "大安"
>
>コマンド0.Caption = "大" & Chr(13) & Chr(10) & "安"
>
>
>Chr(13) & Chr(10) は定数 vbCrLf や vbNewLine で表すことも可能です。


なるほど・・・。実際にやってみました。
成功したものを記載します。
→ Private Sub コンボ53_AfterUpdate()
   コマンド0.Caption = "大" & vbNewLine & "安"
  End Sub

【10372】Re:ACCESSにおいて、コマンドボタンの文...
回答  heavenlycastle2003 E-MAIL  - 08/5/12(月) 18:08 -

引用なし
パスワード
   ▼ミオナ さん:
>こんなのを見つけましたが、もうご存知でしょうか?
>■Access DE カレンダ EX
>  フリーソフトです。すみませんが、Vectorで探してみてください。
>    「パーソナル」の「カレンダ」にあります。
>   ※ 有料でソースも見ることができるようになるそうです。

ご紹介有難うございました。

先日、ダウンロードしました。その時は有料でソースが見られるとは知りませんでした。

出来れば、無償でソースを見られるといいのですが、・・・・。
残念ながらないので、今必死の思いでカレンダーを作っています。

【10373】Re:ACCESSにおいて、コマンドボタンの文...
回答  小僧  - 08/5/12(月) 19:35 -

引用なし
パスワード
   ▼heavenlycastle2003 さん:
こんにちは。

> Aのループを選択したほうがプログラム的にスマートなものになると
> 考えました。
> Aを選択します。

申し訳ないです、、、Bの方法で…。

コマンドボタンの名前を仮に左上段から「c1」「c2」とつけて行き、


日 月 火 水 木 金 土

c1 c2 c3 c4 c5 c6 c7
c8 c9 c10 c11 c12 c13 c14


            c42

の様なフォームを作成します。
(c1、c2等はコマンドボタンです)

フォーム読み込み時のイベントに下記モジュールを書いて下さい。


Option Compare Database
Option Explicit

Private Sub Form_Load()

  Call MakeCalender(2008, 5)

End Sub


Sub MakeCalender(CurrentYear As Long, CurrentMonth As Long)
Dim i As Long
Dim First_Day As Long     '初日が何番目のコントロールか
Dim Last_Day As Long     '末日が何番目のコントロールか

  First_Day = Weekday(DateSerial(CurrentYear, CurrentMonth, 1))
  Last_Day = DateDiff("d", DateSerial(CurrentYear, CurrentMonth, 1), _
        DateSerial(CurrentYear, CurrentMonth + 1, 0)) + First_Day
              
'初日が入るまでは空白を代入
  For i = 1 To First_Day - 1
    Me.Controls("C" & i).Caption = ""
  Next i

'初日から末日までは日付を代入
  For i = First_Day To Last_Day
    Me.Controls("C" & i).Caption = i - First_Day + 1
  Next i

'末日が入るまで空白を代入
  For i = Last_Day + 1 To 42
    Me.Controls("C" & i).Caption = ""
  Next i

End Sub


2008年5月度の表示ができれば成功ですね。

【10374】Re:ACCESSにおいて、コマンドボタンの文...
回答  heavenlycastle2003 E-MAIL  - 08/5/12(月) 20:23 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。

>コマンドボタンの名前を仮に左上段から「c1」「c2」とつけて行き、
>
>
>日 月 火 水 木 金 土
>
>c1 c2 c3 c4 c5 c6 c7
>c8 c9 c10 c11 c12 c13 c14
>…
>…
>            c42
>
>の様なフォームを作成します。
>(c1、c2等はコマンドボタンです)
>
>フォーム読み込み時のイベントに下記モジュールを書いて下さい。
>
>
>Option Compare Database
>Option Explicit
>
>Private Sub Form_Load()
>
>  Call MakeCalender(2008, 5)
>
>End Sub
>
>
>Sub MakeCalender(CurrentYear As Long, CurrentMonth As Long)
>Dim i As Long
>Dim First_Day As Long     '初日が何番目のコントロールか
>Dim Last_Day As Long     '末日が何番目のコントロールか
>
>  First_Day = Weekday(DateSerial(CurrentYear, CurrentMonth, 1))
>  Last_Day = DateDiff("d", DateSerial(CurrentYear, CurrentMonth, 1), _
>        DateSerial(CurrentYear, CurrentMonth + 1, 0)) + First_Day
>              
>'初日が入るまでは空白を代入
>  For i = 1 To First_Day - 1
>    Me.Controls("C" & i).Caption = ""
>  Next i
>
>'初日から末日までは日付を代入
>  For i = First_Day To Last_Day
>    Me.Controls("C" & i).Caption = i - First_Day + 1
>  Next i
>
>'末日が入るまで空白を代入
>  For i = Last_Day + 1 To 42
>    Me.Controls("C" & i).Caption = ""
>  Next i
>
>End Sub
>
>
>2008年5月度の表示ができれば成功ですね。


出来ました。有難うございます。
引き続き、自分なりにやってみます。

【10375】Re:ACCESSにおいて、コマンドボタンの文...
お礼  heavenlycastle2003 E-MAIL  - 08/5/13(火) 8:27 -

引用なし
パスワード
   ▼小僧 さん:
こんにちは。

出来ました。有難うございます。

728 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078200
(SS)C-BOARD v3.8 is Free