1

そのため、MS Access DB があり、特定の値を見つけて表示する VBA コードを記述する必要があります。

これが私がこれまでに持っているものですが、何もしません

Public Function findInDb()
Dim mySQL As String
Dim custID As Integer

custID = "13"

mySQL = "SELECT Orders.CustomerID FROM Orders  " & _
       "WHERE [CustomerID] = orderDate"

DoCmd.RunSQL mySQL


End Function

私が間違っていることは何か分かりますか?

4

3 に答える 3

0

代わりに使用できますDlookUp

Public Function findInDb()

    Dim intCustID As Integer, custID As Integer
    custID = 13

    intCustID = DLookup("[CustomerID]", "Orders", "[CustomerID]=" & custID)

End Function

また

Docmd.RunSQLアクション クエリ (追加、更新、削除) にのみ有効です。Select ステートメント用ではありません。

于 2013-10-31T02:57:59.347 に答える
0

DoCmd.RunSQL は結果を返しません。したがって、クエリを実行しますが、結果の CustomerID 値を返すことはできません。

Santosh は DLookup を提案していますが、これはパフォーマンスの観点から非常に貧弱です。ado を使用することをお勧めします。これを行うには、ms access のコピーの参照リストに表示される "Microsoft ActiveX Data Objects" の最新 (番号が最も大きい) ライブラリへの参照を追加する必要があります。この参照を定義して、次のコードを使用します。

dim intCustID as long
dim rst as object
set rst = createObject("ADODB.Recordset")
rst.open "SELECT CustomerID FROM Orders WHERE CustomerID = " & CustID _
    , currentproject.connection, adOpenStatic, adLockReadOnly
intCustID = rst.fields(0)  'or if you prefer rst!CustomerID
set rst = nothing
于 2013-10-31T03:18:26.733 に答える