Microsoft Access 掲示板

views
4 フォロー
6,349 件中 5,401 から 5,440 までを表示しています。
6

If文で切り分けるといいでしょう。

  .ControlTipText = Nz(DLookup("摘要","T_休日","日付=#" & D & "#"),"") '定休日をヒントテキストに設定
  If .ControlTipText = "" Then  
    .ControlTipText = ktHolidayName(D) '祝日名をヒントテキストに設定
  End if
5
zunn69 2020/05/21 (木) 11:15:17

度々申し訳ございません。
祝日のマクロとの併用はやはり難しいのでしょうか?
先の説明で不足していたのですが、祝日は休みが基本なので自動で入力できるとありがたいのですが。

4

無事に動きましたありがとうございます。

2
OMOTI 2020/05/21 (木) 10:59:14 05554@4b4f6

単純なミスでした。

申し訳ございませんでした。

3

コードを下記に修正したらどうでしょうか。

.ControlTipText = Nz(DLookup("摘要","T_休日","日付=#" & D & "#"),"") '祝日名、定休日をヒントテキストに設定
2
zunn69 2020/05/21 (木) 10:39:21

早速のレスありがとうございます。
一応一度は成功したのですが、再度カレンダーフォームを起動すると「実行時エラー’13’ 型が一致しません。」とエラーが発生します。
デバック箇所は、

.ControlTipText = DLookup("摘要","T_休日","日付=#" & D & "#") '祝日名、定休日をヒントテキストに設定

になります。
カレンダーは基本操作画面フォームがあり、カレンダーボタンをクリックすると現在のカレンダーと年を入力・作成するサブフォームが開くようになっていますが、開かなくなりました。
この場合の対処も教えてくださますでしょうか?
申し訳ございませんが、よろしくお願いいたします。

4
hiroton 2020/05/21 (木) 10:01:23 09be6@f966d

「うまく動きません。」とだけ言われても今どのような結果が出ていて、本当はどのような結果が欲しいのかを言っていただかないと何が間違っていてどこを正せばいいのか誰にもわかりませんよ?

「【最終的にやりたいこと】」を見る限りは条件式の書き方の問題ではないかと思いますが

IIf(
|  [テーブルA]![フィールド1]=[テーブルB]![フィールド1]  --1.の条件判定
|  ,"9"                --1.のとき○
|  ,IIf(                --1.でないときはさらに条件分岐
|  |  [テーブルA]![フィールド2]<>DateAdd("d",1,[クエリA])  --2.の条件判定
|  |  ,"9"             --(1.でなく)2.のとき○
|  |  ,"3"             --(1.でなく)2.でもない(3の)とき×
|  )
)

34
OMOTI 2020/05/21 (木) 09:38:29 05554@4b4f6

ご回答いただき、本当にありがとうございます。
ご教授頂いた通り、修正致しました。

3

その式がどこに記述してあるか、クエリ全体でどのような構成になっているかで回答がことなります。
現状のクエリをデザインビューで開いてから、SQLビューにするとSQL文が表示されますので、それをコピーして貼り付けてください。SQLを見れば、クエリの全体の構成が分かりますので、回答しやすいです。

ちなみに「クエリA」というのはクエリではなく、フィールド名なのかな?

2

すみませんクエリの認識が間違っていたかもしれませんが、iif〜とdateadd〜がうまく動きません。

1

以下2つのクエリがうまく動きません。

その2つのクエリのSQLを質問に追記してもらえますか。

1

イレギュラーの休日や社内規定休日を設定するための休日コントロールを設定する方法がわかりません。

「イレギュラーの休日や社内規定休日」を登録するテーブルを作成します。
例えば、下記のような感じです。

名前 T_休日

日付摘要
2020/1/1元日
2020/1/2社内規定休日
2020/1/3社内規定休日
2020/1/11建国記念の日

カレンダー形式のスケジュール管理フォーム作成 その3 - hatena chips の SetCalendar関数内の下記のコードを、

            .ControlTipText = ktHolidayName(D) '祝日名をヒントテキストに設定

下記のように修正すればいいでしょう。

            .ControlTipText = DLookup("摘要","T_休日","日付=#" & D & "#") '祝日名、定休日をヒントテキストに設定

それとカレンダーフォームとは別にカレンダーテーブルも作成しているのですが、こちらにも休日を反映させたいです。

