Access VBA質問箱 IV

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

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


145 / 500 ページ ←次へ | 前へ→

【10378】Re:レポートのピクチャの上に円を描画
回答  hatena  - 08/5/13(火) 12:37 -

引用なし
パスワード
   >Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)

フォーマット時ではなく印刷時に記述してみてはどうでしょうか。
・ツリー全体表示

【10377】レポートのピクチャの上に円を描画
質問  Taka  - 08/5/13(火) 12:33 -

引用なし
パスワード
   レポートで何もないところには,円(楕円)は描けるのですが、ピクチャを張り付けたその上にかけません。ピクチャを最背面にしているのですが,その下に描かれてしまいます。何か良い方法はありますか?

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Me.DrawWidth = 5
If Me!休暇願 = True Then
Me.Circle (450, 210), 400, vbBlack, , , 0.42
End If
・ツリー全体表示

【10376】他のボックス結果をコマンドボタンに。
質問  heavenlycastle2003 E-MAIL  - 08/5/13(火) 8:49 -

引用なし
パスワード
   ・テキストボックスにて年月日の年を表示。(例、2008年)
・コンボボックスにて、月を表示。(1月〜12月)
上記の結果を、コマンドボタンに表示させたい。

前回のアドバイスでフォーム読み込み時のプログラム作成を終えました。
下記のものは、2008年5月のカレンダーを表示するプログラムです。
・予め年を手入力したテキストを用意。
・コンボボックスにて1月を選択した時に1月のカレンダーをコマンドボタンに。
他の月を選択した際にはその月のカレンダーを。
テキストが2007年、コンボボックスが5月だったら、そのカレンダーになるようにしたいと考えています。


どなたかお知恵を拝借出来ればと思ってます。 宜しくお願いします。

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
・ツリー全体表示

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

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

出来ました。有難うございます。
・ツリー全体表示

【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月度の表示ができれば成功ですね。


出来ました。有難うございます。
引き続き、自分なりにやってみます。
・ツリー全体表示

【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月度の表示ができれば成功ですね。
・ツリー全体表示

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

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

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

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

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

【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
・ツリー全体表示

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

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

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

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

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

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

小僧さんのものを参考にやってみます。
成功したら、又ココに載せます。
・ツリー全体表示

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

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

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

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

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

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

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

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

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

【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 で表すことも可能です。
・ツリー全体表示

【10365】Re:ありがとうございました。
お礼  流星  - 08/5/12(月) 8:16 -

引用なし
パスワード
   ▼小僧 さん:
ありがとうございました。解決しました。
・ツリー全体表示

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

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

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

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

【10363】Re:レポートの線の揃え方
発言  初心者A  - 08/5/9(金) 10:50 -

引用なし
パスワード
   はい

中の方は線が太くなったり
明細(詳細)部分で前後のデータで
線がずれたりします
・ツリー全体表示

【10362】Re:CSVファイルの表示方法を変えたい
お礼  たつ  - 08/5/8(木) 14:48 -

引用なし
パスワード
   ▼Gin_II さん:
ご回答ありがとうございます。

>Format(CDate(日付),"yymmdd")

をコードを記入することで無事解決いたしました。
ありがとうございました。
・ツリー全体表示

【10361】Re:リストボックスで特定レコード選択で...
回答  小僧  - 08/5/8(木) 13:31 -

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

> 実行時エラー2501:と表示されOpenFormアクションの実行はキャンセルされました
> DoCmd.OpenForm "照会用", acNormal, "", "[DBテーブル]![管理番号]=" & var対象

特定のレコードだけ開けないという事は
WhereCondition の箇所がうまくいってないという事なのでしょう。

現在のコードですと、管理番号が数値の場合のみ動作するようですが、
変数:var対象の中身が数値以外になっているというような事なありませんか?
・ツリー全体表示

【10360】Re:アクセスで自動的に一括リンク処理を...
発言  小僧  - 08/5/8(木) 13:16 -

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

まず、画面上部の

>本サイトの基本方針をまとめました。こちら をご一読ください。

の こちら のリンク先をお読みになって下さい。

> してはいけない質問について

の 丸投げに相当していませんか?

御自分でどこまでできていて、何が解らないのかを明確にご提示すれば
もっと回答がつきやすくなると思われますよ。


> 添付書類のファイル名とアクセスで入力しているデータとで結びつけて
> 自動的に一括でリンク処理を行うことは出来ないのでしょうか

Accessのバージョンが記載されておりませんが、
Ac2000以降においてはハイパーリンク型というフィールド型が用意されております。

当方が行うとすると、ハイパーリンク型のフィールドを持つテーブルを基に
フォームを作って対応すると思います。

後は入力データをハイパーリンク型のフィールドに登録する仕掛けを作れば
データを登録する度に自動でリンクが作れる様になるかと思われます。

まったく見当違いの話でしたら申し訳ありません。
・ツリー全体表示

【10359】Re:CSVファイルの表示方法を変えたい
回答  Gin_II  - 08/5/8(木) 13:15 -

引用なし
パスワード
   > 入力する際は○○/○○/○○(例:08/05/07)と入力し、
> CSVファイルとして出力するデータの日付の表示を○○○○○(例:080507)と
> 表示させたいのですが

Format(日付,"yymmdd")
Format(CDate(日付),"yymmdd")
Replace(日付, "/", "")

などを試してみてください。
・ツリー全体表示

145 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1083044
(SS)C-BOARD v3.8 is Free