我有這樣的SQL查詢沒有價值的一個或多個必需參數
cmd.CommandText = "SELECT [tblStudent]![LastName] & ', ' & [tblStudent]![FirstName] & ' ' & [tblStudent]![MiddleName] AS FullName," & _
" tblGrade.FirstGrading, tblGrade.SecondGrading, tblGrade.ThirdGrading, tblGrade.FourthGrading," & _
" Avg(b.GradeValue) AS AverageGrade" & _
" FROM ((((tblGrade INNER JOIN tblEnrolment ON tblGrade.EnrolmentID=tblEnrolment.EnrolmentID)" & _
" INNER JOIN tblStudent ON tblStudent.StudentID=tblEnrolment.StudentID)" & _
" INNER JOIN tblSubjectOffering ON tblSubjectOffering.SubjectOfferingID=tblGrade.SubjectOfferingID)" & _
" INNER JOIN tblSubject ON tblSubject.SubjectID=tblSubjectOffering.SubjectID)" & _
" INNER JOIN tblSection ON tblSection.SectionID=tblSubjectOffering.SectionID" & _
" WHERE tblSection.SectionTitle='" & s(0) & "' AND tblSubject.SubjectID='" + s2(0) + "'" & _
" GROUP BY [tblStudent]![LastName] & ', ' & [tblStudent]![FirstName] & ' ' & [tblStudent]![MiddleName], tblGrade.FirstGrading, tblGrade.SecondGrading, tblGrade.ThirdGrading, tblGrade.FourthGrading" & _
" ORDER BY [tblStudent]![LastName] & ', ' & [tblStudent]![FirstName] & ' ' & [tblStudent]![MiddleName]"
而這個代碼給了我一個運行時錯誤「沒有價值的一個或多個必需參數」。
我不明白你的第三段。當s(0)和s2(0)爲空時,得到的SQL將是'WHERE tblSection.SectionTitle =''AND tblSubject.SubjectID ='''這可能不是他想要的'WHERE',但它不應該導致缺少參數問題。 – HansUp
你可能是對的。在我努力刪除所有VBA/Access殘留(所以它看起來像正常的SQL我分析),我必須刪除額外的單引號。儘管如此,有可能導致無效值出現問題,這可能與此有關......這就是在一個問題中存在這樣的孤立片段的問題。 – techturtle
我不確定這裏發生了什麼事情。我懷疑OP會更好地在Access中創建和測試參數查詢,將其保存爲命名查詢,然後使用運行時提供的參數值從VB6執行該查詢。 – HansUp