У меня есть и вставьте и обновите запрос.
Я хочу создать кнопку, которая запускает либо запрос вставки, либо запрос обновления и вставки.
В форме:
если cbx = значения x, y или z, запустите вставку и обновление.
если cbx не = значения x, y или z, выполнить только вставку.
Пока у меня есть:
IF (Cbx=X OR Cbx =Y or cbx =Z) Then
Currentdb.execute("updateQuery")
Currentdb.execute("inserQuery")
ELSEIF (Cbx<>X OR Cbx <>Y or cbx <>Z) THEN
CurrentDB.execute("insertQuery")
ElSE
end if
Когда я запускаю его, таблица застревает в чем-то вроде непрерывного цикла записи / редактирования.
SQL
UPDATE
tbsurveypersonnel
SET tbsurveypersonnel.removedDate = DATE()
WHERE
(
(
(
tbsurveypersonnel.[sr]
)
=[Forms]![fatbSurveyPersonnelSetRoles]![sr]
)
AND
(
(
tbsurveypersonnel.[role]
)
=[Forms]![fatbSurveyPersonnelSetRoles]![role]
)
)
;
INSERT INTO tbsurveypersonnel
(
sr
, lfname
, role
, aDate
)
VALUES
(
(
(
tbsurveypersonnel.[sr]
)
=[Forms]![fatbSurveyPersonnelSetRoles]![sr]
)
, ((tbsurveypersonnel.[lfname])=[Forms]![fatbSurveyPersonnelSetRoles]![lfname])
)
,
(
(
tbsurveypersonnel.[role]
)
=[Forms]![fatbSurveyPersonnelSetRoles]![role]
)
), DATE()
окончательный
Private Sub AssignRole_Click()
Dim strSql As String
Dim strlSQL2 As String
strSql = "UPDATE tbsurveypersonnel SET tbsurveypersonnel.removedDate = Now() " & vbCrLf & _
"WHERE removedDate is Null and (((tbsurveypersonnel.[sr])=[Forms]![fatbSurveyPersonnelSetRoles]![sr]) AND ((tbsurveypersonnel.[role])=[Forms]![fatbSurveyPersonnelSetRoles]![role]));"
strSQL2 = "INSERT INTO tbsurveypersonnel ( sr, lfname, role, assigndate ) " & vbCrLf & _
"SELECT [forms].[fatbSurveyPersonnelSetRoles].[sr] AS Expr1, [forms].[fatbSurveyPersonnelSetRoles].[lfName] AS Expr2, [forms].[fatbSurveyPersonnelSetRoles].[role] AS Expr3, Now() AS Expr4;"
If (Me.role = 1 Or Me.role = 2 Or Me.role = 3) Then
DoCmd.RunSQL strSql
DoCmd.RunSQL strSQL2
Else
DoCmd.RunSQL strSQL2
End If
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Requery
End Sub