即使表中有记录,我的查询也不会返回任何值。我正在尝试根据输入的姓名检索职业编号。我不断收到消息“没有员工ID”。就Access VBA而言,我是一个新的学习者。我曾与Access表和其他表没有问题。我没有验证表单字段具有正确的值和变量strEmpName未收到查询结果
Set cnn1 = New ADODB.Connection
mydb = "C:\accesssamp\Documents\Tasks.accdb"
strCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & mydb
cnn1.Open strCnn
'This statement added here just to indicate that I am getting the value
strEmpName = cboEmployeeName.Text ' Getting employee name from form field
Set cmd = New ADODB.Command
With cmd
.ActiveConnection = CurrentProject.Connection
.CommandText = "SELECT [EmployeeId] FROM [Employees] " & _
"WHERE [EmployeeName] = [strEmpName]"
.CommandType = adCmdUnknown
.Parameters.Append cmd.CreateParameter(_
"[strEmpName]", adChar, adParamInput, 50)
.Parameters("[strEmpName]") = strEmpName
End With
' Execute the Query and return the employeeId
Set rstEmp = cmd.Execute
If rstEmp.RecordCount < 1 Then
MsgBox "No Employee Id"
Else
MsgBox rstEmp(0).Value
End If
'Debug.Print'告诉你什么? – PaulFrancis 2015-02-10 16:42:31
@PaulFrancis我在哪里添加该语句?我浏览了代码并得到了消息框“没有员工ID” – rajeev 2015-02-10 16:49:24
RecordCount对ADO来说可能有点奇怪,尽管使用了立即窗口来获得'firstEmp(0).Value'。为什么使用MS Access而不是DAO使用ADO? DAO是首选。 – Fionnuala 2015-02-10 16:51:34