【发布时间】:2019-08-08 00:11:38
【问题描述】:
我正在尝试检查我的表单复选框,如果为真,我需要检查记录是否存在,然后,如果它存在并且为真 - 什么也不做。如果为真且不存在 - 添加记录。 如果 False - 我还需要检查它是否存在,如果存在 - 删除它,如果不存在 - 什么也不做。
我试过只使用记录集并循环遍历表。 我也尝试过使用 DLookup,只是因为需要三个标准值来查找记录而迷失了方向。 现在我尝试同时使用记录集和 SQL 并不断收到错误“参数太少”。
RT = "Rise Time"
If Me.RiseTime.Value = True Then
strSQL = "SELECT * FROM Weekly_StartTime_Challenges WHERE UserID = '" &
Me.UserID.Value & "' AND WeekNumber = '" & Me.WeekNumber.Value
& "' AND StartTimeAction =" & RT
Set sast = db.OpenRecordset(strSQL, dbOpenDynaset)
If Not sast.EOF And sast.BOF Then
' It Does Exist and Do Nothing
Else
sast.AddNew
sast!WeekNumber = Me.WeekNumber.Value
sast!StartDate = Me.StartDate.Value
sast!UserID = Me.UserID.Value
sast!FullName = Me.FullName.Value
sast!Index = 1
sast!Tab1 = 8
sast!StartTimeAction = RT
sast.Update
End If
Else
strSQL = "SELECT * FROM Weekly_StartTime_Challenges WHERE UserID = '" &
Me.UserID.Value & "' AND WeekNumber = '" & Me.WeekNumber.Value & "' AND
StartTimeAction = RT"
Set sast = db.OpenRecordset(strSQL, dbOpenDynaset)
If Not sast.EOF And sast.BOF Then
' It Does Exist and needs deleted
sast.Delete
Else
End If
End If
【问题讨论】:
-
我怀疑 Weeknumber 是文本,什么值持有 RT?
-
与 UserID 相同。是文字吗?