Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

模糊查询中没有输入时,按确定能否不返回所有记录

张金海  发表于:2008-06-09 19:15:10  
复制

我用Access作了一个"授权书"的数据库,建立查询:

 SELECT   授权书.用户单位,

  FROM   授权书   
  WHERE   ((用户单位   like   "*"   &   [名称]   &   "*"))

 

 

  此查询可以模糊查询需要的用户单位,但在不输入任何值时,按确定键,将显示所有的记录。

 问:如果想在不没有输入时,不显示结果,或显示“请输入名称”。该怎么办?

 

在一本书中查到以下资料:

    SELECT 字段表
    FROM tableexpression
    WHERE标准

    选择符合 WHERE 子句所列条件的记录。.如果未指定 WHERE 子句,则查询将返回表中的所有行。

 

是否用WHERE子句就一定“在未指定 WHERE 子句,则查询将返回表中的所有行”?

 

Top
Cherry 发表于:2008-06-10 07:45:31

WHERE   (用户单位 =[请输入名称] )   试试呢



张金海 发表于:2008-06-10 18:12:13

上次我描述不太清楚,详细的问题如下: 

 

Access建立了一个名位“用户查询”的表。其中有“人员”,“用户”两个字段。

在查询条件中如下写:

 

 SELECT   用户查询.编号,用户查询.人员,用户查询.用户

  FROM   用户查询   
  WHERE   ((用户   like   "*"   &   [名称]   &   "*"))

 

运行查询时会出现一个窗口,

 

在窗口中输入要查询的用户字段中的部分字,按“确定”即可方便的查询含有此字的所有记录。

但,如果不输入任何字,按“确定”,会显示出表中所有的记录。

我的问题是:当窗口没有输入时,按“确定”,不显示任何结果,或者提示出错。

不知该如何更改查询表达式。

 

 

 



张金海 发表于:2008-06-10 18:16:12

感谢Cherry的回复,我尝试了,用“=”,不行?

 

我想是不是自己建一个窗体,将窗体的输入与查询连接起来,在没有输入的时候,不允许执行查询。

 

 

我是新手,还在努力。

 

 

 

 



十段 发表于:2008-06-10 18:59:21

你看看这个,是不是你想要的效果?

SELECT 用户查询.编号, 用户查询.人员, 用户查询.用户
FROM 用户查询
WHERE (((用户查询.用户)=[请输入:名称]));
效果如下:



张金海 发表于:2008-06-20 12:30:33

谢谢,但用"="号,好象就无法模糊查询了.
不再研究答案了,数据库作好了,除了这点毛病还很好用!

 

感谢大家!



黎红军 发表于:2008-06-20 23:22:09
好像相对简单的办法就是通过窗体来查询,这样如你自己楼上所说的,很方便实现你的功能需求。

贺德才 发表于:2008-08-14 07:41:06
只能用“like”,不能用“=”

何书励 发表于:2009-03-25 19:09:58

 SELECT   授权书.用户单位,

  FROM   授权书   
  WHERE   用户单位   like  iif( isnull([名称]),"","*"   &   [名称]   &   "*")



总记录:8篇  页次:1/1 9 1 :