表行作为Access窗体中的列

时间:2012-01-18 16:13:14

标签: sql forms ms-access

我正在尝试基于表在Access中创建表单,我想使用表的rowdata作为表单中的列标题。

我的意思是,我有一张如下表格,显示员工每月为特定项目预定的工作量:

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中实现这一点,但不幸的是我的表单知识并不是那么好。

谢谢!

2 个答案:

答案 0 :(得分:1)

假设第一种形式有名字:FrmProject&项目ID显示在ProjectID控件中。 第二种形式是名称FrmProjectDetails。考虑到项目数据存储在表TblPorjects中。

在FrmProject中的ProjectID控件的Click事件上,您可以编写如下代码:

Private Sub ProjectID_Click()
docmd.open "FrmProjectDetails"
Form_FrmProjectDetails.RecordSource= "select * from TblProjects where ProjectID=" & Me.ProjectID
End Sub

答案 1 :(得分:0)

使用向导创建交叉表查询。它会给你你想要的。您可以将子窗体控件的源对象设置为Query.NameOfCrosstabQuery

但是,您将无法根据交叉表编辑表单数据。

如果您说出希望以这种方式呈现数据的原因,有人可能会看到替代解决方案。

编辑有关可能方法的一些细节:http://wiki.lessthandot.com/index.php/Crosstabs%2C_forms_and_updating