| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1162 人关注过本帖
标题:这是我写的一段代码 请高手看下哪有问题!? 急!!奖励30分
只看楼主 加入收藏
vitascl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-2-7
收藏
 问题点数:0 回复次数:15 
这是我写的一段代码 请高手看下哪有问题!? 急!!奖励30分

现有两个表 业务经验 和 社员信息 两个表一一对应关系 两表就主码:社员代码 相同
检索条件:两个表里的条件都有 要求在datagrid1里显示检索结果
以下是我写的一段代码(检索条件分别写了几个表示一下)
运行显示的错误为:res2.Open sql, cn, adOpenStatic, adLockOptimistic 有问题
就是sql = "select 社员代码,性别,年龄 from 社员信息 where 社员代码 in res1.Recordset "有问题
请高手给看看错在哪?

Private Sub Command2_Click()
Dim sql1 As String
Dim sql As String
Dim conn As ADODB.Connection
Dim cn As ADODB.Connection
Dim res1 As ADODB.Recordset
Dim res2 As ADODB.Recordset

Set conn = New ADODB.Connection
Set res1 = New ADODB.Recordset

sql1 = "select 社员代码 from 业务经验 where 社员代码 like '%'"

If Text1.Text <> "" Then
sql1 = sql1 + " and OS like '" + Combo3.Text + "%' "
End If
If Text1.Text <> "" Then
sql1 = sql1 + " and DB like '" + Combo3.Text + "%' "
End If
If Text2.Text <> "" Then
sql1 = sql1 + "and 工作年限 like '" + Combo7.Text + "%'"
End If
If Combo1.Text <> "" Then
sql1 = sql1 + "and 语言 like '" + DataCombo3.Text + "%' "
End If

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\db2.mdb;Persist Security Info=False"
res1.CursorLocation = adUseClient
res1.Open sql1, conn, adOpenStatic, adLockOptimistic

Set cn = New ADODB.Connection
Set res2 = New ADODB.Recordset
sql = "select 社员代码,性别,年龄 from 社员信息 where 社员代码 in res1.Recordset "

If Text1.Text <> "" Then
sql = sql + " and 社员代码 like '" + Text1.Text + "%' "
End If
If Text2.Text <> "" Then
sql = sql + "and 性别 like '" + Text2.Text + "%'"
End If
If Combo1.Text <> "" Then
sql = sql + "and 年龄 like '" + Combo1.Text + "%' "
End If

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\db2.mdb;Persist Security Info=False"
res2.CursorLocation = adUseClient
res2.Open sql, cn, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = res2
MsgBox "检索成功", vbOKOnly + vbExclamation
sql = ""

DataGrid1.Refresh
DataGrid1.Refresh

搜索更多相关主题的帖子: 代码 奖励 
2007-03-26 14:37
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
当然有问题 不管你用的是什么数据库 都无法识别 res1.recordset

改成
sql = "select 社员代码,性别,年龄 from 社员信息 where 社员代码 in ("+ sql1+")"
这样试试

2007-03-26 15:02
vitascl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-2-7
收藏
得分:0 
sql1 是字符串"select 社员代码 from 业务经验 where 社员代码 like '%'"
这样不可以 我现在就是不知道 where后面的条件怎么写
2007-03-26 15:07
vitascl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-2-7
收藏
得分:0 
对了我用的是acsess
2007-03-26 15:10
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

if textSYDM.text <>"" then
sql1 = "select 社员代码 from 业务经验 where 社员代码 like '%"+textSYDM.text.trim+"%' "
else
sql1 = "select 社员代码 from 业务经验 where 社员代码 like '%%' "
end if

If Combo3.Text <> "" Then
sql1 = sql1 + " and OS like '%" + Combo3.Text + "%' "
End If
If Combo5.Text <> "" Then
sql1 = sql1 + " and DB like '%" + Combo5.Text + "%' "
End If
If Combo7.Text <> "" Then
sql1 = sql1 + "and 工作年限 like '%" + Combo7.Text + "%'"
End If
If DataCombo3.Text <> "" Then
sql1 = sql1 + "and 语言 like '%" + DataCombo3.Text + "%' "
End If


2007-03-26 15:12
vitascl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-2-7
收藏
得分:0 

斑竹 检索条件里没有 社员代码 这一项 所以不需要再判断if textSYDM.text <>""

现在问题是第一层检索出来后(第一层检索没问题) 如何让第二层检索在 第一层检索的范围内进行检索
也就是第二层的检索where语句怎么写
“+ sql1 +“ res1.Recordset 都不对


2007-03-26 15:59
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
以下是引用Kendy123456在2007-3-26 15:02:54的发言:
当然有问题 不管你用的是什么数据库 都无法识别 res1.recordset

改成
sql = "select 社员代码,性别,年龄 from 社员信息 where 社员代码 in ("+ sql1+")"
这样试试

res1是你前端代码定义的 你递交数据库 数据库是无法识别的

sql1实际上就是一个结果集的代码
你用 sql = "select 社员代码,性别,年龄 from 社员信息 where 社员代码 in ("+ sql1+")" 看看会报什么错误


2007-03-26 16:03
vitascl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-2-7
收藏
得分:0 
错误信息 : 类型不一致
2007-03-26 16:08
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
前面sql1 执行没报错吗?

2007-03-26 16:13
vitascl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-2-7
收藏
得分:0 
没错误 我测试过了 单独执行一个表的检索没问题
2007-03-26 16:17
快速回复:这是我写的一段代码 请高手看下哪有问题!? 急!!奖励30分
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019757 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved