Microsoft Access 掲示板

views
4 フォロー
6,283 件中 5,361 から 5,400 までを表示しています。
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

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

4
みか 2020/05/12 (火) 18:08:48 8e098@2bcd5

フォームを通した操作はレコードに反映される前にキャッチできるので、実際には既存のレコードは更新せずに、新規レコードを登録するというようなことができます。

というのは具体的にどのようしたらよいのでしょうか?
削除した場合は削除フラグをつけるだけ
修正したら修正フラグをつけて修正前ID(主キー)をフィールドに格納して
とかですか?

22
OMOTI 2020/05/12 (火) 15:51:23 05554@4b4f6

開始時間と略名の両方が赤字表示でも良いです。

お手数をお掛けして申し訳ございません。

3
WAGONR 2020/05/12 (火) 10:05:30 93ded@e79a7

hatena様
ありがとうございます。参考にさせていただきます。

1

「水平アンカー」「垂直アンカー」プロパティを使えば、コントロールのサイズや位置を、フォームサイズの変更に合わせて自動変更させることが可能です。

■T'sWare Access Tips #467 ~アンカーのいくつかの適用バリエーション~

リボンメニューの「アンカー設定」でも設定可能です。

MukkuMuku備忘: Access 2010/2013 水平アンカー/垂直アンカー -1-

MukkuMuku備忘: Access 2010/2013 水平アンカー/垂直アンカー -2-

21

開始時間 と 略名 を一つのラベルに表示してますので、略名だけ赤字表示するのは現状では無理です。
全体を赤字表示するか、背景色を変更するとか、マークを表示するとか、別の方法で目立たせる方法ではだめですか。

3
hiroton 2020/05/11 (月) 17:40:12 e8367@f966d >> 1

それが必要なら「履歴管理をする」ですね。

例えばあとから間違いに気が付きレコードをいじったときに

フォームを通した操作はレコードに反映される前にキャッチできるので、実際には既存のレコードは更新せずに、新規レコードを登録するというようなことができます。

後は必要に応じて必要なレコードを表示できるような仕組みを作っておけばいいでしょう。

20
OMOTI 2020/05/11 (月) 17:23:51 05554@4b4f6

大変失礼致しました。
赤文字表示したいフィールド名は、略名(hatenaさんが作成されているものでは「件名」の部分になります。)になります。
T1~T42のラベル部分の中で、未確定の件名を赤文字で表示したいです。
(予定を入力しているのですが、確定と未確定が一見すると分からないので)

Q_作業日一覧カレンダー表示用 に フィールド名⇒確定(短いテキスト)があります。
未確定の場合は空欄です。  空欄の場合は略名(件名)を赤文字で表示し、「確定」と入力されたら略名(件名)が黒文字になるという設定にはできないでしょうか。

2

例えばあとから間違いに気が付きレコードをいじったときに
相手からの要望などで過去の請求書(間違ったままの状態のもの)を発行できなくなりませんか?

EXCELの現状では請求書の分は間違ったままになるので
再発行しても当時と同じものがだせます

3

hirotonさん、ご指摘ありがとうございます。
そのようですね。回答修正しておきます。

2
hiroton 2020/05/11 (月) 11:30:13 修正 e8367@f966d >> 1

詳細はレポートだとセクション名で予約されてるから[詳細]コントロールは作れないんですよね
[テキスト2]とか自動で付けられる名前になってるんじゃないかと思います

1
hatena 2020/05/11 (月) 11:02:01 修正

エクセルのように表組みで
商品 詳細
と配置します

レポートで出力時のレイアウトの話でしょうか。
以下、レポートでの話として回答します。

長い商品名もあるので商品フィールドを詳細の上に配置して
そのままつきぬけて表示できるようにします
かりに詳細に何か入力があったときに商品フィールドを短くして入らなければフィールドを拡張(2段になるやつ)するにはどうしたらよいですか?

商品名用のテキストボックスを2つ配置して、一つは横幅を詳細にも重なるように広げたものにします。
もう一つは、詳細には重ならないような幅にします。
それぞれのテキストボックス名を「商品1」「商品2」とします。
プロパティを下記のように設定します。

また、「詳細」フィールドと連結しているテキストボックス名を「詳細1」とします。

商品1
コントロールソース =IIf([詳細1] <> "", "", [商品])
印刷時拡張 いいえ

商品2
コントロールソース =IIf([詳細1] <> "", [商品], "")
印刷時拡張 はい

以上でご希望のレイアウトになります。

1
hiroton 2020/05/11 (月) 09:30:54 e8367@f966d

おおよそ思われている通りです。リレーションで調べてみてください。

いまはEXCELで手動コピペなのでどちらにもデータは残っているので、一度作成した請求書の内容がなにかのはずみで変わることはありません
Accessでは少し不安です

ACCESS(データベース)では、データそのものはテーブルに保存、データに対する操作(追加、修正、閲覧)はフォーム(専用の画面)を作成して行います。
フォームでは必要な情報のみを表示し、その情報の修正可否も個別に設定できるので、Excelのようにデータが誰でも自由に触れる状態よりもはるかに安全な仕組みを作れますし、必要ならログを取ることもできるでしょう。

正直Excelの何をそんなに信用しているのか疑問ですが、ACCESSを導入するとなれば管理者(技術者)も必要ですし、使う側への教育も必要でしょうから費用対効果を考えてみては?

1
hiroton 2020/05/11 (月) 08:41:10 e8367@f966d

定義域集計関数で調べてみてください
ex.

IIf(DCount("*","Q勤務集計","氏名='"& [氏名] &"' AND 日付>" & Date()-Weekday(Date()) & " AND 所要時間>" & 10)>=2,"上限")
IIf(Dsum("所要時間","Q勤務集計","氏名='"& [氏名] &"' AND 日付>=" & DateSerial(Year(Date()),Month(Date()),1))>=100,"上限")
IIf(Dsum("所要時間","Q勤務集計","氏名='"& [氏名] &"' AND 日付>=" & DateSerial(Year(Date()),1,1))>=800,"上限")
19
名前なし 2020/05/08 (金) 17:26:57 fa807@1d866

スケジュール内容が未確定の場合は、赤文字で表示したいと思っています。
短いテキストで 未確定の場合⇒空欄,確定の場合⇒確定 と作成しています。

このデータが入っているフィールド名は何でしょうか。
また、どこを赤文字で表示するのでしょうか。
空欄なら、文字自体がないのですが。

2
名前なし 2020/05/08 (金) 16:58:23 fa807@1d866

下記のページも参考になると思いますのでよろしかったらご参照ください。

グループ化して両面印刷するときに、グループ毎に分けて出力したい - hatena chips

こちらは、グループ毎のページ数を表示させることが可能です。

1
WAGONR 2020/05/08 (金) 14:51:17 93ded@e79a7

下記ページにより自己解決しました。
お騒がせしました。
https://www.accessdbstudy.net/entry/20080723/p1

18
OMOTI 2020/05/08 (金) 12:02:40 05554@4b4f6

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

スケジュール内容が未確定の場合は、赤文字で表示したいと思っています。
短いテキストで 未確定の場合⇒空欄,確定の場合⇒確定 と作成しています。

カレンダーに「確定」の文字を表示する必要はないのですが、文字色を分けて 確定・未確定の判断をしたいと思っています。
どのように記述すれば、表示することができるのでしょうか…
よろしくお願いします。

Public Sub SetSchedule()
Dim i As Integer, rs As DAO.Recordset
    For i = 1 To 42
        Me("T" & i).Caption = ""
    Next
    Set rs = CurrentDb.OpenRecordset( _
        "SELECT 開始時間, 作業日, 略名 FROM Q作業日一覧カレンダー表示用 WHERE " &
        "作業日>#" & FirstDay & "# AND 作業日<=#" & FirstDay + 42 & "#",

        dbOpenForwardOnly, dbReadOnly)
    Do Until rs.EOF
        With Me("T" & rs!作業日 - FirstDay)
            .Caption = .Caption & rs!開始時間 & " " & rs!略名 & vbCrLf
        End With
        rs.MoveNext
    Loop
    rs.Close: Set rs = Nothing
End Sub

8
チーズ 2020/05/06 (水) 05:06:55 e7250@085c5

ご助言頂きましてありがとうございます。
定期的なバックアップ、承知しました。
ありがとうございました!

7
名前なし 2020/05/06 (水) 02:10:25 fa807@1d866 >> 6

はい、別ファイルですので、影響はないです。

アクセスファイルは運用中に破損する場合がありますので、定期的にバックアップ(コピー)を取っておいた方がいいです。

6
チーズ 2020/05/05 (火) 19:29:00 e7250@085c5

お返事ありがとうございます。

つまり、コピーしたアクセスから、直接入力してある過去実績データテーブルを消去しても、オリジナルのアクセスへの影響はないという理解で合ってますでしょうか。

宜しくお願い致します。

5
名前なし 2020/05/05 (火) 18:54:08 fa807@1d866 >> 4

アクセスファイル内のテーブルのデータを削除するということなら、他のファイルへの影響はありません。

4
チーズ 2020/05/05 (火) 18:37:00 e7250@085c5

お返事ありがとうございます。私の説明不足で申し訳けありません。

蓄積している営業データはアクセスのテーブルに直接入っているのですが、そのデータと結びつける他のデータ(エクセル)が私のデスクトップにリンクしています。エクセルファイルはクエリの為に使っています。

3

エクセルファイルとリンクしているなら、データはAccessファイルではなく、エクセルファイルの方ににあるので、Accessファイルをコピーして過去データを消去するというのは矛盾してます。
エクセルファイルをコピーして、過去データを削除して、テーブルのリンク先をコピーしたエクセルファイルに切り替えるという操作になるはずです。

2
チーズ 2020/05/05 (火) 14:38:04 e7250@085c5

ご助言ありがとうございます!

リンクテーブルとは、アクセスとアクセス同士のことでしょうか?
オリジナルのアクセスの中で、自分のデスクトップにあるエクセルファイルとリンクしておりますが、この場合は大丈夫でしょうか?

下記のように、別のエクセルファイルにリンクを繋ぎ直せば大丈夫でしょうか?

オリジナルアクセス−ファイルA
アクセス(コピー)−ファイルB(Aをコピー)

宜しくお願い致します。

1

これら2つのアクセスは、全く別のものだと考えて大丈夫でしょうか?

リンクテーブルを使っていないなら大丈夫です。

6
hiroton 2020/05/02 (土) 11:27:28 1bf02@f966d

長々と回答を考えていたら解決のレスが・・・

VBAコードの一例を載せておきます。

'所属追加フォームのモジュール'
Private Sub レコードセーブボタン_Click()
    Forms!メインフォーム!所属.Requery
End Sub

フォーム自身を更新せずに所属や役職のコントールをそれぞれ更新すればスクロールは発生しません。

マクロだからeasyかと思いましたが、VBAとは違って、[TempVars]![MyVal]のフォーマットだし、かといってMacroの書式について初心者向けの資料もないし。。。。

フォーマットについてはVBAでも変わりませんね。

資料の有無でいえば圧倒的なのはそうですねぇ。
マクロだからeasyというよりは簡易機能ならマクロでもできるって感じですね。