访问sql'或'返回true / false而不是数字

时间:2010-07-16 05:13:11

标签: sql ms-access

在Access Sql 1或2中返回-1的值为true。如何让它返回3,这是值的数字orring(?)。这适用于Sql Server

select 1 | 2

返回3

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

只是要添加到CRice答案,BOR就是这里所需要的。

这是一个使用Jet 4.0的repro,它的OLE DB提供程序和VBA代码中的ADO:

Sub TestBOR()

  On Error Resume Next
  Kill Environ$("temp") & "\DropMe.mdb"
  On Error GoTo 0

  Dim cat
  Set cat = CreateObject("ADOX.Catalog")
  With cat
    .Create _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & _
        Environ$("temp") & "\DropMe.mdb"
    With .ActiveConnection

      Dim Sql As String
      Sql = "SELECT 1 BOR 2;"
      .Execute Sql
      Dim rs
      Set rs = .Execute(Sql)
      MsgBox rs.GetString
    End With
    Set .ActiveConnection = Nothing
  End With
End Sub

结果是3,正如所料。

如果您想使用Access UI执行此操作,则需要确保它位于ANSI-92 Query Mode中。如果你想用DAO这样做......你不能! DAO始终使用ANSI-89查询模式。使用ADO因为它始终使用ANSI-92查询模式。令人高兴的是,您可以在同一个项目中混合使用ADO代码和DAO代码。