2015-11-25 55 views
1

我需要添加/修改此代碼才能使用strSQL的結果填充txtDisease1?截至目前,文本框中填充了SQL查詢。我相信這是一個簡單的解決方案,但對於我的生活,我無法找到答案。從VBA運行SQL按鈕

Private Sub btnDNA_Click() 
Dim strSQL As String 

strSQL = "SELECT LastName From Patient WHERE PatientID = 1" 
Me.txtDisease1.Value = strSQL 

End Sub 
+0

您的'strSql'實際上只是文本「SELECT LastName來自患者WHERE PatientID = 1」而不是其描述的查詢的執行結果。使用@Emi所提供的'DLOOKUP'功能提供了一種更簡單的方法,用於在此嘗試執行的操作。 –

+0

我知道DLookup,但我需要使用SQL,因爲查詢會變得更加複雜。有沒有辦法做到這一點? – Kyle

+0

哦,好的,請參閱下面的答案。 –

回答

3

您可以使用DLookup函數。

Me.txtDisease1.Value = DLookup("LastName", "Patient", "PatientID = 1") 
+0

我知道DLookup,但我需要使用SQL,因爲查詢會變得更加複雜。有沒有辦法做到這一點? – Kyle

0

對於更復雜的查找或者打其他數據源,您可以使用ADO(需要參照微軟的Active X數據對象)

Dim rs As ADODB.Recordset 
Set rs = New ADODB.Recordset 
rs.Open "SELECT TOP 1 LastName From Patient WHERE PatientID=1", _ 
    CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly 
If Not rs.EOF Then Me.txtDisease1.Value = rs(0) 
rs.Close 
Set rs = Nothing 
2

我已經無法對此進行測試,但我認爲這應該工作。

Private Sub btnDNA_Click() 

    Dim strSQL As String 
    Dim db As DAO.Database 
    Dim rs As DAO.Recordset 

    strSQL = "SELECT LastName From Patient WHERE PatientID = 1" 

    Set db = CurrentDb 
    Set rs = db.OpenRecordset(strSQL) 

    Me.txtDisease1 = rs!LastName 

    rs.close 
    Set rs = Nothing 
    Set db = Nothing 

End Sub