No.1
- 回答日時:
MS-Accessをバックグラウンドに、Delphiでアプリケーションの使用状況をグラフ化したことがあります。
縦軸にアプリケーション名、横軸に時刻で、MS-Accessの日付時刻型からデータを拾います。これは難しくないので、VBAでも簡単にできるでしょう。しかし10年以上前ですが、DOS+C++で会議室予約ソフトを作ったときは、重複排除や、予約中のロック(予約するためのあれこれを書き込んで、登録しようとした寸前に、別の人に横取りされるのを防ぐ)辺りの実装が面倒でした。
で、MS-Accessにこだわらなければ、ベクターで「会議室予約」で検索すると、色々あがってきます。ひょっとすればバックグラウンドでMS-Accessを使用しているのもあるかもしれません。いかがでしょうか?
参考URL:http://search.vector.co.jp/search?query=%89%EF%8 …
回答ありがとうございます。MS-Accessの利用が諸般の理由で前提となってしまっているので、他のツールで作るのはちょっと無理な状況です。ベクターで真似をしたいと思えるAccessベースの予定表はいくつも見つかったのですが、残念ながらロックされていてデザインビューで見ることができないのでした。
No.2
- 回答日時:
>予約済みの時間帯(枠)は色付けします。
利用者名もその枠内に表示したいです利用者名も枠内に表示するのは難しいですね。
そのような機能を提供してくれるものは申し訳ないですが知りません。
複数の施設の状況をフォームで表示するのは出来ますが。
複数の施設の一覧フォームで予約されてる時間を色分けして利用者は例えば施設名をクリックするとその施設の利用者名と時間が表示されるフォームを開くようにする方が楽にできると思います。
回答ありがとうございます。「ぱっとみて誰がどの施設を使っているかわかる」デザインを目指しているので、もう一つ別のフォームを開いて詳細を表示するというデザインとはちょっと目的が異なりそうです。今は時間帯の表示を目指していますが、日別、週別もいずれ必要になるのでそのときはもう一枚フォームを開くようなデザインにしようと思います。
No.3ベストアンサー
- 回答日時:
そう難しくないと思うんですが、ただ面倒なだけで。
フォーム上で実現したいということですよね?
施設予約情報はテーブルに入っているのですよね?
フォーム上で該当日付のレコード分のラベルを配置して時間分伸ばしたり縮めたりすればいいんでは?ラベルのプロパティのWidthを変更で。
ラベルの位置も移動できますし、Captionを変えれば利用者も表示できます。色も変えられます。
ただ、あまりラベルを多く増やすとかなり重たくなりますがね。
もしラベルをドラッグ&ドロップで移動したり伸びちぢみさせるならば面倒なのでやりたくないですが。でもそれをやるとテーブルとの連動も必要だからやらないか。
回答ありがとうございます。動的にラベルの大きさの変更が可能なんですね。ドラッグ&ドロップまでは考えていませんでしたが、動的にプロパティを変更できるならそれも可能ですね。ラベルの数は100枚程度になりそうなので、どのくらい重くなるか実験してみます。
No.4
- 回答日時:
#3の「ラベル」というアイディアは面白いですね。
試しにコードを書いてみました(ただしDelphi)。100件表示に120ミリ秒(環境:Pen4 1.5GH + 523KB RAM + Win2K )。充分実用になるでしょう。しかし面倒なのは#1で書いたように、ロックや重複チェックなんですよね。以下はご参考までに
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
for i := 0 to 100 do begin
Labels[i]:=TLabel.Create(Self);
with Labels[i] do begin
Parent:=Form1;
Color:=clAqua;
AutoSize:=False;
end;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
i:integer;
begin
for i := 0 to 100 do begin
Labels[i].Free;
end;
end;
procedure TForm1.LabelSet(LavelNo,R_No: integer; xName: String; s_time,
e_time: TDateTime);
var
ss,ee:integer;
begin
ss:=Ceil(Frac(s_time)*24*60-300);
ee:=Ceil(Frac(e_time)*24*60-300);
with Labels[LavelNo] do begin
Visible:=True;
Left:=ss;
Width:=ee-ss;
Top:=200+R_No*20;
Caption:=xName;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
LavelNo,R_No: integer;
xName: String;
s_time, e_time: TDateTime;
begin
MyStopWatch1.Start;
with ADOTable2 do begin
First;
LavelNo:=0;
while not Eof do begin
R_No:=FieldValues['roomno'];
xName:=FieldValues['name'];
s_time:=FieldValues['start_t'];
e_time:=FieldValues['end_t'];
LabelSet(LavelNo,R_No,xName,s_time,e_time);
Inc(LavelNo);
Next;
end;
end;
ShowMessage(MyStopWatch1.MilTimeStr);
end;
No.5
- 回答日時:
最近のパソコンならラベル100個程なら重くないかもしれませんね。
最小時間単位を1時間として1施設12枚(12時間分)のラベルだと9施設で108枚のラベルですかな。
簡単な方法で作成するとして、あらかじめこの108枚を1時間づつずらして配置し、[非表示]にしておきます。
10時から12時の予約なら10時のところのラベルの色とキャプションを変更して長さも12時まで(2倍)に変更し[表示]にます。11時のラベルはそのまま[非表示]で無視ということで。
これをデータ分実行します。
最小単位が30分なら単純にラベルは2倍になります。
ラベルの使いまわしでもいいですが制御が面倒になるので単位分作っちゃうのが楽。
アクセスはコントロール配列が使えないのでラベルのコントロール名を工夫して場所(座標)が判るような名前を付けたほうがいいですね。lblS1H08[施設1の8時]とか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Microsoft ASP グーグルフォーム 1 2022/12/30 18:16
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- ホテル・旅館 旅行予約サイト「一休.com」の決済について 1 2022/04/28 16:03
- スーパー・コンビニ コンビニエンスストアって便利なの? 9 2022/04/29 18:28
- 政治 震度7もありえる場所に使用済み核燃料の中間貯蔵施設を作るそうですが、舐めてるのですか? 5 2023/08/07 12:43
- Visual Basic(VBA) excel2016でリストからカレンダーに内容を反映させたいです 2 2022/10/27 15:32
- Excel(エクセル) エクセルでシフト表を作成しています。 シフト詳細 朝 7:30〜12:00 4:30 昼 12:00 2 2023/06/18 11:01
- CAD・DTP 「機能ブロック図」の描画用フリーソフトを教えてください 1 2022/09/23 16:12
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- 事件・事故 西九州新幹線爆破予告事件ですが、 9月23日に開業した西九州新幹線をめぐっては、9月28日に「爆破時 1 2023/01/04 12:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
警察はスマホに保存した動画や...
-
データベースファイル(.db)を開...
-
コンピュータ用語、データベー...
-
QRコードとバーコードについて
-
c言語の問題です。これを踏まえ...
-
更新クエリをリンクデータベー...
-
ファイルが壊れて読み取れませ...
-
汎用カード型のデータベースソ...
-
Microsoft Accessについて
-
データベースソフトの「TCARD f...
-
マクロの別シートのデータ振り...
-
android版のMs accessはありま...
-
DBのタイプの指定とサイズにつ...
-
リスト形式の表とデータベース...
-
Q&Aフォームを作成したいのです...
-
「1004:アプリケーション定義...
-
Notion@リレーション値の取得...
-
Accessのリンクテーブルについて
-
CDデータ 泣き寝入りするしか...
-
googleフォームでインストール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースファイル(.db)を開...
-
Accessを開きなおすとテキスト...
-
警察はスマホに保存した動画や...
-
ACCESSのSQLで、NULLかNULLでな...
-
エクセルのフィルタ抽出が固まる
-
CSVファイルでテキストの改行の...
-
構文エラー:演算子がありませ...
-
Accessフォームからパラメータ...
-
20万行あるデータを動かしたい
-
Accessのリンクテーブルについて
-
コンピュータ
-
最新の日付とその金額をクエリ...
-
データベースとウェブ(WWW)の共...
-
更新クエリをリンクデータベー...
-
「1004:アプリケーション定義...
-
リスト形式の表とデータベース...
-
android版のMs accessはありま...
-
Excelフィルタ抽出で「検索して...
-
縦書きテキストボックスの表示"...
-
Notion@リレーション値の取得...
おすすめ情報