2016-08-01 3 views
0

내 코드에 문제가있는 부분을 해결할 수 없습니다. 사용자가 콤보 상자에서 값을 선택하면 컨설턴트 테이블로 이동하여 해당 컨설턴트의 기본 요율을 잡고 시간별 텍스트 상자에 고정 시키길 원합니다. 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 

최종 하위

답변

1

나는 당신은 그것이 있어야 다음

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

일부 SELECT 필요가 있다고 생각 : [CountOfEndDeviceType]는 FIELDNAME해야한다는,

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

이 또한 참고 , 그래서 Select 문에 넣었습니다.

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 
+0

이 일을 할 수있는 훨씬 더 효과적인 방법처럼 보인다, 하지만 오류 3464 : 데이터 형식 불일치 조건 식에서 지금 콤보 상자 값을 변경하려고하면. 어떤 생각? – Mike

+0

네, ID가 숫자 인 경우 편집을 참조하십시오. – Gustav