标题:求教一条VB 数据库语句
只看楼主
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
结帖率:69.81%
已结贴  问题点数:20 回复次数:14 
求教一条VB 数据库语句
两个问题
1、想在   Adodc1.RecordSource = "select * from pingjunzhi where   语句后添加如下条件,这条语句怎么写?
日期   between   Text1.Text  和  Text7.Text  之间
品种名  =  Text2.Text
批号    =  Text3.Text
文件名  =  Text4.Text
参数名  =  Text5.Text
Site号  =  Text6.Text

2、什么符号是数据库里的通配符?也就是说文本框内填写什么符号,发出筛选命令后它是显示所有的。
举例说明:
数据库里有一项“批号”列,内有数字“1”、“2”、“3”、“4”、“5”,在筛选文本框内填写数字,DataGrid中“批号”列就显示相应数字的那一行,
现想在筛选文本框内填写一个符号(不知是* 还是%,或者其他符号),“批号”列就显示是数字“1”、“2”、“3”、“4”、“5”的行(也就是所有行)。

搜索更多相关主题的帖子: 数据库 语句 Text 符号 数字 
2017-08-07 00:50
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:4 
日期 、品种名 、批号 、文件名 、参数名  、Site号  各字段的数据类型不同,SQL语句是不一样的。
你的主要目的是实现什么查询,显示一个行与显示多行SQL语句也是不同的,不清楚你到底需要什么。
查询条件太多,有可能一个数据都不会查询到。

请不要选我!!!
2017-08-07 08:45
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:4 
以下是引用ictest在2017-8-7 00:50:00的发言:

两个问题
1、想在   Adodc1.RecordSource = "select * from pingjunzhi where   语句后添加如下条件,这条语句怎么写?
日期   between   Text1.Text  和  Text7.Text  之间
品种名  =  Text2.Text
批号    =  Text3.Text
文件名  =  Text4.Text
参数名  =  Text5.Text
Site号  =  Text6.Text

2、什么符号是数据库里的通配符?也就是说文本框内填写什么符号,发出筛选命令后它是显示所有的。
举例说明:
数据库里有一项“批号”列,内有数字“1”、“2”、“3”、“4”、“5”,在筛选文本框内填写数字,DataGrid中“批号”列就显示相应数字的那一行,
现想在筛选文本框内填写一个符号(不知是* 还是%,或者其他符号),“批号”列就显示是数字“1”、“2”、“3”、“4”、“5”的行(也就是所有行)。

这些都是最基本的东西,自己看一下教材。
1. 多条件查询,查询条件用and串起来。下面是一个时间区间的例子
select * from table where date between '2007-10-01' and '2008-10-01'
或者
select * from table where date>'2007-10-01' and date<'2008-10-01'
2. 通配符, % 。 具体还是去看教材。
2017-08-07 09:02
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:0 

比如 日期   between,就以日期为字段名,并且日期的数据类型是日期时间数据,数据库是Access数据库,那么查询 Text1.Text  和  Text7.Text  之间的数据的SQL语句是:
SQL = "Select * From pingjunzhi Where 日期>=#" & CDate(Text1.Text) & "# And 日期<= #" & CDate(Text7.Text) & "#"

请不要选我!!!
2017-08-07 09:15
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
对不起,我的意思没有表达清楚,我想表达的意思应该是:多条件多种组合查询。
比如数据库的结构是:
日期  、 品种名  、批号   、文件名  、参数名  、Site号 、数值
首先确定的是 日期(between   Text1.Text  和  Text7.Text  之间)是必选条件,
接下来
有可能只筛选满足 日期(between   Text1.Text  和  Text7.Text  之间)的数据,
也可能会筛选满足 品种名(=Text2.Text)、批号 (=Text3.Text)、文件名(=  Text4.Text)、参数名(=  Text5.Text)、Site号(=  Text6.Text)组合条件的数据;
也可能会筛选满足 品种名(=Text2.Text)、参数名(=  Text5.Text)、Site号(=  Text6.Text)组合条件的数据;
也可能会筛选满足 品种名(=Text2.Text)、批号 (=Text3.Text)、Site号(=  Text6.Text)组合条件的数据;
        .
        .
        .
        .
        .
        .
不知道 Adodc1.RecordSource = "select * from pingjunzhi where 语句后如何添加各种筛选条件组合,求教各位大神和版主大大这条语句怎么写?

[此贴子已经被作者于2017-8-7 15:25编辑过]

2017-08-07 15:24
xyxcc177
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:26
帖 子:197
专家分:1249
注 册:2017-7-8
得分:4 
可以的,如果这样,就引用ADO更灵活.
2017-08-07 15:38
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
求教这段语句怎么写?谢谢!
2017-08-07 16:15
chen3523
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:33
帖 子:223
专家分:1165
注 册:2013-2-12
得分:4 
有可能就是有条件对吧?
设置条件判断判断语句,在什么情况下用条件1,什么情况下用条件2…
4楼的日期判断语句正确了,后面的用"and "连接上就行了。

调试失败3次后,关机睡觉,当醒来时多有收获。
2017-08-07 16:53
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:4 
日期   between   Text1.Text  和  Text7.Text  之间
品种名  =  Text2.Text
批号    =  Text3.Text
文件名  =  Text4.Text
参数名  =  Text5.Text
Site号  =  Text6.Text

s1= "日期>=#" & CDate(Text1.Text) & "# And 日期<= #" & CDate(Text7.Text) & "#"

if len(trim(text2.text))>0 then            '去空格,计算长度是否大于0,判断是否有内容
s1=s1 & " and  品种名 = '" & trim(text2.text) & "'"            '生成本次的条件,并且连接进总条件中
end if

以下类似。每一个条件判断一次,附加一段判断命令。
最后


sql="Select * From pingjunzhi "        '无任何条件的查询命令
if len(s1)>0 then                     '有查询条件
sql =sql  & " Where " & s1            '把条件组合进去
end if

授人于鱼,不如授人于渔
早已停用QQ了
2017-08-07 17:09
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
以下是引用ictest在2017-8-7 15:24:30的发言:

对不起,我的意思没有表达清楚,我想表达的意思应该是:多条件多种组合查询。
比如数据库的结构是:
日期  、 品种名  、批号   、文件名  、参数名  、Site号 、数值
首先确定的是 日期(between   Text1.Text  和  Text7.Text  之间)是必选条件,
接下来
有可能只筛选满足 日期(between   Text1.Text  和  Text7.Text  之间)的数据,
也可能会筛选满足 品种名(=Text2.Text)、批号 (=Text3.Text)、文件名(=  Text4.Text)、参数名(=  Text5.Text)、Site号(=  Text6.Text)组合条件的数据;
也可能会筛选满足 品种名(=Text2.Text)、参数名(=  Text5.Text)、Site号(=  Text6.Text)组合条件的数据;
也可能会筛选满足 品种名(=Text2.Text)、批号 (=Text3.Text)、Site号(=  Text6.Text)组合条件的数据;
        .
        .
        .
        .
        .
        .
不知道 Adodc1.RecordSource = "select * from pingjunzhi where 语句后如何添加各种筛选条件组合,求教各位大神和版主大大这条语句怎么写?

对啊,就是我说的用AND把多种条件串起来啊,如果不确定是不是一定有条件的话,那么可以这样写
程序代码:
sqltxt="select * from Table1 where  1=1 "   '这里利用1=1 这个必然成立的条件作为第一个条件,后面直接串起来就可以,不用判断是否要加AND
if  Text3.Text<>"" then  sqltxt =sqltxt & "And 批号=" & Text3.Text
……
2017-08-07 17:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479832-1-1.html




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

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