tblカレンダ に「休日」フィールドを追加して、
参考にしたリンク先のコードに下記ようにコードを追加すればいいでしょう。


    !日付 = dtmLoop
    !曜日 = Format$(dtmLoop, "aaa")
    !通年日 = Format$(dtmLoop, "y")
    !通年週 = Format$(dtmLoop, "ww")
    !休日 = DLookup("摘要","T_休日","日付=#" & dtmLoop & "#") '追加
    .Update

3

注意事項のマスターテーブルは下記だとします。

名前 T_注意事項

注意事項ID注意事項
1注意事項1
2注意事項2
3注意事項3
4注意事項4
・・・

レポートのデザインビューで「グループ化、並べ替え」で「日付」フィールドでグループ化してグループヘッダーを表示させます。

グループヘッダーに、「日付」をテキストボックスとして配置します。
そのとなりにテキストボックスを2つ配置して下記のように設定します。

名前 連番
コントロールソース =1
集計実行 グループ全体
可視 いいえ

名前 注意事項
コントロールソース ==DLookUp("注意事項","T_注意事項","注意事項ID=" & ((([連番]-1) Mod 20)+1))

([連番]-1) Mod 20) の20の部分は注意事項の件数

詳細セクションに「従業員」フィールドを配置します。

デザインビューでのレイアウト例
画像1

日付グループヘッダーの「フォーマット時」のイベントプロシージャを下記のように記述します。

Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)
    Me.MoveLayout = False
End Sub

以上です。

2
よしりん 2020/05/19 (火) 17:31:21 8e098@2bcd5

おそくなりました

現在エクセルで手入力していて画像のようにしています
画像
例えば本日の注意事項マスタに3件あるときそれを順繰りで表示させたいです

33

#27 のコードが間違ってました。
正しくは下記です。

    Do Until rs.EOF
        With Me("T" & rs!作業日 - FirstDay)
            .value = .value & "<p>" & rs!開始時間 & " "  & IIf(rs!確定<>"",""," <font color=red>☆</font>") & rs!略名 & "</p>"
        End With
        rs.MoveNext
    Loop

#27 の回答のコードも修正しておきます。

31
OMOTI 2020/05/19 (火) 09:24:36 05554@4b4f6

早速ご回答いただきありがとうございます。
< /p >
を削除することで改行することができました。

Do Until rs.EOF
        With Me("T" & rs!作業日 - FirstDay)
            .value = .value & "< p >" & rs!開始時間 & " "  & IIf(rs!確定<>"",""," ") & rs!略名 & < /p >
        End With
        rs.MoveNext
    Loop

30

下記のコードだとどうでしょうか。

    Do Until rs.EOF
        With Me("T" & rs!作業日 - FirstDay)
            .value = .value & "<div>" & rs!開始時間 & " "  & IIf(rs!確定<>"",""," <font color=red>☆</font>") & rs!略名 &  </div>
        End With
        rs.MoveNext
    Loop
29
OMOTI 2020/05/18 (月) 16:39:46 05554@4b4f6

すみません。見落としていました。
☆を赤文字に変更したら、箇条書きで表示されなくなりました。
同日中の予定が、すべて続けて表示されます。
ラベルの時のように件名毎に改行できますでしょうか。

28
OMOTI 2020/05/18 (月) 16:36:30 05554@4b4f6

ありがとうございます。
ご教授頂いたようにラベルをテキストボックスに変更する方法を試してみたところ、☆の色を変更することができました。
本当にありがとうございます。

1

レポートのレコードソースのフィールド名を提示してください。
また、「グループ化と並べ替え」の設定はどうなってますか。

できれば、レコードソースのデータ例とレポート上にどのように表示させるのか。「本日の注意事項」はどこに表示させるのか。の詳細な説明をお願います。

例えば、「日にち」のグループヘッダーがあり、そこに「本日の注意事項」を表示させるのでしょうか。

1
hatena 2020/05/17 (日) 20:08:32 修正

レポートの「グループ化と並べ替え」で日付フィールドでグループ化して、グループフッターに直線コントロールを配置すれば日付毎に罫線を表示できます。グループフッターの高さは直線が表示できる最小の高さにしておくといいでしょう。

「同じ日付は一度だけ表示」するには、日付のテキストボックスの「重複データ非表示」プロパティを「はい」に設定します。

6

テーブル名とフィールド名から推測するとデータは下記のような関係かとおもいます。

「T_顧客情報_日本支社」と「T_顧客情報_海外本社」は一対一の関係のはずです。
本社が複数あるのは考えられないので。
一対一関係のデータは一つのテーブルに纏めます。

