VB 查询条件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 17:59:09
main
rs4.Open "select * from stude where 姓名 like '%" & text & "%' ", cn, 3, 3
if rs4!性别='男' then
msgbox "该性别为男"
elseif
rs4!性别="" then
msgbox "请输入性别"
else
msgbox "该性别为女"
end if

为什么我查询不到呢??
rs4.Open "select * from fantai where 姓名= '" & text & "'", cn, 3, 3
With Not rs4.EOF
Select Case rs4.性别
Case "男"
MsgBox "男"
Case "女"
MsgBox "女"
End Select
rs4.MoveNext
End With
运行后出现:With 对象必须为用户定义类型、对象或变体

因为你只查了第一条记录!
需要加循环的!
while not rs4.eof
语句
rs4.movenext
wend
你那边关的太快,我也没办法回答了啊!
我也觉得NULL有点道理,同时也不喜欢用IF ELSEIF的模式,觉得破坏可读性!
while not rs4.eof
select case rs4.性别
case "男"
msgbox "男"
case "女"
msgbox "女"
else select
msgbox "不男不女"
end select
rs4.movenext
wend

这要看你数据库中 性别 字段 怎么写的

另外,代码里面也有语法错误

null 的可能没有可虑到,null不等于“”!

原因是你使用 like 实现的模查询方式,导致查询到的结果往往不是唯一的,当查询结果首条记录性别和其他记录性别不一致时,显示将会首要值。

因此应该修改为(二选一):
(1)继续使用模糊查询,那么删除后面的msgbox代码,将多条记录分别显示出来或者放到某个表
(2)去掉 like 改为 姓名='" & text & "' ", (即使这样我们仍然无法保证只查询一条记录,因为姓名可能有重复)

With Not rs4.EOF 改 with...end 为while...wend 结构