从组合框选项更新文本框值

时间:2016-08-01 10:57:09

标签: vba ms-access combobox access-vba ms-access-2010

我无法解决我的代码出错的问题。当用户在组合框中选择一个值时,我希望它转到顾问表并获取该顾问的默认费率并将其粘贴在“每小时费率”文本框中。 This is the msg that I get when I update the combobox.

Private Sub cmbConsultant_Change()
Dim db As Database
Dim rs As DAO.Recordset ''Requires reference to Microsoft DAO x.x Library
Dim strSQL As String

strSQL = "defaultFee * FROM tblConsultants WHERE ID = """ & Me!cmbConsultant & """"

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

If rs.RecordCount > 0 Then
   Me.txtHourlyRate = rs!CountOfEndDeviceType
Else
   Me.txtHourlyRate = ""
End If

Set rs = Nothing
Set db = Nothing

End Sub

2 个答案:

答案 0 :(得分:2)

你可以使用DLookup - 更简单:

Private Sub cmbConsultant_Change()

    Me!txtHourlyRate.Value = DLookup("defaultFee", "tblConsultants", "ID = '" & Me!cmbConsultant.Value & "'")

End Sub

但是,您的ID很可能是数字,因此:

Private Sub cmbConsultant_Change()

    Me!txtHourlyRate.Value = DLookup("defaultFee", "tblConsultants", "ID = " & Me!cmbConsultant.Value & "")

End Sub

答案 1 :(得分:1)

我认为你需要一些SELECT这里

strSQL = "defaultFee * FROM tblConsultants WHERE ID = """ & Me!cmbConsultant & """"

应该是:

strSQL = "SELECT defaultFee AS [CountOfEndDeviceType] FROM tblConsultants WHERE ID = """ & Me!cmbConsultant & """"

另请注意,[CountOfEndDeviceType]必须是FieldName,所以我把它放在Select语句中。