No.7ベストアンサー
- 回答日時:
#1 です。
勤務シフトというので てっきり ”1日間の時間 ”と思ってましたが ”年月日の期間 ”ですか それなら 少し工夫が要ります。
”勤務(担当)期間 " 等のテーブルを造ります。
フィールドは [ ID ] 設定しなくてもOKですが ・・・
[担当者名]
[開始日時]
[終了日時]
[ 登録日 ] 初期値 = Today()
[ 修正日 ] 変更時に = Today()
後は各自の勤務期間を入力するだけです。
Aさん、Bさんが それぞれ期間を離れて 勤務する時も対応出来ます。
複数登録すれば良いのですから。
期間終了後有る程度に日にち後に 該当するレコードを削除すれば 管理も楽です。
私は これを使って 配属職人 と 下請け職人 合計30~50人 を何処の現場へ 派遣するるか を 現場の要望する期間に "空いてるか ?”を確認しもう一つは ”技能職種レベル ”も 個人フィールドにありますのでこれを検索参照しながら 予定を ”ガンチャート ”で表示して使ってます。
参考になれば幸いです。
この回答への補足
おお、ありがとうございます。
別に勤務シフトとかは例で期間は固定されているものなので(下の植物の例みたいに)登録日・修正日は必要ないとしてこれでいけそうです。
ただこう登録しても開始~終了までつながっている(3月~5月には3,4,5月が含まれている)ことを理解させるにはどうすればいいのでしょうか?(検索に使います。)
あと、「Aさんは4~6月と12月」とする場合は
4~6月と12~12月を違うレコードで登録すれば済むのでしょうか。
とりあえず土台のようなものは見えてきたような気がします。
引き続きアドバイスなどお待ちしております。
#ガンチャートってガントチャートでいいんですよね?
No.11
- 回答日時:
再度・・#1です。
余談ですが ISO96968 は ”アイエスオー クルクルパー ”と読んで下さい。 ISO 関連 で苦労したので ・・・・
Access では 色々な関数が利用できます。
しかし 年度を跨ぐ連続した ”月 ”を 対象にするなら 少なくても
”年月 ”の文字は必要ですね。例えば ”2007-12 ”とか
”2008-03 ”とか・・・これらの文字列から 年度と 月を 日付に変換する関数は有りますが 扱うには 多少のテクニックが要ります。
詳しくは ヘルプ等で 確認して下さい。
汎用性を考慮すると ”日付型 ”でデーターを持つのが良いのですが。
文字列型 でも出来ない事は有りません。
文字列もPC内部では ”大きさ ”を比較してるのですから 簡単にご希望の ”3月 ”開始 ”5月 ”終了でも 動くとは思いますが・・・
先に述べた様に 年度が替わることも考慮に入れないといけません。
また 入力形式は 一定でないと 思うようには結果が出ません。
”3月 ”と ”5月 ”の様に全角と半角の比較をすると 結果は・・?
一度やってみて下さい。
後は Mounth 関数 Yea 関数 等を 使う手もありますが 詳細は ヘルプや 参考書で確認をしておいて下さい。
それでも旨く行かないときは ”どこで つまずいてるのか ”が解る様なご質問をされると 優秀なサポートを受けられると思います。
私も Access は勉強中です。お互いに 頑張りましょう。
この回答への補足
ありがとうございます。
Mounth→Month、Yea→Yearでよろしいですね?
なるほど、データ量の比較という面では別にテキストでもかまわないわけですか・・・
自分が登録したいのは「毎年期間が固定されているもの」なので、
またぐ場合は「11月から来年の2月」とだけ登録すればOKです。
それをどう理解させるかですね・・・
まあ1970年と1971年で登録して月だけを呼び出せばOKだと思います。
あとはフォームをどう構成するか、何と何をリレーションさせるかですね…
No.10
- 回答日時:
#1 です。
ご指摘ありがとうございます。 ガントチャートでしたね。
ながれとしては・・
検索したい指定日が Aさんの 開始日と終了日の間にあるか? を調べればいいのです。
ガントチャートでは 開始日に ”< ”、期中には ”= ”、終了日には ”>”を 表中に表示しております。
>あと、「Aさんは4~6月と12月」とする場合は
>4~6月と12~12月を違うレコードで登録すれば済むのでしょうか
はい! なんどでも登録します。
それで行けるはずですが・・・
もう少しのようですね。頑張って下さい。
この回答への補足
たびたびありがとうございます。もう少しで完成・・・だと思います。
自分としては簡単なデータベースなので、「○月」だけをテキストで登録しようとしていましたが、
期間という概念をデータベースに理解させるという面でも
日付/時刻型で○月1日~△月31日 のように登録したほうがいいのでしょうか。
(絞り込むなら○月1日で検索すればでますし)
これでテーブル開発が完了すれば、あとは対象が登録されているテーブルとリレーションシップでつないでフォームを構成してあらかた完成です。
しばらく待ってみましたが最終的な回答が得られなかったため締め切ります。
あとは自分で何とか…
ISO96968さんをはじめとする皆様、ありがとうございました。
No.9
- 回答日時:
実際に管理されるデータはどのようなものでしょうか?
シフトみたいに一日の間で、ある程度パターンが決まっているものなのか、
空室状況の照会のように年月日まで管理するものなのか。
業務内容について触れられないのであれば、ある程度類似した例で紹介していただければと思います。
年月日を管理するのであればISO96968さんがおっしゃるように開始と終了の両日付を持たせます。
検索条件は、
指定した日付が[開始日時]以上 かつ(AND)
指定した日付が[終了日時]以下
で指定すれば良いかと思われます。
具体的な式は、検索して調べてみてください
No.8
- 回答日時:
#1 です。
訂正します。
誤>”技能職種レベル ”も 個人フィールドにありますので
正>”技能職種レベル ”も 個人テーブル にありますので
すんませんでした。
No.6
- 回答日時:
>具体的に意味がよくわからないのです・・・
具体的に言うと下記のようになります。
わかり易くするため、あえて主キーとなるコードを一部省いてますが・・・
<従業員テーブル>
名前 年齢 住所
Aさん 20 ○○町~~
Bさん 27 ××市~~
Cさん 35 △△村~~
・・・
<シフトテーブル>
名前 勤務コード
Aさん パターン1
Aさん パターン2
Bさん パターン1
Cさん パターン1
Cさん パターン3
・・・
<勤務パターンテーブル>
勤務コード 時間
パターン1 09:00~12:00
パターン2 12:00~15:00
パターン3 15:00~18:00
・・・
上記の場合、<従業員テーブル>一人に対して<シフトテーブル>で複数の勤務パターンが存在しています(1対多)。
一人当たりの勤務パターンが増えても減っても<シフトテーブル>のレコード追加/削除でメンテできます。
検索条件はシフトテーブルの勤務コードフィールドに対して条件を指定します。
例えば09:00~の従業員を抽出したい場合は条件をパターン1で検索すればいいわけです。
多分これがいわゆる教科書どおりの作りだと思われます。
「テーブルの正規化」で検索しましょう。
こんな感じの参考ページが見つかると思います。
この回答への補足
ありがとうございます。
なるほど、こうすれば確かに便利ですね・・・データ量も減りますし。
自分としては
たとえば、「パターンAが3月~6月 Bが4月~10月だったとして5月に当てはまるものを探すことができる」ようにしたいと思っています。
そのためには「3月~6月に3,4,5,6月が含まれること」を理解させる必要があるので、相当難しくなってきますよね。(素人見解ですが)
自分が想定しているのは・・
植物の名前、種植え~開花までの期間を登録した簡単なデータベースを作るとします。
○○草 3月~9月
○○花 10月~3月
△△草 2月~5月・8月~10月
のように複数の植物を登録していき、4月を検索して、当てはまる植物の一覧を参照できる形です。(登録されていないものは表示しない)
No.5
- 回答日時:
なるほど、意図はわかりました。
ただ、ANo3で書いたとおり、作りとしてはあまり良くないと思いますよ。
勤務パターンが変更になった時など何かとメンテナンスが不便になると思います。
一人で複数の勤務パターンを持つのであれば、1対多のテーブルで一人辺りの勤務パターンを複数レコードで管理した方が絶対いいです。
おっしゃる絞込み検索についても、こちらの方が実現しやすいはずですしね。
どうしても、テキストの連結にこだわるのであれば、
・追加クエリに式を入れる。
・VBでコントロールする。
などの方法になります。
これらはネットで調べればすぐわかると思いますが、その前にテーブルの正規化を調べたほうが、労力的にも楽ですよ。
是非、ご検討ください。
この回答への補足
ありがとうございます。
>> 一人で複数の勤務パターンを持つのであれば、1対多のテーブルで、一人辺りの勤務パターンを複数レコードで管理した方が絶対いいです。
具体的に意味がよくわからないのです・・・
テキストの連結にはこだわらない(印刷などするわけではない)ので…
要するに別テーブルに存在するパターンを全て登録してリレーションシップでつなぐということですか?
No.4
- 回答日時:
シフト時間のエリアが固定されてるなら、コード化するやり方もあるかも知れません。
例えば、5シフトあって、第2,3シフトを連勤した場合、
01100
とするとか。
No.3
- 回答日時:
質問者様の意図を理解できてなかったらごめんなさい。
1フィールドに対して[yes/no]型を複数選択は無理です。
フィールド型をテキスト型にした上で、フォーム上でチェックを付けた項目を連結/テキスト作成してテーブルに保存する。
と言うのは駄目なのでしょうか?(作りとしては良くない)
例↓
<フォーム>
名前:Aさん
シフト:9:00~12:00にチェック、12:00~15:00にもチェック
ボタンイベントの際に連結して↓
<レコード>
Aさん 9:00~12:00,12:00~15:00
こういうことですか?違います?
ちなみに、1フィールドに複数の[yes/no]型で選択するのは何か事情があるのですか?
通常はISO96968さんがおっしゃるように勤務パターンをコード化して勤務パターンテーブルとリレーションさせると思います。
この回答への補足
アドバイスいただきありがとうございます。
なるほど、やはりCHRONOS_0さんも仰せのとおりチェックボックス型は無理なのですね・・・
-----引用-----
<フォーム>
名前:Aさん
シフト:9:00~12:00にチェック、12:00~15:00にもチェック
ボタンイベントの際に連結して↓
<レコード>
Aさん 9:00~12:00,12:00~15:00
------------
これは全くそのとおりです。自分は最終的にこれを求めています。
表を作ったりするだけだったら別々の項目でもいいのかもしれませんが、自分は「項目(ここではシフト)を対象に絞込み検索を行える」ことを想定しています。
例:「時間帯A、Bがオン」「時間帯Aがオンの中でBはオフ」を検索できる
正直自分はAccessに手をつけたばかりなもので、「コード化」や「ボタンイベント」などはまったくわかりません。
「コード化」とは、ここではパターンテーブルに全てのパターンを登録するということなのですか?
引き続きアドバイスをお待ちしております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELピボットテーブル(複数アイテム) 1 2023/04/27 12:15
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Windows 10 windowsのファイル複数選択について エクスプローラーなどでファイルを複数選択する際、 最初のフ 4 2022/05/22 16:39
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。 3 2023/03/19 18:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリ上でフィールド名が2つ...
-
ACCESSの時刻の引き算
-
アクセスでの、フォームとテー...
-
アクセス:SQLでフィールド...
-
Accessで更新履歴情報を保存(...
-
Accessで1つのフィールドに複...
-
アクセス・テーブルの改行につ...
-
アクセスの追加クエリで教えて...
-
ACCESSのリストボックスで複数...
-
Accessのフォームにテーブルの...
-
Access フォーム上でのテキス...
-
Access ルックアップが反映され...
-
Excel→Access VBAによるインポート
-
Access where条件式について
-
アクセスでテーブル入力用のフ...
-
Accessでチェックボックスから...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
アクセスのエラー「クエリには...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クエリ上でフィールド名が2つ...
-
アクセス・テーブルの改行につ...
-
Accessで更新履歴情報を保存(...
-
アクセス: フォーム上で計算...
-
Access フォーム上でのテキス...
-
ACCESSの時刻の引き算
-
Access 別テーブルにある値を抽...
-
アクセスクエリで英数字のみ半...
-
INT関数のバグ?
-
アクセスでの、フォームとテー...
-
アクセス:SQLでフィールド...
-
access テーブルの色分けについて
-
ACCESSのリストボックスで複数...
-
アクセスでフォームに入力した...
-
アクセスに自動入力を入れたい
-
Accessでチェックボックスから...
-
アクセスでテーブル入力用のフ...
-
Access 住所入力支援が機能しま...
-
Access ルックアップが反映され...
-
Access フォームで複数テーブル...
おすすめ情報