Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : Access 2016)
2次元表形式フォーム
投稿日時: 19/12/18 08:52:33
投稿者: Cyber033

テーブルに日付、人名、場所と3つのフィールドがあり、日付はある日にちから連続で続くもので、
列見出しとし、人名はある日にちに決まった10人の名前(固定)で行見出しとし、その縦横交点に場所
を入れていくフォームを実現したいのですが、可能なのでしょうか。

回答
投稿日時: 19/12/18 10:01:53
投稿者: sk

引用:
テーブルに日付、人名、場所と3つのフィールドがあり、
日付はある日にちから連続で続くもので、列見出しとし
人名はある日にちに決まった10人の名前(固定)で行見出しとし、
その縦横交点に場所を入れていくフォームを実現したいのですが、
可能なのでしょうか。

出来るか出来ないかの話で言えば
「 VBA を使えば制限つきで可能だが、一般機能のみでは無理
という回答にはなります。
 
また、VBA を使用しても「無限の時間軸を表現できるフォーム」を
作ることは不可能です。
 
・(データシートフォームの場合)
 Access のテーブルにおいて定義可能なフィールドの数は
 255 個までである。
 
・(単票フォーム/帳票フォームの場合)
 Access のフォームの[幅]プロパティに設定可能な長さの上限は
 55.87 cm( 22 inch )までである。
 
例えば、フォームに表示する[日付]の範囲を任意の年月で
絞り込めるようにして、指定された年月の 1 日から月末日までを
列見出しとして表現するといった方式が考えられますが、
CRUD 機能も含めて実装するとなると非常に面倒なことになるでしょう。

回答
投稿日時: 19/12/18 10:11:32
投稿者: よろずや

一般機能で可能かと言われたら、難しい。
少なくとも私は思いつかない。
VBAでゴリゴリ書けば出来そう。

回答
投稿日時: 19/12/18 10:54:28
投稿者: sk

参考までに hatena さんのブログの記事へのリンクを貼っておきます。
 
hatena chips より:
https://hatenachips.blog.fc2.com/blog-entry-117.html
 
上記記事に例示されているのは、
「任意の日付を開始日として指定し、0 〜 6 日後の各日付を
 列見出しと表示する(表示する日付範囲を 1 週間に限定する)」
場合の方法です。
 
但し、ここでやっていることはあくまで
「行列変換されたデータの表示」です。
 

引用:
テーブルに日付、人名、場所と3つのフィールドがあり、
日付はある日にちから連続で続くもので、列見出しとし、
人名はある日にちに決まった10人の名前(固定)で行見出しとし、
その縦横交点に場所を入れていくフォームを実現したい

「各セルに対する入力内容を、どうやって元のテーブルに反映させるか
(レコードの追加/更新/削除)」という問題はまた別です。

回答
投稿日時: 19/12/18 14:27:28
投稿者: hatena
投稿者のウェブサイトに移動

VBAなしかつ連結でということなら、下記を参考にすれば近いものは作成できます。
 
連結入力フォームのレイアウトを自由に設計したい - hatena chips
https://hatenachips.blog.fc2.com/blog-entry-395.html

投稿日時: 19/12/25 17:24:10
投稿者: Cyber033

フィールドを日付(例えば今日から1週間)、人名(10名固定)、場所とし、列見出しに日付、
行見出しに人名とし、日付と人名の交点に場所を記入するフォームにしたいのですが、その
デザインをどう作成するのかが、わかりません。

回答
投稿日時: 19/12/30 11:54:14
投稿者: hatena
投稿者のウェブサイトに移動

Cyber033 さんの引用:
フィールドを日付(例えば今日から1週間)、人名(10名固定)、場所とし、列見出しに日付、
行見出しに人名とし、日付と人名の交点に場所を記入するフォームにしたいのですが、その
デザインをどう作成するのかが、わかりません。

この板は「一般機能」の板なので、VBAは使わずにということですよね。
 
私の上の回答のリンク先の「勤務予定表(シフト表)」のサンプルがほぼご希望のものに近いと思います。(VBAは少し使ってますが)
 
これを参考にできるところまでご自身で作成してみて、行き詰ったら、どこまでできて、どの部分がうまくいかないか質問してください。

投稿日時: 20/01/24 11:34:49
投稿者: Cyber033

hatena様、sk様のアドバイスを基にやっていますが、中々うまくいきません。
sk様 12/18投稿の例のように開始日、最後日を指定し、行見出し、列見出しがあり、
その交点に予約者名を入力するフォームとしたいのですが、なるべくVBAを使わず
に作成したい。例えばフォーム上で開始日、最後日を指定し、その日付が列見出し
となり、その日付内のある日付のレコード値があればそのレコード値が表示され、
空白の日付に新規に予約者名を入力していくフォームを作成したい。
 

トピックに返信