T_顧客情報
 顧客ID 主キー
 会社名
 英語表記
 購入サイクル
 海外本社名
 国名

日本支社担当者、海外担当者 はそれぞれ複数ある場合があるということなので、上記のデータとは一対多の関係になります。

T_国内担当者
 国内担当者ID 主キー
 顧客ID
 担当者名

T_海外担当者
 海外担当者ID 主キー
 顧客ID
 担当者名

テーブルをこのように変更して、同じフィールド名同士でリレーションシップを設定してクエリを作成すれば入力可能なクエリになるはずです。

データベースのテーブルの設計には「正規化」というセオリーがあります。まずは、これについて理解をしておいてください。
下記のページの「正規化」の項目の説明が分かりやすいと思います。他にもWEB検索すると解説ページが見つかりますので分かり安そうなページを読んで理解を深めておくことをお勧めします。

1
Y.T19900612 2020/05/17 (日) 19:36:10 b6df9@77b28

columnプロパティを使用することで解決できました。お騒がせ致しました。

5
hatena 2020/05/17 (日) 17:40:14 修正 >> 3

この掲示板は画像をアップロードできますので、リンクではなくアップロードして表示させてください。

リンク先の画像をダウンロードしてここにアップロードしておきます。画像1

4
Y.T19900612 2020/05/16 (土) 20:15:52 b6df9@6e775 >> 1

五月雨式にすみません‥
T_顧客情報_海外本社の”担当者”と、T_顧客情報_海外担当者の”海外担当社”どちらも空白があったり重複があったりすると上記で説明しましたが間違えました。正しくはT_顧客情報_海外本社の”ID”と、T_顧客情報_海外担当者の”海外ID”です。一対一ではなく、上記IDは空白や重複などあり主キーを設定できません

3
Y.T19900612 2020/05/16 (土) 20:07:21 b6df9@6e775 >> 1

※先ほど間違えて投稿してしまいました。内容は無視してください。すみません。
以下が正しいお返事です↓

分かりやすいご教示をいただき、大変ありがとうございます。
確認したところクエリで入力できませんでしたので、ご指摘のとおりテーブルのデータの中身の問題なんですね‥
またご指摘頂いたテーブルなのですが、一対一ではなく、
T_顧客情報_海外本社の”担当者”と、T_顧客情報_海外担当者の”海外担当社”どちらも空白があったり重複があったりする
データのテーブルです。この2つのテーブルに関してはIDで照合して、
同じIDのものがもしあれば参照表示したい・・なければ仕方ないといった感じです。
この場合のリレーションシップはどのように紐づけたらいいか、ご教示いただけますでしょうか。
※この2つのテーブルを追加してからフォームの動作が停止することが分かりました。

また「T_入力用」という名称のテーブルは、日々の業務の中でフォームを利用してデータ登録をしていき
そのデータログを貯めていくために作成しました。
分かりにくくすみません。日々の業務内容を更新型でなく、新規レコードとして保存していき
その貯めたデータは定期的にエクスポートしたいです。
理想のフォームで入力したデータを保存する場所が欲しいのですが、正しい保存場所の作成方法をご教示頂けますでしょうか。
何度も大変恐れ入りますが、宜しくお願い致します。

理想のフォーム:https://d.kuku.lu/004bfc7c3b
画像

1

入力用のフォームで入力できないということでしょうか。
レコードソースのクエリで入力できますか。もし、クエリでできないならクエリの設計あるいはテーブルの設計が間違っています。

テーブルを結合するとき、少なくともどちらかのフィールドは主キー(あるいは重複不可のイデックス)である必要があります。画像をみるとそうなってない結合があります。

テーブル設計から見直す必要がありまそうです。
とりあえずは主キーがないテーブルは主キーを設定しましょう。
それと一対一の関係のテーブルは一つのテーブルにまとめるべきです。

気になったのはテーブルはデータ内容を表すものすべきだと思いますが、「T_入力用」という名称では何のデータを扱うテーブルか分かりません。「T_案件」とかデータ内容を表すものに変えたほうがいいでしょう。

1

コマンドボタンなら、角を丸くしたり、境界線に影や光彩を付けることができます。

デザインビューでコマンドボタンを選択して、
[書式]-[図形の変更]で角丸が選択できます。
また、[書式]-[図形の効果]で[影]や[光彩]を選択できます。

コマンドボタンのデザインの変更。(Access) » Accessカスタマイズ

