簡體   English   中英

如何根據另一個字段中的查找值返回一個字段中的值

[英]How to return the value in one field based on lookup value in another field

這是基本的東西,但我對VBA和Word / Access對象模型有點不熟悉。

我有一個大約117000條記錄的兩列數據庫。 列是'姓'和'計數'。 我希望用戶能夠在文本框中鍵入SMITH並點擊提交。 然后我想運行類似的東西

SELECT table.count FROM table WHERE surname = string

並在字符串中返回table.count的值。

感覺這應該是五行或六行代碼(我有但不會發布)但我顯然錯過了一些東西!

干杯

首先,要小心命名列'count' - 這是SQL中的關鍵字,可能會導致問題。 同樣,不要調用表'table'。

下面是一些示例代碼,顯示了執行此操作的一種方法:

' This example uses Microsoft ActiveX Data Objects 2.8,
' which you have to check in Tools | References

' Create the connection. This connection may be reused for other queries.
' Use connectionstrings.com to get the syntax to connect to your database:
Dim conn As New ADODB.Connection
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\tmp\Database1.accdb"

Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = conn

' Replace anything which might change in the following SQL string with ?

cmd.CommandText = "select ct from tbl where surname = ?"

' Create one parameter for every ?

Dim param As ADODB.Parameter
Set param = cmd.CreateParameter("surname", adBSTR, adParamInput, , TextBox1.Text)
cmd.Parameters.Append param

Dim rs As ADODB.Recordset
Set rs = cmd.Execute

MsgBox rs("ct")

rs.Close
conn.Close

可以使用InsertDatabase:

Sub GetData()
    ActiveDocument.Bookmarks("InsertHere").Select

    Selection.Range.InsertDatabase Format:=0, Style:=0, LinkToSource:=False, _
        Connection:="TABLE Members", SQLStatement:= _
        "SELECT [Count] FROM [Members]" _
        & " WHERE Surname='" _
        & ActiveDocument.FormFields("Text1").Result & "'", _
        DataSource:="C:\docs\ltd.mdb", From:=-1, To:= _
        -1, IncludeFields:=True
End Sub

這是使用數據庫工具欄記錄的已編輯宏。

編輯警告:如圖所示,此代碼受SQL注入攻擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM