设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1552|回复: 11
打印 上一主题 下一主题

[查询] 菜鸟求高手看看为什么查询窗口为空白

[复制链接]
跳转到指定楼层
1#
发表于 2011-9-1 14:57:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么建完的查询窗口打开为空白,连不上表格,另外前几天我做好一个一样的查询,当我在表里输入新的数据后,查询就失效了,请教高手为什么。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-9-1 16:04:45 | 只看该作者
本帖最后由 excessstone 于 2011-9-1 16:06 编辑

试着解释一下。
所有要搜索的字段不能为空,比如interview是空的,也就是Null,那么所有针对interview的判定都是false,所以这个搜索结果为空
这是NUll问题的一种表现。
我试着把判定条件改成 is null or Like 。。。。
试了一下还行。

我也是菜鸟,不算高手。
3#
 楼主| 发表于 2011-9-1 16:22:28 | 只看该作者
excessstone 发表于 2011-9-1 16:04
试着解释一下。
所有要搜索的字段不能为空,比如interview是空的,也就是Null,那么所有针对interview的判 ...

谢谢啊,哈哈
4#
 楼主| 发表于 2011-9-1 17:04:03 | 只看该作者
excessstone 发表于 2011-9-1 16:04
试着解释一下。
所有要搜索的字段不能为空,比如interview是空的,也就是Null,那么所有针对interview的判 ...

我把判断条件改成:Like IIf(IsNull([Forms]![frm]![Name]),'*','*' & [Forms]![frm]![Name] & '*'。可还是不行,应该改成什么样啊?谢谢啊~
5#
发表于 2011-9-1 18:30:23 | 只看该作者
本帖最后由 excessstone 于 2011-9-1 18:35 编辑

在那个查询的设计模式下
条件栏里,原来是 like。。。。
改成 is null or like。。。。
全都改
意思是如果表中数据本身是空的,就符合条件,如果不为空,就继续判定 like 表达式

该查询的sql语句

SELECT table.ID, table.Name, table.Gender, table.[Job objective], table.Education, table.College, table.Specialty, table.Email, table.Tel, table.Channel, table.Interview, table.Comments, table.Resume
FROM [table]
WHERE (((table.Name) Is Null Or (table.Name) Like "*" & [Forms]![frm]![Name] & "*") AND ((table.Gender) Is Null Or (table.Gender) Like "*" & [Forms]![frm]![Gender] & "*") AND ((table.[Job objective]) Is Null Or (table.[Job objective]) Like "*" & [Forms]![frm]![Job objective] & "*") AND ((table.Education) Is Null Or (table.Education) Like "*" & [Forms]![frm]![Education] & "*") AND ((table.College) Is Null Or (table.College) Like "*" & [Forms]![frm]![College] & "*") AND ((table.Specialty) Is Null Or (table.Specialty) Like "*" & [Forms]![frm]![Specialty] & "*") AND ((table.Interview) Is Null Or (table.Interview) Like "*" & [Forms]![frm]![Interview] & "*"));


还有个小建议,就是变量名不要使用 name,或者其他内置关键字。也许会有潜在问题。
变量名也不要有空格,这样省事。
6#
 楼主| 发表于 2011-9-2 14:27:17 | 只看该作者
excessstone 发表于 2011-9-1 18:30
在那个查询的设计模式下
条件栏里,原来是 like。。。。
改成 is null or like。。。。

太感谢了啊,谢谢啊~哈哈~
7#
 楼主| 发表于 2011-9-2 15:05:20 | 只看该作者
excessstone 发表于 2011-9-1 18:30
在那个查询的设计模式下
条件栏里,原来是 like。。。。
改成 is null or like。。。。

问个问题啊,我再输入窗口把ID默认值=DLast("ID","table")+1,为什么打开输入窗口时还是默认为id为1啊~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
发表于 2011-9-4 10:43:36 | 只看该作者
我测试过7楼的示例  窗口中的ID字段可以自动增长呀
9#
 楼主| 发表于 2011-9-5 15:28:45 | 只看该作者
yanghua1900363 发表于 2011-9-4 10:43
我测试过7楼的示例  窗口中的ID字段可以自动增长呀

不好意思啊,我没说清楚,我是想在我打开输入窗口的时候,自动默认的是一个全新的记录,就是各项都是空白的,等着我输入,现在我遇到的情况是,我打开输入窗口,显示的是我表格里的第一项记录,我还要手动的翻到新编号下,才能输入数据,然后添加记录。
10#
发表于 2011-9-5 17:47:58 | 只看该作者
joffrey 发表于 2011-9-5 15:28
不好意思啊,我没说清楚,我是想在我打开输入窗口的时候,自动默认的是一个全新的记录,就是各项都是空白 ...

回楼上,方法很多啊……
方法1. 把窗体属性里的数据录入改成“是”就可以了。
方法2. 用 Docmd.GotoRecord acNewRecord
但以上两个办法在光标离开窗体或滚动到别的记录,就自动保存了,个人认为不是很方便……但我记得本论坛有版主弄了禁止鼠标滚动的办法,你可以自己搜一下。
我一般用以下(不点保存就不保存):
方法3. 用非绑定窗体,然后用cmdSave用ADO添加记录
其它方法应该还有,只是我想不起来了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-14 00:58 , Processed in 0.111006 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表