让我先从结构开始。
我的Class
有很多Experiences
。
Class
只有在清除了所有Experiences
后才能清除。
Class
和Experience
分享Experence_ID
此ID不是Experience
唯一的。
例如,如果我从' Class'中运行'DoCmd.OpenForm "Experences", , , "[Experence ID] = '" & Me.Experence_ID'
我可以获得不止一条记录。
我可以使用哪个脚本来检查每个Experence_Cleared
记录中Experience
是否已选中(它是一个复选框字段),与Experence_ID
具有相同的Class
?
答案 0 :(得分:1)
后来我发现我需要从每条记录中获取更多数据。我使用以下代码来获取它。
Dim db As Database
Dim rs As Recordset
Dim i As Integer
Dim Hours As Integer
Set db = CurrentDb
Set rs = db.OpenRecordset("Experiences")
For i = 0 To rs.RecordCount - 1
If rs.Fields("Experience ID") = Experience_ID And rs.Fields("Primary") <> 0 And rs.Fields("Experience Clear") Then
Hours = Hours + rs.Fields("Hours")
End If
rs.MoveNext
Next i
rs.Close
Set rs = Nothing
db.Close
然后我可以使用hours
来确定我的班级是否已准备好注册。
答案 1 :(得分:0)
如果我理解正确,您需要检查表中的位/布尔字段对于字段Experence_ID
与输入值匹配的每个记录是否为真。
在这种情况下,您可以使用:
If DCount("*","tblYourTableNameHere","[Experence Cleared]=0 AND [Experence ID]=" & Me.Experence_ID) > 0 Then
Msgbox "There are some Experiences that have not been cleared for this Class"
Else
Msgbox "All Experiences have been cleared for this Class!"
End If
上面的代码使用DCount()函数来计算与final参数中的限定符匹配的记录数量。因此,它只会计算表中[Experence Cleared]
字段为FALSE
的行,因为[Experence ID]
字段等于表单上Me.Experence_ID
字段的值。如果它返回的计数大于零,那么并非所有的经历&#39;已被清除&#39;。
我不得不对控件和字段名称做一些假设,请务必修改此代码以适应,或者向我提供更多信息,我会帮助您。
答案 2 :(得分:0)
要从Class
获取已清除所有Experiences
的记录,您可以使用subquery:
SELECT *
FROM [Class]
WHERE NOT EXISTS (
SELECT ExperienceID
FROM Experiences
WHERE [Class].ExperienceID = Experiences.ExperienceID
AND NOT Experience_Cleared
)
或者,您可以使用LEFT JOIN
(DISTINCTROW
来阻止Class
中Experiences
中的每个对应记录重复SELECT DISTINCTROW [Class].*
FROM [Class]
LEFT JOIN (
SELECT ExperienceID
FROM Experiences
WHERE NOT Experience_Cleared
) AS t1 ON Class.ExperienceID = t1.ExperienceID
WHERE t1.ExperienceID IS NULL
中的行:
WHERE
在任何一种情况下,您都可以使用额外的 AND ClassID = [Replace with ClassID expression]
谓词检查这些记录中是否存在特定类:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>