アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessで、1つのフィールドで複数選択可能な選択肢を設ける方法はあるのでしょうか?
たとえば、スタッフのシフトを表す「何時から何時」という項目を複数作りたいのです。
自分の想定しているものでは、チェックボックスで複数選択できるようにしたいと思っています。
テーブルでできなくても最終的にフォームで登録時に実現できればいいと思っています。

アドバイスをよろしくお願い申し上げます。

A 回答 (11件中1~10件)

”シフト体系 ”と云う名前(他に適当な名前を付けて下さい)のテーブルを造ります。


そこに シフトID (オートナンバー)
    シフト名 ( Aシフト Bシフト 等 )
    時間帯
    備考
のフィールドを作成してテーブルにデーターを入れます。

これを 勤務計画表 での 適用シフト 等のフィールドで コンボボックスで
シフト名を選択して 登録する事で 実現できます。
詳しくは Access のヘルプに書かれて居ますが・・・・
英語で造られた物を 日本語に直してますので こなれた日本文では
ないので 慣れるまでは どんな意味? と思うことが 多いですが
丁寧に造られてますので 努力して 理解して 下さい。

この回答への補足

アドバイスいただき、ありがとうございます。
コンボボックスと書かれていますが、それでは1つの内容しか選択できないので自分の考えているものとは異なっています。
自分の説明不足だと思いますが、「シフト」は単純な例であって、「1フィールドの中で複数項目(Yes/No型)があり、複数の選択が可能」なのがが前提です。
例としてまたシフトを引っ張ってきますが、
「Aさんは9:00~12:00と12:00~15:00のシフトをまたいでいる」などのデータを登録したいのです。

補足日時:2008/01/23 23:15
    • good
    • 0

できません


出来たとしてもそのようなものは非常に使いづらいものになるでしょうし
2つに分ければ済むだけの話ですから今後もサポートされることはないでしょうね
    • good
    • 0

質問者様の意図を理解できてなかったらごめんなさい。



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に手をつけたばかりなもので、「コード化」や「ボタンイベント」などはまったくわかりません。
「コード化」とは、ここではパターンテーブルに全てのパターンを登録するということなのですか?

引き続きアドバイスをお待ちしております。

補足日時:2008/01/24 15:58
    • good
    • 0

シフト時間のエリアが固定されてるなら、コード化するやり方もあるかも知れません。


例えば、5シフトあって、第2,3シフトを連勤した場合、
01100
とするとか。
    • good
    • 0

なるほど、意図はわかりました。


ただ、ANo3で書いたとおり、作りとしてはあまり良くないと思いますよ。

勤務パターンが変更になった時など何かとメンテナンスが不便になると思います。
一人で複数の勤務パターンを持つのであれば、1対多のテーブルで一人辺りの勤務パターンを複数レコードで管理した方が絶対いいです。
おっしゃる絞込み検索についても、こちらの方が実現しやすいはずですしね。

どうしても、テキストの連結にこだわるのであれば、
・追加クエリに式を入れる。
・VBでコントロールする。
などの方法になります。
これらはネットで調べればすぐわかると思いますが、その前にテーブルの正規化を調べたほうが、労力的にも楽ですよ。
是非、ご検討ください。

この回答への補足

ありがとうございます。
>> 一人で複数の勤務パターンを持つのであれば、1対多のテーブルで、一人辺りの勤務パターンを複数レコードで管理した方が絶対いいです。
具体的に意味がよくわからないのです・・・
テキストの連結にはこだわらない(印刷などするわけではない)ので…
要するに別テーブルに存在するパターンを全て登録してリレーションシップでつなぐということですか?

補足日時:2008/01/24 22:45
    • good
    • 0

>具体的に意味がよくわからないのです・・・



具体的に言うと下記のようになります。

わかり易くするため、あえて主キーとなるコードを一部省いてますが・・・

<従業員テーブル>
名前   年齢  住所 
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月を検索して、当てはまる植物の一覧を参照できる形です。(登録されていないものは表示しない)

