2016-08-01 51 views
0

Ich kann nicht herausfinden, wo ich mit meinem Code falsch liege. Wenn der Benutzer einen Wert im Kombinationsfeld auswählt, möchte ich, dass er in die Consultants-Tabelle wechselt und die Standardrate für diesen Berater abruft und in das Textfeld Stundensatz einträgt. This is the msg that I get when I update the combobox.Aktualisierung Textfeld Wert von Combobox-Option

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

Antwort

1

Ich glaube, Sie brauchen einige SELECT Hier

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

Es sein sollte:

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

auch beachten, dass [CountOfEndDeviceType] ein Feldname sein muss Also, ich habe es in eine Select-Anweisung geschrieben.

2

Sie könnten DLookup für diesen Einsatz - viel einfacher:

Private Sub cmbConsultant_Change() 

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

End Sub 

jedoch höchstwahrscheinlich Ihre ID numerisch ist, also:

Private Sub cmbConsultant_Change() 

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

End Sub 
+0

Dies scheint eine viel effektivere Art und Weise, Dinge zu tun, aber ich bekomme den Fehler 3464: Datentyp stimmt nicht überein, wenn ich versuche, den Combobox-Wert jetzt zu ändern. Irgendeine Idee? – Mike

+0

Ja, siehe Bearbeiten - wenn Ihre ID numerisch ist. – Gustav