| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1274 人关注过本帖
标题:小白求教:对查询结果再次查询的方法
只看楼主 加入收藏
我梦三国
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-8-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
小白求教:对查询结果再次查询的方法
数据库中有一个表:
数据模型如下:
xinmin   riqi    chidaocishu zaotuicishu
A         0501    2            1               
A         0502    0             1        
A          0503    2            0        
B            0501    1            1
B            0502    1            1   
B            0503    2            0
C            0501    1            0
已经用姓名为条件查询了关于A的数据,并显示在DataGrid1中
现在想以DataGrid1的结果为记录集查询A的0501-0502期间的数据的,并显示在DataGrid2中,如何操作


[此贴子已经被作者于2021-8-1 12:01编辑过]

搜索更多相关主题的帖子: 数据 结果 查询 显示 方法 
2021-08-01 12:00
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
第二个查询使用第一个查询为表来查询

select * From (select * form 表 where 条件) as B1 where B1.riq0i>........

大体上就是这样的,括号里是第一个次查询的SQL命令。




授人于鱼,不如授人于渔
早已停用QQ了
2021-08-01 20:51
我梦三国
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-8-1
收藏
得分:0 
回复 2楼 风吹过b
谢谢大神
2021-08-01 22:13
我梦三国
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-8-1
收藏
得分:0 
回复 2楼 风吹过b
麻烦大神再给看一下,指导一下,谢谢!

Private Sub Command2_Click()
Dim rec As ADODB.Recordset
Set rec = New ADODB.Recordset
Dim strSQL As String
If Trim(Text1.Text) = "" And Trim(Text2.Text) = "" And Trim(Text3.Text) = "" Then
   
  MsgBox "请输入查询条件", , "提示"
   ElseIf Trim(Text1.Text) <> "" And Trim(Text2.Text) = "" And Trim(Text3.Text) = "" Then
   strSQL = "select * from biao where xinmin = '" & Text1.Text & "'"
    rec.Open strSQL, cn, adOpenStatic, adLockOptimistic
     Set DataGrid1.DataSource = rec
   
ElseIf Trim(Text1.Text) <> "" And Trim(Text2.Text) <> "" And Trim(Text3.Text) = "" Then
    strSQL = "select * from biao  where xinmin = '" & Text1.Text & "'and riqi>='" & Text2.Text & "'"
     rec.Open strSQL, cn, adOpenStatic, adLockOptimistic
     Set DataGrid1.DataSource = rec
   
     ElseIf Trim(Text1.Text) <> "" And Trim(Text2.Text) <> "" And Trim(Text3.Text) <> "" Then
         strSQL = "select * from biao where xinmin = '" & Text1.Text & "'and (riqi>='" & Text2.Text & "' and  riqi<='" & Text3.Text & "')"
     rec.Open strSQL, cn, adOpenStatic, adLockOptimistic
     Set DataGrid1.DataSource = rec
 Else
   MsgBox "请输入查询条件", , "提示"
End If
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command3_Click()
Dim res As ADODB.Recordset
Set res = New ADODB.Recordset
这里用你说的这一句,报属性无效的错,麻烦大神看一下,怎么写,而且我前面DataGrid1.DataSource的查询比较复杂,如何在这里找到DataGrid1.DataSource中的
1、riqi=text2.text的结果;
2、由riqi=text2.text向前N天的结果(riqi不一定是连续的)。
Set DataGrid2.DataSource = res
End Sub

[此贴子已经被作者于2021-8-1 22:35编辑过]

2021-08-01 22:32
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
我想复杂了。。

-----------------------------
这里面这样写
strsql=""
if Trim(Text1.Text) <> "" then                                 '条件一
    strsql=strsql & " and  xinmin = '" & Text1.Text & "'"
end if
if Trim(Text2.Text) <> "" then                                 '条件二
    strsql=strsql & " and  riqi>='" & Text2.Text & "'"
end if
if Trim(Text3.Text) <> "" then                                 '条件三
    strsql=strsql & " and  riqi<='" & Text3.Text & "')"
end if
if len(strsql)=0 then                           '条件均未执行到
   MsgBox "请输入查询条件", , "提示"
'   exit sub                 '如果endif后面还有命令,如果提示后不需要再执行的,那么这里就要加一句退出过程
else
   strsql=mid(strsql,5)                '去掉前面多出来的 and ,前面还有一个空格,所以是 5开始。
   strsql="select * from biao where " & strsql             '把查询条件附到后面
.....
endif
end sub
----------------------
浏览器写的代码,未经测试。
大体上就是这样组合多个条件,逐步组合,最后判断是否有数据,有数据则去执行条件。





授人于鱼,不如授人于渔
早已停用QQ了
2021-08-02 21:34
我梦三国
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2021-8-1
收藏
得分:0 
回复 5楼 风吹过b
谢谢!
2021-08-02 22:15
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
如果 riqi 不能用 大于和小于的话,那只能转换一下思路。
首先,提供了前面那个值,就必须提供后面的值
然后自己用循环生成中间所有的值
这些所有的值 使用 or 进行连接,生成的sql 命令最后为这样的
select * from biao where xinmin = '" & Text1.Text & "' and (riqi='0501' or riqi='0502' ....)


授人于鱼,不如授人于渔
早已停用QQ了
2021-08-02 22:17
快速回复:小白求教:对查询结果再次查询的方法
数据加载中...
 
   



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

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