2015-02-06 150 views
-2

我想创建一个Access宏,只有在它从表中检索到特定值时才会运行。我试图阻止用户每个周期运行一次以上的宏。如何在VBA条件语句中使用SQL Select查询?

If sqlquery = "select Step 3 from XX_STORE_VALUE" = "READY" Then 
    DoCmd.SetWarnings (warningsoff) 
    DoCmd.OpenQuery "00 UPDATE NEXT NR AND LD ACCRUAL", acViewNormal, acEdit 
    DoCmd.OpenQuery "00 UPDATE NEXT NR AND LD SALES", acViewNormal, acEdit 
    DoCmd.OpenQuery "UPDATE STEP 3", acViewNormal, acEdit 
    DoCmd.SetWarnings (warningson) 
End If 

End Function 

回答

0

你可以尝试这样的事情

Public Function GetQueryreturnedvalue(yourvalue As Integer) 
    Dim rst As DAO.Recordset 
    Dim strSQL As String 
    ' Getting value from your query 

    strSQL = "SELECT [Step 3] FROM XX_STORE_VALUE where yourcriteria = " & yourvalue & "" 
    Set rst = CurrentDb.OpenRecordset(strSQL) 


    GetQueryreturnedvalue = rst![Step 3] 

    If GetQueryreturnedvalue = "Yourspecificvalue" Then 

    DoCmd.SetWarnings (warningsoff) 
    DoCmd.OpenQuery "00 UPDATE NEXT NR AND LD ACCRUAL", acViewNormal, acEdit 
    DoCmd.OpenQuery "00 UPDATE NEXT NR AND LD SALES", acViewNormal, acEdit 
    DoCmd.OpenQuery "UPDATE STEP 3", acViewNormal, acEdit 
    DoCmd.SetWarnings (warningson) 

    rst.Close 
    Set rst = Nothing 

    End If 

End Function