我的查询窗体里的查询源码:Private Sub search_Click()
Dim sql As String
'按学号查询
If Check1.Value = vbChecked Then
sql = "学号='" & Trim(txbId.Text & " ") & "'"
End If
'按学生姓名查询
If Check2.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "学生姓名='" & Trim(txbName.Text & " ") & "'"
Else
sql = sql & "and 学生姓名='" & Trim(txbName.Text & " ") & "'"
End If
End If
'按课程名称查询
If Check3.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "课程名称='" & Trim(txbLesson.Text & " ") & "'"
Else
sql = sql & "and 课程名称='" & Trim(txbLesson.Text & " ") & "'"
End If
End If
'按班级查询
If Check4.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "选择班级='" & Trim(txbClass.Text & " ") & "'"
Else
sql = sql & "and 选择班级='" & Trim(txbClass.Text & " ") & "'"
End If
End IfIf Trim(sql) = "" Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation
Exit Sub
End IfAdodc1.RecordSource = "select Students.Student_Id,Student_Name,BadgeID,LessonName,Score from Students,Lessons,Scores where Students.Student_Id=Scores.Student_Id AND Lessons.LessonId=Scores.LessonId " & sqlAdodc1.CommandType = adCmdText
Adodc1.Refresh
grdDataGrid.ReBind
grdDataGrid.AllowAddNew = False
grdDataGrid.AllowDelete = False
grdDataGrid.AllowUpdate = FalseEnd Sub编译的时候,在查询窗体里打入学生学号,就弹出
提示:"[Microsoft][OBDC SQL Server Driver][SQL Server]第一行:'学号'附近有语法错误",然后又弹出一个:"实时错误'-2147217900(80040e14)'对象'Refresh'的方法'IAdodc'失败"的错误,在其他3个查询条件里打TEXT是都会报错,和上面一样的错误.
我要实现的是3个表内容的查询students,lessons,scores
Scores表里面只有lessonID\studentID\score三项我是个初学者啊!请高手们帮帮我~~~~~~~~~~~~~~
Dim sql As String
'按学号查询
If Check1.Value = vbChecked Then
sql = "学号='" & Trim(txbId.Text & " ") & "'"
End If
'按学生姓名查询
If Check2.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "学生姓名='" & Trim(txbName.Text & " ") & "'"
Else
sql = sql & "and 学生姓名='" & Trim(txbName.Text & " ") & "'"
End If
End If
'按课程名称查询
If Check3.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "课程名称='" & Trim(txbLesson.Text & " ") & "'"
Else
sql = sql & "and 课程名称='" & Trim(txbLesson.Text & " ") & "'"
End If
End If
'按班级查询
If Check4.Value = vbChecked Then
If Trim(sql) = "" Then
sql = "选择班级='" & Trim(txbClass.Text & " ") & "'"
Else
sql = sql & "and 选择班级='" & Trim(txbClass.Text & " ") & "'"
End If
End IfIf Trim(sql) = "" Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation
Exit Sub
End IfAdodc1.RecordSource = "select Students.Student_Id,Student_Name,BadgeID,LessonName,Score from Students,Lessons,Scores where Students.Student_Id=Scores.Student_Id AND Lessons.LessonId=Scores.LessonId " & sqlAdodc1.CommandType = adCmdText
Adodc1.Refresh
grdDataGrid.ReBind
grdDataGrid.AllowAddNew = False
grdDataGrid.AllowDelete = False
grdDataGrid.AllowUpdate = FalseEnd Sub编译的时候,在查询窗体里打入学生学号,就弹出
提示:"[Microsoft][OBDC SQL Server Driver][SQL Server]第一行:'学号'附近有语法错误",然后又弹出一个:"实时错误'-2147217900(80040e14)'对象'Refresh'的方法'IAdodc'失败"的错误,在其他3个查询条件里打TEXT是都会报错,和上面一样的错误.
我要实现的是3个表内容的查询students,lessons,scores
Scores表里面只有lessonID\studentID\score三项我是个初学者啊!请高手们帮帮我~~~~~~~~~~~~~~
sql = "学生姓名='" & Trim(txbName.Text & " ") & "'"
Else好象每一种条件查询的第一个选择中SQL字串前都少了一个"AND"
不知道说得对不,申明我不是高手~~
没看明白这句什么意思,要实现什么功能呀,为什么用trim 还用&""
Dim sql As String
'initialize variable sql
sql =""
'按学号查询
If Check1.Value = vbChecked Then
sql =sql & " And 学号='" & Trim(txbId.Text & " ") & "'"
End If
'按学生姓名查询
If Check2.Value = vbChecked Then
sql = sql & " and 学生姓名='" & Trim(txbName.Text & " ") & "'"
End If
'按课程名称查询
If Check3.Value = vbChecked Then
sql = sql & " and 课程名称='" & Trim(txbLesson.Text & " ") & "'"
End If
'按班级查询
If Check4.Value = vbChecked Then
sql = sql & "and 选择班级='" & Trim(txbClass.Text & " ") & "'"
End IfIf Trim(sql) = "" Then
MsgBox "请选择查询方式!", vbOKOnly + vbExclamation
Exit Sub
End IfAdodc1.RecordSource = "select Students.Student_Id,Student_Name,BadgeID,LessonName,Score from Students,Lessons,Scores where Students.Student_Id=Scores.Student_Id AND Lessons.LessonId=Scores.LessonId " & sqlAdodc1.CommandType = adCmdText
Adodc1.Refresh
grdDataGrid.ReBind
grdDataGrid.AllowAddNew = False
grdDataGrid.AllowDelete = False
grdDataGrid.AllowUpdate = FalseEnd Sub
怎么改啊,哪位高手帮个忙啊!!!!!我的Adodc1.RecordSource 源应该没写错吧~~~~~~~
请高手们指点~~~~~~~~~~~~~~~~~~~~~~~~