0

スタッフのトレーニング記録用の Excel スプレッドシートを Access 2003 データベースに変換しようとしています。データベースを 4 つのテーブル (Staff、Tasks、Trainers、TrainingRecords) に設定しました。トレーニング レコード テーブルには、次のフィールドがあります: RecordID (自動番号と PK)、StaffID (スタッフにリンク)、TaskID (タスクにリンク)、DateCompleted、TrainerID (トレーナーにリンク)。スタッフ、タスク、およびトレーナー テーブルにデータを入力するための関連フォームをすべて作成しました。コンボボックスからスタッフ名、タスク名、トレーナー名を選択して、新しいトレーニング記録を入力できるフォームも作成しました。

私の問題は、上司がトレーニング記録のデータ入力を、利用可能なすべてのタスクの完全なリストを表示する Excel スプレッドシートのようにしたいと考えていることです。ユーザーは、関連するすべてのタスクの完了日とトレーナー名を入力できます。多くの場合、作成日とトレーナーなしで複数のタスクが残されます (スタッフ メンバーはその特定のタスクについてまだトレーニングを受けていないため)。これについてどのように始めたらよいかよくわかりません。次のアイデアがありましたが、どれだけ実現可能かわかりません。

1) フォームが読み込まれたら、タスク名から利用可能なすべてのタスクとラベルのチェックボックスを追加します。次に、ユーザーは追加したいタスクをクリックし、選択したすべてのタスクに同じ日付とトレーナー名を指定します。

2) Office Excel スプレッドシート コントロール (10 または 11) を使用してデータ入力を許可し、コードを記述して情報を相互運用し、必要に応じて TrainingRecords テーブルを作成/修正します。多くの Excel VBA プログラミングを行ってきたので、このオプションはかなり簡単です。ただし、スプレッドシート内の Range/Cells オブジェクトにアクセスしてデータを読み書きする方法がわかりません。このコントロールは、実際にはこのように使用することを意図していないと思います。

3) 一時テーブル (サブフォームを介して表示される) を作成します。これには、すべてのタスクのリストが入力され、ユーザーがドロップダウン ボックスからスタッフ名を選択したときにスタッフ メンバーがトレーニングを受けていた場合は、メインフォーム。ユーザーがドロップダウン ボックスから別のスタッフ メンバーを選択すると、フォームが更新され、そのスタッフ メンバーのデータが表示されます。

私は、ここで考えたアイデアよりも簡単な他のアイデアや提案を受け入れます。

4

1 に答える 1

1

Access のフォームは、Excel に似たデータシート ビュー フォームとして構成できます。ただし、データシート フォームを使用しても、ここで発生しているすべての問題が解決するとは思いません。

#1で提案したようなことをするのが最善かもしれません。チェックボックスに入力する部分はバインドを解除する必要があり、チェックボックスに入力するコードを記述し、ボックスのチェック方法に従ってレコードを挿入/更新/削除する必要があります。データシート フォームまたは連続フォームでは、バインドされていないフィールドを使用できません。

オプション#3も機能します。または、作成した ADO レコードセットにフォームをバインドすることもできます。繰り返しますが、ADO レコードセットを設定するコードを作成する必要があり、ADO レコードセットのすべての追加/編集/削除をデータ ソースにプッシュするためのコードをさらに作成する必要があります。

オプション#2からは遠く離れています。Excel を使用したり、MS Access アプリケーションに埋め込んだりする理由はあまり思いつきません (Excel のグラフが唯一の理由かもしれません)。

もう 1 つ注意しておきたいのは、物事の見た目や感じ方を上司に指示させることです。もちろん、上司には発言権がありますが、上司の意見は、何かが不器用すぎる、直観的でない、クリックが多すぎる、使用するにはトレーニングが多すぎる、などの発言に任せておくのが理想的です。アプリケーションの外観と動作の詳細を決定すると、最終的な結果は良くありません。私が特定の機能を実装するための最良の方法を選択し、私自身の知識に従ってそのためのユーザー インターフェイスを設計した他のケースでは、エンド ユーザーが必要なコントロールを指定できるようにした場合よりもはるかに優れた結果が得られました。どこに行くのか、どのようなデータを保持しているか、どのように振る舞うかなど。経験豊富なアプリケーション開発者は、エンド ユーザーよりも優れた設計環境に関する知識を持っている必要があります。これにより、エンド ユーザーの期待に応える、または期待を超えるものを提供できます。もちろん、上司やエンド ユーザーからのフィードバックを締め出してはいけませんが、彼らが今までとは違うものを求めている理由を探ってみてください。ユーザーの古い習慣や慣習に、ユーザー インターフェイスがどのように見えるかを決定させないことが最善です。そんなやり方では絶対に進歩できません。今日のアプリケーションは、最新のユーザー フレンドリーなユーザー インターフェースを備えている必要がありますが、アイデアが 90 年代に行き詰まっている人や、単に他の劣ったパラダイムにとらわれている人に合わせてアプリケーションを構築する場合、それは得られません。上司やエンド ユーザーからのフィードバックを締めくくるのではなく、なぜ彼らが今までとは違うものを欲しがっているのかを突き止めてください。ユーザーの古い習慣や慣習に、ユーザー インターフェイスがどのように見えるかを決定させないことが最善です。そんなやり方では絶対に進歩できません。今日のアプリケーションは、最新のユーザー フレンドリーなユーザー インターフェースを備えている必要がありますが、アイデアが 90 年代に行き詰まっている人や、他の劣ったパラダイムにとらわれている人に合わせてアプリケーションを構築する場合、それは得られません。上司やエンド ユーザーからのフィードバックを締めくくるのではなく、なぜ彼らが今までとは違うものを欲しがっているのかを突き止めてください。ユーザーの古い習慣や慣習に、ユーザー インターフェイスがどのように見えるかを決定させないことが最善です。そんなやり方では絶対に進歩できません。今日のアプリケーションは、最新のユーザー フレンドリーなユーザー インターフェースを備えている必要がありますが、アイデアが 90 年代に行き詰まっている人や、単に他の劣ったパラダイムにとらわれている人に合わせてアプリケーションを構築する場合、それは得られません。

于 2012-10-18T16:44:31.173 に答える