2016-08-30 79 views
0
stLinkCriteria = "[UpdateStatus] = '" & _ 
    Forms![Updates-Search Menu]!LookupUpdateStatus & "'" & " And _ 
    [Office] = '" & [Office] & "'" 

只是试图限制我的搜索到一个链接的标准。它会查看更新状态和办公室并正确过滤我的表单。上面的代码是我目前工作的基本代码。我想添加一个标准,因此看起来像这个 更新状态和(办公室或共享)。这里是我的尝试,但不起作用链接条件ms访问

stLinkCriteria = "[UpdateStatus] = '" & _ 
    Forms![Updates-Search Menu]!LookupUpdateStatus & "'" & " _ 
    And [Office] = '" & [Office] & "'" Or _ 
    "[Forms]![Updates]!ShareWithOtherOffice = -1" 

任何帮助表示赞赏

回答

0

这也许应该是

stLinkCriteria = "[UpdateStatus] = '" & _ 
    Forms![Updates-Search Menu]!LookupUpdateStatus & _ 
    "' And ([Office] = '" & [Office] & _ 
    "' Or [Forms]![Updates]!ShareWithOtherOffice <> 0)" 

由于之前或默认被执行,则必须将办公室的东西在括号以便在AND之前执行OR。

另外我的OR应该在字符串内。

我使用的是功能Build这使得它更简单

Function Build(ByVal s As String, ParamArray args()) As String 
    'Build("LastName = '{0}', FirstName = '{1}'","Doe","John"). 

    Dim i As Long 

    For i = 0 To UBound(args) 
     s = Replace(s, "{" & i & "}", Nz(args(i))) 
    Next i 
    Build = s 
End Function 
sql = "[UpdateStatus] = '{0}' And ([Office] = '{1}' Or {2})" 
stLinkCriteria = Build(sql, 
         Forms![Updates-Search Menu]!LookupUpdateStatus, _ 
         [Office], _ 
         [Forms]![Updates]!ShareWithOtherOffice <> 0) 
+0

上,为什么我得到一个类型mistmatch以及有什么想法? sharewithotheroffice是一个复选框 – DotyDot

+0

有一个不匹配的'''和'Or'应该在字符串中,而不是在外面。 –