高手邦忙,比较菜的一个问题

okcat 2004-08-13 10:17:01
在打开窗体时,窗体上的Datagrid1,datagrid2是空的,无记录,按学生姓名查询记录,学生姓名写在TEXT1中,点击查询按钮进行查询显示。其中建立的数据库中有两张表为“学生信息”与“学生选课信息”,学生信息表中有“学生编号”、“学生姓名”等字段,学生选课信息表中只有“学生编号”、“课程编号”字段。Datagrid1显示学生信息记录,Datagrid2显示学生选课记录。程序代码:
If Option1.Value = True Then
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 学生信息 where 学生编号='" & Trim(Text1.Text) & "' "
Set DataGrid1.DataSource = Adodc1
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select * from 学生选课信息 where 学生编号='" & Trim(Text1.Text) & "'"
Set DataGrid2.DataSource = Adodc2
ElseIf Option2.Value = True Then
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 学生信息 where 姓名='" & Trim(Text2.Text) & "' "
a$ = Adodc1.Recordset.Fields("学生编号")
Set DataGrid1.DataSource = Adodc1
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select * from 学生选课信息 where 学生编号='" & (a$) & "'"
Set DataGrid2.DataSource = Adodc2
End If


a$ = Adodc1.Recordset.Fields("学生编号")  在这句提示出错。为什么?我是想利用在学生信息表上用学生姓名查找到的记录中的对应的学生编号,在再选课信息中对应的学生编号查找。错在哪里

...全文
181 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
okcat 2004-08-14
  • 打赏
  • 举报
回复
谢谢,我试过了,可以
lovebeethoven 2004-08-14
  • 打赏
  • 举报
回复
试试看
lovebeethoven 2004-08-14
  • 打赏
  • 举报
回复
a$=adodc1.recordset.fields("学生编号")
我觉得如果recordset中有超过一条记录的话,这个语句就是错误的,就好像把一列值赋给一个变量 (个人理解,希望没误导你)
你可以这样做
adodc2.recoedsource="select (你在表2中想要列出的列名) from 学生选课信息,学生信息 where 学生信息.学生姓名='" & trim$(text2.text) & "'and 学生选课信息。学生编号=学生信息。学生编号"
okcat 2004-08-14
  • 打赏
  • 举报
回复
看来是没有答案了,自己再瞅瞅吧。谢各位了
lovebeethoven 2004-08-14
  • 打赏
  • 举报
回复
帮楼主整理一下。程序代码:
If Option1.Value = True Then
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\
临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 学生信息 where 学生编号='" &
Trim(Text1.Text) & "' "
Set DataGrid1.DataSource = Adodc1
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
E:\临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select * from 学生选课信息 where 学生编号='" &
Trim(Text1.Text) & "'"
Set DataGrid2.DataSource = Adodc2
ElseIf Option2.Value = True Then
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
E:\临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 学生信息 where 姓名='" & Trim
(Text2.Text) & "' "
a$ = Adodc1.Recordset.Fields("学生编号")
Set DataGrid1.DataSource = Adodc1
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
E:\临时文件夹\学生信息管理系统.mdb;Persist Security Info=False"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select * from 学生选课信息 where 学生编号=
'" & (a$) & "'"
Set DataGrid2.DataSource = Adodc2
End If
haohaohappy 2004-08-14
  • 打赏
  • 举报
回复
你用ADO非绑定方式不是很好做么?干嘛搞这么复杂。会有很多莫名其妙的错误
okcat 2004-08-13
  • 打赏
  • 举报
回复
对象变量或with块变量未设置,这是一字不差的报错信息
okcat 2004-08-13
  • 打赏
  • 举报
回复
对象或with块变量未定义。这是报错信息
在数据库中学生编号为文本型。
northwolves 2004-08-13
  • 打赏
  • 举报
回复
("学生编号")什么类型? 报什么错?
脚印 2004-08-13
  • 打赏
  • 举报
回复
a$ = Adodc1.Recordset.Fields("学生编号")

这句话,试一下将 $ 去掉.改为 Dim a as string 看行不行
okcat 2004-08-13
  • 打赏
  • 举报
回复
有没有人啊,有没有人啊,真的很简单,真的没人看啊。
okcat 2004-08-13
  • 打赏
  • 举报
回复
还是没人,很简单的,我在线等呢,唉
okcat 2004-08-13
  • 打赏
  • 举报
回复
其实不晕啊,仔细看很清楚的,就是写的格式不大好。邦邦忙吧
cso 2004-08-13
  • 打赏
  • 举报
回复
头晕了

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