2012-01-18 7 views
0

Accessでテーブルに基づいてフォームを作成しようとしていますが、フォームの列タイトルとしてテーブルのrowdataを使用したいと考えています。 ...などAccessフォームの列として表の行

と私は希望これから

ProjectNo EmployeeName HoursBooked Month/Year 
23   Mark   68   01/01/2012 
23   Mark   55   01/02/2012 
54   John   22   01/02/2012 
23   John   52   01/02/2012 

は、私が何を意味するか月単位で特定のプロジェクトに向けた従業員が予約した努力を示しており、以下のように、私はテーブルを持っている、です各プロジェクトごとに次のようにデータが表示される単数形を作成するようにします。例えば、プロジェクト23:

Month/Year Mark  John 
01/01/2012 68  0 
01/02/2012 55  52 

と誰かが、このフォームにアクセスしてください番号を編集することができるはずと表では、これらの変更を反映する必要があります。

これを達成する方法を教えてもらえますか?私はAccessでこれを達成しようとしていますが、残念ながら私のフォームの知識はそれほど大きくありません。

ありがとうございます!

答えて

0

ウィザードを使用してクロス集計クエリを作成します。それはあなたが望むものを与えるでしょう。サブフォームコントロールのソースオブジェクトをQuery.NameOfCrosstabQueryに設定できます。

ただし、クロスタブに基づいてフォームデータを編集することはできません。

このようにデータを提示する理由を言うなら、誰かが別の解決策を見出す可能性があります。

EDIT可能なアプローチのいくつかの詳細:http://wiki.lessthandot.com/index.php/Crosstabs%2C_forms_and_updating

+0

注意はまた、クロス集計クエリは、それが難しいのテキストボックスに列をバインドすることができます変更する列名を、もたらします。 –

+0

@Olivierはい。このタイプのビューを含める必要がある場合は、ここで示唆しているように、クエリをソースオブジェクトとして使用してサブフォームを使用し、問題を回避することをお勧めします。 – Fionnuala

+0

はいそれは面倒です。クロス集計クエリをコード内のQueryDefとして開いて実行し、列を繰り返して名前を検索し、それに応じてテキストボックスのコントロールソースを変更する必要があります。更新するには、新しい値の入力を要求するダイアログボックスが必要です。次に、UPDATEクエリを実行してデータベース内の値を更新し、フォームを再クエリーします。 – ChrisPadgham

1

レッツは、第一のフォームが名前を持っていると言う:FrmProject &プロジェクトIDはPROJECTIDコントロールに表示されます。 2番目のフォームの名前はFrmProjectDetailsです。プロジェクトデータがテーブルTblPorjectsに格納されていることを考慮してください。あなたは次のようにコードを書くFrmProjectでPROJECTIDコントロールのClickイベントで

Private Sub ProjectID_Click() 
docmd.open "FrmProjectDetails" 
Form_FrmProjectDetails.RecordSource= "select * from TblProjects where ProjectID=" & Me.ProjectID 
End Sub 
関連する問題