これを利用して、テキストボックスの背面に少し大きめのコマンドボタンを配置して、プロパティを下記のように設定します。

コマンドボタン
 使用可能 いいえ
 背景色 #FFFFFF

テキストボックス
 境界線スタイル 透明

テキストボックスのイベントプロシージャ

Private Sub テキスト0_GotFocus()
    Me.コマンド2.Glow = 11
End Sub

Private Sub テキスト0_LostFocus()
    Me.コマンド2.Glow = 0
End Sub

これでテキストボックスがフォーカスを取得すると、境界線が下記のように変化します。

画像1

27
hatena 2020/05/15 (金) 17:38:57 修正

確定フィールドに「確定」という文字を入力した場合、略名の前に「確定」と表示されます。

済みません。下記に修正してください。

    Do Until rs.EOF
        With Me("T" & rs!作業日 - FirstDay)
            .Caption = .Caption & rs!開始時間 & " " & IIf(rs!確定<>"","","☆") & rs!略名 & vbCrLf
        End With
        rs.MoveNext
    Loop

☆を赤色にすることはできますでしょうか。

現状のラベルでは無理です。
ラベルをテキストボックスに変換して、プロパティを下記のように設定。
「文字書式」プロパティを「リッチ テキスト形式」
「編集ロック」を「はい」

    Do Until rs.EOF
        With Me("T" & rs!作業日 - FirstDay)
            .value = .value & "<p>" & rs!開始時間 & " "  & IIf(rs!確定<>"",""," <font color=red>☆</font>") & rs!略名 & "</p>"
        End With
        rs.MoveNext
    Loop

他の部分の Caption も Value に修正、他に修正が必要かも知れません。
実際に試してませんので、うまくいかないかも知れません。

26
OMOTI 2020/05/15 (金) 16:59:30 05554@4b4f6

例えば未確定([確定]フィールドが空欄)なら、略名の前に ☆ を表示するという仕様なら下記のコードになります。

確定フィールドに「確定」という文字を入力した場合、略名の前に「確定」と表示されます。
空欄の場合⇒☆  確定と入力された場合⇒(なにも表示しない(””))とすることはできるのでしょうか。

25
OMOTI 2020/05/15 (金) 16:55:21 05554@4b4f6

☆を表示することができました。ありがとうございます。

☆を赤色にすることはできますでしょうか。

3

うまくできました!ありがとうございました。

2
朱色 2020/05/15 (金) 00:20:42 db0eb@f5336

一度最小単価を抽出し、それをサブクエリとするクエリを組めばいけると思います。
参考:https://accessvba.blog.ss-blog.jp/2011-11-07-1

24
hatena 2020/05/14 (木) 18:05:04 修正

同日の中に確定と未確定があるので、それが分かる方法であれば、開始時間と略名が両方とも赤文字 や
マークなどでも構わないのです。

1日に複数の予定がある場合があるということですね。
だとすると、予定毎に色を変えることは一つのラベルでは無理です。
1日の最大予定数のラベルを1日当たりに配置するか、
あるいは、ラベルをテキストボックスに変更して「文字書式」プロパティを「リッチ テキスト形式」にして文字色を変更するように仕組みにする必要があります。
どちらにしても、大幅な修正が必要になります。

マークを追加するという方式なら、コードを少し修正するだけですみます。

例えば未確定([確定]フィールドが空欄)なら、略名の前に ☆ を表示するという仕様なら下記のコードになります。

    Do Until rs.EOF
        With Me("T" & rs!作業日 - FirstDay)
            .Caption = .Caption & rs!開始時間 & " " & Nz(rs!確定,"☆") & rs!略名 & vbCrLf
        End With
        rs.MoveNext
    Loop
23
OMOTI 2020/05/14 (木) 17:20:23 05554@4b4f6

同日の中に確定と未確定があるので、それが分かる方法であれば、開始時間と略名が両方とも赤文字 や
マークなどでも構わないのです。

1
OMOTI 2020/05/14 (木) 16:54:24 05554@4b4f6

フォームBを閉じて、フォームAをドラッグで戻し、再度フォームBを開いた時は、
フォームAの位置はずれません。
フォームAを開いて、フォームBを初回開いた時のみ、右側にずれてしまします。

1

よろしくお願いします。

5
hiroton 2020/05/13 (水) 17:14:47 3a565@f966d

重複可能な管理番号とタイムスタンプをつけるとかですかね。
表示したい時間でレコードを抽出すれば過去の請求書になります。