回 帖 发 新 帖 刷新版面

主题:数据库编程

帮帮忙啊!!!   谢谢!!
为什么他老是提示这个:
    实时错误 '-2147217900 (80040e14)':
    第一行:'.'附近有语法错误。
调试的时候,指向这一段代码:
    .Open "select 教师信息.*,系名称 from 教师信息,系部信息" & _
                "where 教师信息.系编号=系部信息.系编号"
如果把这一段屏蔽掉,就会指向类似的下一个open处的代码

代码:
Private Sub Form_Load()
Set objCn = New Connection
With objCn
    .Provider = "sqloledb"
    .ConnectionString = "user id =sa;pwd=uag260811;data source=zheng;" & "initial catalog=学籍管理"
    .Open
End With
Set objTeacher = New Recordset
With objTeacher
    Set .ActiveConnection = objCn
    .CursorLocation = adUseClient
    .CursorType = adOpenStatic
    .Open "select 教师信息.*,系名称 from 教师信息,系部信息" & _
        "where 教师信息.系编号=系部信息.系编号"
End With
Set objScore = New Recordset
With objScore
    Set .ActiveConnection = objCn
    .CursorLocation = adUseClient
    .CursorType = adOpenStatic
    .LockType = adLockOptimistic
    .Open "select 课编号,课程信息.名称 as 课程名称,学生 as 学生编号," & _
        "成绩,姓名,系名称,班级信息.名称 as 班名称" & _
        "from 选课记录,课程信息,学生信息,班级信息,系部信息" & _
        "where 选课记录.课编号=课程信息.编号 and " & _
        "选课记录.学生=学生信息.编号" & _
        "and 学生信息.班编号=班级信息.编号 and " & _
        "学生信息.系编号=系部信息.系编号 order by 学生编号"
    If .RecordCount > 0 Then
        .MoveFirst
        Dim i%
        While Not .EOF
            For i = 0 To cmbNum.ListCount - 1
                If .Fields("学生编号") = cmbNum.List(i) Then Exit For
            Next
            If i = cmbNum.ListCount Then cmbNum.AddItem ("学生编号")
            .MoveNext
        Wend
    End If
    .Filter = "学生编号='" & cmbNum & "'"
    Set dgList.DataSource = objScore
    dgList.Columns(2).Visible = False
    dgList.Columns(4).Visible = False
    dgList.Columns(5).Visible = False
    dgList.Columns(6).Visible = False
End With
End Sub

回复列表 (共13个回复)

沙发

高手帮帮忙啊~~~

板凳

"select 教师信息.*,系名称 from 教师信息,系部信息 where 教师信息.系编号=系部信息.系编号"
书写错误,写成下面的样式看看:
"select A.*,B.系名称 from 教师信息 A,系部信息 B where A.系编号=B.系编号"

3 楼

这样修改之后,可以了
但是用同样的方法修改下面那一段代码之后,还是报错
'选课记录'附近有语法错误!
这个又怎么修改啊???
再帮忙看一下!谢谢啦!

4 楼


这样修改之后,可以了
但是用同样的方法修改下面那一段代码之后,还是报错
'选课记录'附近有语法错误!
这个又怎么修改啊???
再帮忙看一下!谢谢啦!

5 楼

select 课编号,课程信息.名称 as 课程名称,学生 as 学生编号," & _
        "成绩,姓名,系名称,班级信息.名称 as 班名称" & _
        "from 选课记录,课程信息,学生信息,班级信息,系部信息" & _
        "where 选课记录.课编号=课程信息.编号 and " & _
        "选课记录.学生=学生信息.编号" & _
        "and 学生信息.班编号=班级信息.编号 and " & _
        "学生信息.系编号=系部信息.系编号 order by 学生编号"

改成:

select A.课编号,B.课程名称,C.学生编号," & _
        "C.成绩,C.姓名,E.系名称,D.班名称" & _
        "from 选课记录 A,课程信息 B,学生信息 C,班级信息 D,系部信息 E" & _
        "where A.课编号=B.编号 and " & _
        "A.学生=C.编号" & _
        "and C.班编号=D.编号 and " & _
        "C.系编号=D.系编号 order by C.学生编号"

我对你的数据库结果不知道,上述修改属于猜测。有可能会产生饮用的表里没有要求的字段,自己修改。

6 楼


好像还是不行,修改之后就说A附近有语法错误,为什么呢?

7 楼

你把自己的查询字符串发出来看看啊,不要让人猜谜语了!
还有你各个表的字段名、表间的关联字段。

8 楼

学生信息:
    编号 系编号 班编号 姓名 性别 生日 住址 电话 Email 简历
教师信息:
    编号 姓名 系编号 电话 Email
班级信息:
    编号 名称
系部信息:
 系编号 系名称
课程信息:
    编号 名称 教师 学分
选课记录:
    编号 学生 课编号 成绩
    

9 楼

[quote]你把自己的查询字符串发出来看看啊,不要让人猜谜语了![/quote]

10 楼


问题解决了,其实也不用那么改,只是漏掉了一些空格,呵呵!

我来回复

您尚未登录,请登录后再回复。点此登录或注册