将查询中的项添加到表单

时间:2011-11-23 22:26:00

标签: sql database ms-access

我正在使用Access 2010。

我正在设计一个数据库,以帮助跟踪社区计划中的参与者。

我有一个名为ParticipantMaster的表,其中包含ParticipantID, FirstName, LastName, Address, Phone等字段以及在此表格上构建的条目表单。

我有一组收集出勤数据的表格/表格(其级别显示他们是否参加了PARTIAL,HALF或FULL会话)...与我的问题相关的字段包括ParticipantID(来自参与者)主人),WorkshopIDLevel

根据出勤数据,我创建了一个名为Attendance_FullorHalf的查询,用于计算每个参与者参加过多少次或全部会话。字段包括ParticipantIDCountStatusFirstNameLastName。此查询工作正常。

除了出勤之外,我还有一个名为Interviews的表格和表格,每当我呼叫参与者时都会记录。他们出勤后才有资格接受采访。 2。

我希望在面试记录表上显示出勤人数,这样我就可以看到他们是否符合面试资格。

可能是一个显示类似

的文本框
SELECT CountStatus from Attendance_FullorHalf 
WHERE ParticipantID (from Attendance_FullorHalf query) = ParticipantID (of the record I'm on in the interview form)

我知道这可能不是我需要的那样的陈述 - 我只是写了这个来帮助解释我的问题。

因此,如果我在面试表格中,输入身份证号码为20-563的参与者的信息,我希望在该表格上显示参加者数量为20-563的参与人数。

希望我的问题很清楚 - 非常感谢你!

1 个答案:

答案 0 :(得分:1)

当然,在表单oncurrent事件中,您可以编写一个查询来提取该参与者ID的出勤数据,然后使用查询结果更新文本框。

我在这里错过了什么吗?

以下评论后的编辑:

在面试记录表单上创建一个文本框

为表单创建一个onCurrent事件,然后选择代码生成器 你应该有一个如下所示的窗口

Private Sub Form_Current()

End Sub

进入这个你需要编写你的代码...这样的事情应该给你一个起点工作

Private Sub Form_Current()
    Dim rs as DAO.Recordset 'recordset object to hold the results of the sql query
    set rs = CurrentDB.OpenRecordset("INSERT YOUR SQL HERE")
    If rs.RecordCount > 0 Then 'we have a value for this participant
        txtBox.Text = rs![FIELDNAME] 'update the textboxes text value
    Else
        txtBox.Text = "0" 'else no value means 0
    End If
    set rs = nothing ' clean up the recordset after we've finished with it
End Sub

现在以上是非常粗糙和肮脏但原则相当合理。打开记录集,对它运行SQL,如果记录集现在有结果,则用这些结果更新文本框。

希望有助于您入门