Access sql 'or' возвращает true / false, а не число - PullRequest
0 голосов
/ 16 июля 2010

В Access Sql 1 или 2 возвращает -1 значение для true. Как я могу получить его, чтобы вернуть 3, который является числовым orring (?) Значений. Это работает в Sql Server

select 1 | 2

возвращает 3

Ответы [ 2 ]

2 голосов
/ 16 июля 2010

Попробуйте BOR, может быть, это будет работать, http://www.pcreview.co.uk/forums/thread-1177792.php

0 голосов
/ 16 июля 2010

Просто чтобы добавить ответ CRice, BOR - вот что требуется здесь.

Вот репродукция с использованием Jet 4.0, его поставщика OLE DB и ADO в коде VBA:

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, вам нужно убедиться, что он находится в ANSI-92 Query Mode . Если вы хотите сделать это с помощью DAO ... вы не можете! DAO всегда использует ANSI-89 Query Mode. Используйте ADO, потому что он всегда использует ANSI-92 Query Mode. К счастью, вы можете смешивать код ADO с кодом DAO в одном проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...