2

登録システムを開発しています。しかし、私はこのエラーを受け取っています:You tried to execute a query that does not include the specified expression..

次のコードを使用しています。

Private Function RefreshAdvisoryList()

    Dim vRS As New ADODB.Recordset
    Dim sSQL As String

    'clear list
    txtsection.Clear

    'On Error GoTo ReleaseAndExit

        sSQL = "SELECT tblSection.SectionID, tblSection.SectionTitle, tblAdviser.SchoolYear, tblDepartment.DepartmentTitle, tblYearLevel.YearLevelTitle, tblAdviser.TeacherID" & _
                " FROM (tblDepartment INNER JOIN (tblYearLevel INNER JOIN tblSection ON tblYearLevel.YearLevelID = tblSection.YearLevelID) ON tblDepartment.DepartmentID = tblSection.DepartmentID) INNER JOIN tblAdviser ON (tblSection.SectionID = tblAdviser.SectionID) AND (tblDepartment.DepartmentID = tblAdviser.DepartmentID)" & _
                " GROUP BY tblSection.SectionID, tblSection.SectionTitle, tblAdviser.SchoolYear, tblDepartment.DepartmentTitle, tblYearLevel.YearLevelTitle, tblAdviser.TeacherID" & _
                " HAVING (((tblTeacher.TeacherID)='" & curTeacher.TeacherID & "') AND tblSection.SchoolYear='" & Me.txtSchoolYear.Text & "')" & _
                " ORDER BY tblAdviser.SchoolYear DESC;"


    If ConnectRS(con, vRS, sSQL) = False Then
        'fatal
        'temp
        MsgBox "Unable to connect Teacher's Advisory Recordset.", vbCritical
        'GoTo ReleaseAndExit
    End If

    If AnyRecordExisted(vRS) = True Then
        While vRS.EOF = False
        txtsection.AddItem vRS!SectionTitle
        vRS.MoveNext
   Wend
    End If

'Exit Function
'ReleaseAndExit:
'    Set vRS = Nothing
End Function

このスクリーンショットを見てください。 ここに画像の説明を入力

4

2 に答える 2

3

このHAVING節は、次の 2 つのフィールドを参照します。

  • tblTeacher.TeacherID
  • tblSection.SchoolYear

SELECTフィールド リストには次のものが含まれます。

  • tblAdviser.TeacherID
  • tblAdviser.SchoolYear

TeacherIDすべての参照が同じテーブルから取得されるようにクエリを変更します。についても同じことを行いSchoolYearます。

ところで、tblTeacherクエリのデータ ソースには含まれていません。

可能であれば、Access セッションを開始し、クエリ デザイナーを使用してこのクエリを作成します。このタイプのエラーを回避するのに役立ちます。Access で機能するクエリを作成したら、コードを調整して、同じ機能する SQL ステートメントを生成します。

于 2013-01-24T05:34:29.683 に答える
0

グループの結合結果を取得できるように、Group by を集計関数と共に使用する必要があります。集計関数は使用していません。

参照 - http://www.w3schools.com/sql/sql_groupby.asp

クエリから group by を削除し、where 句に having 句を追加します。

クエリで役立つように、予想されるデータの種類を説明してください。

于 2013-01-24T05:03:54.180 に答える