access”图书管理“中出现的两个问题。

1.我在一个表中设置有效性规则“还书日期>借书日期”,有效性文本为“还书日期必须大于借书日期”。
日期类型为短日期。
从此后,我先输入借,还书日期。总是弹出“还书日期必须大于借书日期”。可是我明明输入的还书日期确确实实是大于借书日期的啊。
请问是为什么呢?
我的用的是assecc2003...
2.行来源为中若输入“法律系;英语系;中文系;科研处;人事处;教务处。”他们不是一列一列的。而是一行,部能出现选择的情况。一点击就全部出现。

1、在表的“有效性规则”中输入:[还书日期]>[借书日期],即可。
注意要加[](英文中括号),这样才代表字段。其次,应该在【表】的“有效性规则”中输入,而不是【字段】的有效性规则中输入(凡涉及多个字段的有效性规则均应在表的有效性规则中输入)。
现在进一步说明你的规则:还书日期>借书日期 为什么会出现你遇到的怪现象。以下的内容有助于提高您的access水平。
你设置完规则,还书日期>借书日期,保存后再打开,你会发现有效性规则变成:"还书日期">"借书日期",也就是说,不加[]符号程序会认为是文本而不是字段。文本比较大小是从第一个字符开始逐个比较它的asc码大小的,“还书日期”的第一个字符是“还”(它的asc码是-17479),“借书日期”的第一个字符是“借”(它的asc码是-16920),(asc码,你可以在立即窗口查看,比如在立即窗口输入:?asc("还"),回车后,就会看到它是值是:-17479),由于第一个字符已比较出大小,不用再比较下面的字符,-17479小于-16290,所以表达式 "还书日期">"借书日期" 结果为false(即假)。“有效性规则”为true,则程序接受所输入的数据;为false,则不接受相关数据,并且弹出“有效性文本”的内容。由于 "还书日期">"借书日期" 结果始终为false ,所以出现了怪现象,无论你输入什么、无论日期谁大谁小,始终都会你遇到的现象。
再举一个例子,你就会更明白。还是你的例子,你在“有效性规则”改为:2>1,由于2>1的结果为true,此时不论你在“还书日期”“借书日期”输入什么、谁大谁小,程序都能接受;反之,你将2>1 改为2>3,由于2>3的结果始终为false,此时又会出现你遇到的现象了。
关键的问题是:只要“有效性规则”内的表达式为false,就不接受,而不在于这个表达式和表、字段等有没有关系。当然,若没有关系,这个有效性规则等于白设置,还有可能产生其它预想不到的问题。所以,设置有效性规则原则上要与字段有关,否则可能没有意义。
2、组合框或列表框的“行来源类型”选择“值列表”,“行来源”设置为::"法律系";"英语系";"中文系";"人事处";"教务处" 即可,注意引号、分号都要是英文的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-20

1.第一个问题,你最好有个截图,这样说,看不太明白。

2.第二个问题,,显示控件为组合框,

行来源类型应为值列表,行来源为英文的符号,例如:"法律系";"英语系"

第2个回答  2012-12-20
1.还书日期文本框的有效性规则设为:>[借书日期]

2.你指的是组合框的行来源吗?
行来源设置为:法律系;英语系;中文系;科研处;人事处;教务处
请注意行来源中使用英文(半角)分号,结尾不要使用句号本回答被提问者采纳
相似回答