use*_*254 1 ms-access access-vba
我一直面临错误3061,错误消息"参数太少:预期2".我已经完成了以下所有操作来解决问题,但仍然无法解决问题.
这是我的代码:
Private Sub cmbYear_Change()
Dim db As Database
Dim rs As DAO.Recordset
Dim Query As String
Query = " SELECT Yrs_Teaching, Highest_Edu, AD_Descr FROM ClassSurvey" & _
" WHERE ClassSurvey.Program/School_ID = " & Me.cmbProgId.Value & _
" AND ClassSurvey.ClassID = " & Me.cmbClassId.Value & _
" AND ClassSurvey.Teacher_ID = " & Me.cmbTeacherID.Value & _
" AND ClassSurvey.SYear = " & Me.cmbYear.Value
Set db = CurrentDb
Set rs = db.OpenRecordset(Query)
If rs.RecordCount > 0 Then
Me.TB1 = rs!Yrs_Teaching
Me.TB2 = rs!Highest_Edu
Me.TB3 = rs!AD_Descr
Else
Me.TB1 = "N/A"
End If
Set rs = Nothing
Set db = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
您的表似乎包含名为Program/School_ID的字段.将SELECT
语句中的字段名称括起来,以便db引擎可以将其正确识别为一个字段名称.
这种变化可能就是你所需要的.但是如果你有另一个问题,请给自己一个机会来检查SELECT
你给db引擎完成的语句.它可能不是你所期望的.
Dim db As Database
Dim rs As DAO.Recordset
Dim strQuery As String
strQuery = "SELECT cs.Yrs_Teaching, cs.Highest_Edu, cs.AD_Descr FROM ClassSurvey AS cs" & _
" WHERE cs.[Program/School_ID] = " & Me.cmbProgId.Value & _
" AND cs.ClassID = " & Me.cmbClassId.Value & _
" AND cs.Teacher_ID = " & Me.cmbTeacherID.Value & _
" AND cs.SYear = " & Me.cmbYear.Value
Debug.Print strQuery
Set db = CurrentDb
Set rs = db.OpenRecordset(strQuery)
Run Code Online (Sandbox Code Playgroud)
如果出现错误,可以转到立即窗口(Ctrl+ g),从那里复制语句文本,在查询设计器中打开一个新查询,切换到SQL视图,粘贴语句文本并尝试在那里运行它.当db引擎抱怨缺少参数时,此提示特别有用,因为当您尝试从设计器运行查询时,Access将显示一个输入框,要求您提供值,该框还包含Access认为的任何名称是参数.
归档时间: |
|
查看次数: |
22557 次 |
最近记录: |