| [1302] 日付の入力について |
| 投稿者:茶々 |
投稿日:2009/08/14(Fri) 09:47:34 | |
いつも、お世話になっております。 日付の入力について、現在、項目に08/14 といった形で入力していますが、カレンダーからの入力ができればいいかなと思っていますが、そのようなことできますかね。また、簡単な入力方法ありましたら教えていただければありがたいですが... |
かわず > 久しぶりに覗いてみたら4日もレスが付いていないので
>カレンダーからの入力ができればいいかなと思っていますが もともとCARDには、エクセル、ACCESSなどで実装しているカレンダー機能が無いのでご自分で作る しか無いと思います。 思いつきですが、チェックボックスの機能を使えば出来そうな気がします。 カレンダーをポップアップしたように見せたければ、フォームダイヤログでフォームを追加し、ボタンで 開けば出来ますし行けると思います。 (2009/08/17(Mon) 23:53:28) |
かわず > 思いつきだけでは話にならないので作ってみました。 追加するのは、項目を2個 チェックボックスを31個 非連結の項目を7個 チェックボックスを31個カレンダーの様に配置します。 常に当月の1日を保存する項目仮に「項目1」とします。 チェックボックスの設定項目を仮に「項目2」とします。
[V1]・・・・・・・・ チェックボックスのつもり 「 土 」・・・・・・・・非連結の項目 プロパティーで式を記入 @weekday(0,項目1) 「 日 」・・・・・・・・非連結の項目 プロパティーで式を記入 @weekday(0,@day(@todate(項目1)+1)) 「 月 」・・・・・・・・非連結の項目 プロパティーで式を記入 @weekday(0,@day(@todate(項目1)+2)) ・ ・ ・
「 土 」「 日 」「 月 」「 火 」「 水 」「 木 」「 金 」 [V 1][V 2][V 3][V 4][V 5][V 6][V 7] [V 8][V 9][V10][V11][V12][V13][V14] [V15][V16][V17][V18][V19][V20][V21] [V22][V23][V24][V25][V26][V27][V28] [V29][V30][V31]
2009/08月を例にしていますので、8/01は土曜日になります。 2009/09月だと火曜日に自動的に変わります。
チェックボックス 1〜31 の設定項目をすべて「項目2」に設定します。 代入値 [V 1] 0 [V 2] 1 [V 3] 2 [V 4] 3 [V 5] 4 [V 6] 5 [V 7] 6 としていき最後は [V31] 30 になります。
計算式に 項目当月=@madd(@left(@acday(),8),'01') 年月日=@day(@todate(項目1)+項目2) これで動きます。
カレンダー入力をしたい項目が複数有れば、項目を一つ「項目3」追加し IF文のスイッチに 使うと複数の項目にカレンダーから日付が記入出来ます。 こんな感じ 年月日=@if(項目3='データー',@day(@todate(項目1)+項目2),)
フォームにチェックボックス31個を配置するスペースが無い場合は、フォームを追加し コマンドボタンで作ったフォームを呼び出しマウスクリックで日付が入力出来ます。 (2009/08/19(Wed) 23:06:52) |
mikko > かわずさん、やってくれましたね。 できるかもと思いながら実際に作るのはためらってました。 (2009/08/20(Thu) 01:59:29) |
茶々 > かわず様、 有難うございます。ちょっと、難しそうですがやってみます。 (2009/08/29(Sat) 00:23:51) |
かわず > チェックボックスの数字(日付)のフォントカラーを変える方法(フォントカラーが変わった様に 見える)を紹介しておきます。 CARDの関数の中にフォントカラーの所得出来る関数は有りませんので非連結に 表示するデーターを IF文を使ってコントロールします。
そこで、チェックボックスを [V 1]から[V]に変更し非連結の項目「 」を二つ持ってきます。 [V]「 」「 」 ・・・ 非連結の項目は一つが当日用、もう一つがカレンダー用です。 非連結項目「当日用」 31個 非連結項目「カレンダー用」 31個 計62個が必要です。
非連結の項目「 」のプロパティでパターンを透明にします。 当日用非連結項目のフォントカラーを、赤に変更します。 カレンダー用は黒のままにしておきます。 1日の場合 非連結項目当日用のプロパティの計算式に、@if(@right(項目1,2)=' 1',' 1','') 非連結項目カレンダー用のプロパティの計算式に、@if(@right(項目1,2)=' 1','',' 1') 2日の場合 非連結項目当日用のプロパティの計算式に、@if(@right(項目1,2)=' 2',' 2','') 非連結項目カレンダー用のプロパティの計算式に、@if(@right(項目1,2)=' 2','',' 2') [V]「 」・・・ 非連結の項目「当日用」「カレンダー用」を重ねて一つに見えるように配置します。 これでフォームを開くと当日の日(数字)が、赤に変わります。 (2009/08/31(Mon) 01:48:34) |
かわず > 追記 曜日のフォントカラーを変えることが出来ましたので(フォントカラーが変わった様に見える) 紹介しておきます。
非連結項目でも、関数「@weekday(0,(項目)」の戻り値が所得できますので、曜日のフォント色が 変わった様にみえます。
非連結項目が21個いります 「 1 」「 2 」「 3 」「 4 」「 5 」「 6 」「 7 」 平日用 「 1 」「 2 」「 3 」「 4 」「 5 」「 6 」「 7 」 土曜日用 フォントは青 「 1 」「 2 」「 3 」「 4 」「 5 」「 6 」「 7 」 日曜日用 フォントは赤 すべてパターンは透明にしてください。
これを平日用、土曜日用、日曜日用を重ねて一行に見えるよう配置します。 「 1 」「 2 」「 3 」「 4 」「 5 」「 6 」「 7 」
関数はながったらしのですべて記載しておきます、コピペしてください。 項目名は茶々さんの項目名に変更してください。
平日の1 @if(@weekday(0,(項目1))='月','月',@if(@weekday(0,(項目1))='火','火',@if(@weekday(0,(項目1))='水','水',@if(@weekday(0,(項目1))='木','木',@if(@weekday(0,(項目1))='金','金',''))))) 平日の2 @if(@weekday(0,@day(@todate(項目1)+1))='月','月',@if(@weekday(0,@day(@todate(項目1)+1))='火','火',@if(@weekday(0,@day(@todate(項目1)+1))='水','水',@if(@weekday(0,@day(@todate(項目1)+1))='木','木',@if(@weekday(0,@day(@todate(項目1)+1))='金','金',''))))) 平日の3 @if(@weekday(0,@day(@todate(項目1)+2))='月','月',@if(@weekday(0,@day(@todate(項目1)+2))='火','火',@if(@weekday(0,@day(@todate(項目1)+2))='水','水',@if(@weekday(0,@day(@todate(項目1)+2))='木','木',@if(@weekday(0,@day(@todate(項目1)+2))='金','金',''))))) 平日の4 @if(@weekday(0,@day(@todate(項目1)+3))='月','月',@if(@weekday(0,@day(@todate(項目1)+3))='火','火',@if(@weekday(0,@day(@todate(項目1)+3))='水','水',@if(@weekday(0,@day(@todate(項目1)+3))='木','木',@if(@weekday(0,@day(@todate(項目1)+3))='金','金',''))))) 平日の5 @if(@weekday(0,@day(@todate(項目1)+4))='月','月',@if(@weekday(0,@day(@todate(項目1)+4))='火','火',@if(@weekday(0,@day(@todate(項目1)+4))='水','水',@if(@weekday(0,@day(@todate(項目1)+4))='木','木',@if(@weekday(0,@day(@todate(項目1)+4))='金','金',''))))) 平日の6 @if(@weekday(0,@day(@todate(項目1)+5))='月','月',@if(@weekday(0,@day(@todate(項目1)+5))='火','火',@if(@weekday(0,@day(@todate(項目1)+5))='水','水',@if(@weekday(0,@day(@todate(項目1)+5))='木','木',@if(@weekday(0,@day(@todate(項目1)+5))='金','金',''))))) 平日の7 @if(@weekday(0,@day(@todate(項目1)+6))='月','月',@if(@weekday(0,@day(@todate(項目1)+6))='火','火',@if(@weekday(0,@day(@todate(項目1)+6))='水','水',@if(@weekday(0,@day(@todate(項目1)+6))='木','木',@if(@weekday(0,@day(@todate(項目1)+6))='金','金','')))))
土曜日の1 @if(@weekday(0,項目1)='土','土','') 土曜日の2 @if(@weekday(0,@day(@todate(項目1)+1))='土','土','') 土曜日の3 @if(@weekday(0,@day(@todate(項目1)+2))='土','土','') 土曜日の4 @if(@weekday(0,@day(@todate(項目1)+3))='土','土','') 土曜日の5 @if(@weekday(0,@day(@todate(項目1)+4))='土','土','') 土曜日の6 @if(@weekday(0,@day(@todate(項目1)+5))='土','土','') 土曜日の7 @if(@weekday(0,@day(@todate(項目1)+6))='土','土','')
日曜日の1 @if(@weekday(0,項目1)='日','日','') 日曜日の2 @if(@weekday(0,@day(@todate(項目1)+1))='日','日','') 日曜日の3 @if(@weekday(0,@day(@todate(項目1)+2))='日','日','') 日曜日の4 @if(@weekday(0,@day(@todate(項目1)+3))='日','日','') 日曜日の5 @if(@weekday(0,@day(@todate(項目1)+4))='日','日','') 日曜日の6 @if(@weekday(0,@day(@todate(項目1)+5))='日','日','') 日曜日の7 @if(@weekday(0,@day(@todate(項目1)+6))='日','日','') (2009/09/01(Tue) 23:18:53) |
|