前言
该窗体功能是实现查询学生的信息,并可给予修改的权限。其中包含两个重大部分,一是组合查询,二是修改;其中修改又涉及到了修改学生信息窗体,此窗体中取消修改尝试了很多方法,最后选取比较简单的方法,这个窗体不难。最重要的莫过于组合查询:组合查询我使用的方法是一行一行的查,因为对于我目前的水平也是最容易接受的方法。此方法中需注意一下几点:
1)汉字转换为数据库中的字段名部分
2)数据库查询部分
3)操作符部分
流程
判断控件是否为空----汉字转换数据库中的字段名----连接student_info表依次进行1,2,3行查询-----修改:MSFlexGrid1控件判断是否选中数据,然后跳转到修改学生信息窗体
累赘
问题1:实时错误’30006’不能为MSFlexGrid1分配内存
原因:缺少一行代码:mrc.movenext
问题2:查询内容不完整
原因:上一篇博客中提到的无去空格符
问题3:操作符到底有何作用
原因:查询的条件,比如:在查询学号时,操作符为"=" 查询的结果就是你输入的学号的信息(此方法确实挺简单,作为菜鸟的我没实践之前还是懵逼状态的;所以也是送给跟我一样正处于蒙版状态的你。
代码展示
1)代码转换为数据库中的字段名,下面以“卡号,学号,性别“为例说明方法;需注意strcon1要定义
select case cb1
case "卡号"
strcon1 = "cardno“
case "学号"
strcon1 = " studentno”
case "性别'
strcon1 = "sex"
end select
2)第一行,第二行,第三行数据库的查询条件的表达方式,需注意的是where后面的条件是字段名、操作符、查询的内容
txtsql = "select * from student_info where " & strcon1 & trim(cb4.text) & " ' " & trim(txtquery.text) & " ' "
txtsql = txtsql & " " & strcon2 & " " & strcon4 & " " & trim(cb5.text) & " ' " & trim(txtquery1.text) & " ' "
txtsql = txtslq & " " & strcon5 & " " & strcon3 & " " & trim(cb6.text) & " ' " & trim(txtquery2.text) & " ' "
3)当查询姓名或性别时,操作符只能为" = " 或”<> ",因此可增加条件如下
If cb1.text = " 姓名" or cb1.text = "性别" then
with cb4
.addItem " ="
.addItem " <>"
end with
else
with cb4
.addItem " = "
.addItem " <"
.addItem">"
.addItem "<>"
end with
end if
4)修改部分,此部分没有用了一个临时卡号的值,注tmpcardno是临时卡号,在此处因省略部分的代码又with MSFlexGrid1,因此这里可以这样书写代码
if .rowsel > 0 then '选中信息
tmpcardno = trim(.textmatrix(.rowsel,0)
frmmodify.show
end if
总结
多看帮助,少走弯路