補足日時:2008/01/25 02:40
    • good
    • 0

#1 です。


勤務シフトというので てっきり ”1日間の時間 ”と思ってましたが ”年月日の期間 ”ですか それなら 少し工夫が要ります。

”勤務(担当)期間 " 等のテーブルを造ります。
フィールドは [ ID ] 設定しなくてもOKですが ・・・
       [担当者名]
       [開始日時]
       [終了日時]
       [ 登録日 ] 初期値  = Today()
       [ 修正日 ] 変更時に = Today()

後は各自の勤務期間を入力するだけです。
Aさん、Bさんが それぞれ期間を離れて 勤務する時も対応出来ます。
複数登録すれば良いのですから。
期間終了後有る程度に日にち後に 該当するレコードを削除すれば 管理も楽です。

私は これを使って 配属職人 と 下請け職人 合計30~50人 を何処の現場へ 派遣するるか を 現場の要望する期間に "空いてるか ?”を確認しもう一つは ”技能職種レベル ”も 個人フィールドにありますのでこれを検索参照しながら 予定を ”ガンチャート ”で表示して使ってます。

参考になれば幸いです。

この回答への補足

おお、ありがとうございます。
別に勤務シフトとかは例で期間は固定されているものなので(下の植物の例みたいに)登録日・修正日は必要ないとしてこれでいけそうです。
ただこう登録しても開始~終了までつながっている(3月~5月には3,4,5月が含まれている)ことを理解させるにはどうすればいいのでしょうか?(検索に使います。)
あと、「Aさんは4~6月と12月」とする場合は
4~6月と12~12月を違うレコードで登録すれば済むのでしょうか。
とりあえず土台のようなものは見えてきたような気がします。

引き続きアドバイスなどお待ちしております。

#ガンチャートってガントチャートでいいんですよね?

補足日時:2008/01/26 00:17
    • good
    • 0

#1 です。


訂正します。
誤>”技能職種レベル ”も 個人フィールドにありますので
正>”技能職種レベル ”も 個人テーブル にありますので
すんませんでした。
    • good
    • 0

実際に管理されるデータはどのようなものでしょうか?


シフトみたいに一日の間で、ある程度パターンが決まっているものなのか、
空室状況の照会のように年月日まで管理するものなのか。
業務内容について触れられないのであれば、ある程度類似した例で紹介していただければと思います。

年月日を管理するのであればISO96968さんがおっしゃるように開始と終了の両日付を持たせます。
検索条件は、
指定した日付が[開始日時]以上  かつ(AND)
指定した日付が[終了日時]以下
で指定すれば良いかと思われます。

具体的な式は、検索して調べてみてください
    • good
    • 0

#1 です。


ご指摘ありがとうございます。 ガントチャートでしたね。

ながれとしては・・
検索したい指定日が Aさんの 開始日と終了日の間にあるか? を調べればいいのです。
ガントチャートでは 開始日に ”< ”、期中には ”= ”、終了日には ”>”を 表中に表示しております。

>あと、「Aさんは4~6月と12月」とする場合は
>4~6月と12~12月を違うレコードで登録すれば済むのでしょうか
はい! なんどでも登録します。
それで行けるはずですが・・・

もう少しのようですね。頑張って下さい。

この回答への補足

たびたびありがとうございます。もう少しで完成・・・だと思います。
自分としては簡単なデータベースなので、「○月」だけをテキストで登録しようとしていましたが、
期間という概念をデータベースに理解させるという面でも
日付/時刻型で○月1日~△月31日 のように登録したほうがいいのでしょうか。
(絞り込むなら○月1日で検索すればでますし)
これでテーブル開発が完了すれば、あとは対象が登録されているテーブルとリレーションシップでつないでフォームを構成してあらかた完成です。

補足日時:2008/01/27 04:07
    • good
    • 0
この回答へのお礼

しばらく待ってみましたが最終的な回答が得られなかったため締め切ります。
あとは自分で何とか…
ISO96968さんをはじめとする皆様、ありがとうございました。

お礼日時:2008/03/26 00:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!