Office中国论坛/Access中国论坛

标题: 请教各位高手、大侠、老师帮我看一下 [打印本页]

作者: leenon    时间: 2006-3-30 22:22
标题: 请教各位高手、大侠、老师帮我看一下
老师出了一道题:找出一年内未检车辆的车牌照号

要求:1、车牌照的最后一位是12个月中的某月,如:车号是吉A12345,就是5月

           2、若是今天的5月检车,那明年的5月也要来检测

           3、编程列出一年内未检车辆车牌照号。

            
作者: 一点通    时间: 2006-3-30 22:46
传上例子才好帮你解决
作者: leenon    时间: 2006-3-31 18:52
标题: 上传程序
烦劳帮忙[attach]16795[/attach]


[此贴子已经被作者于2006-3-31 12:53:09编辑过]


作者: 一点通    时间: 2006-3-31 22:49
[attach]16803[/attach]

作者: leenon    时间: 2006-3-31 23:20
标题: 运行结果好像不对
是不是我提供的程序有问题,我将点子大哥传上的程序下了,可是没有得到结果。

我想把一年内应该检但没有检测的车牌号显示出来,而且,这些车的牌照号的最后一位正是12月中的某月

哦,点子大哥的意思是不是让我把条件设在子窗体中,然后在主窗体运行时进行调用呢?

关键是条件句我不太会写[em07]

[此贴子已经被作者于2006-3-31 15:21:41编辑过]


作者: 一点通    时间: 2006-3-31 23:35
1\检测时段用哪个字段?

2\当10,11,12月时是按什么时间来检测

请将问题描述清楚一点
作者: leenon    时间: 2006-4-1 00:05
1、表中有检测时间字段,所以以表中的检测时间为程序设计的主要参考对象

如:检测时间为05年7月,那在下一次检测的时间就应该是06年7月,相差一年,月不变。

2、至于月份,因为车牌号的最后一位决定了检测时间的月份,所以我认为编程的时候要考虑车牌照号的末两位10、11、12的时候,就要在10、11、12月来检测,而这正与取最后一位的0、1、2相重了,所以在编程序的时候就要考虑将月份从10分开

我对access的一些语法不是很了解,所以说起来比较磨叽些

                  
作者: 一点通    时间: 2006-4-1 00:44
是否是查询日期为2006年,11月时,

开始日期:2005-11-01,结束日期:2006-11-30

而查得的车牌号尾数为:1

另外如果未检测的在哪标识?

[此贴子已经被作者于2006-3-31 17:09:11编辑过]


作者: leenon    时间: 2006-4-2 16:46
是否是查询日期为2006年,11月时,
开始日期:2005-11-01,结束日期:2006-11-30
而查得的车牌号尾数为:1
另外如果未检测的在哪标识?
1、程序要求年差一年,2、月与车牌照号的末尾两位有关。如果是1月那车牌照号的末尾就应该是01,如果是10—12月那车牌照号就应该是10、11、12而不能混淆为1、2月。3、时间期限给定后就会列出未检没车辆的牌照号,结果就要在子窗体显示出来。好像很麻烦

[此贴子已经被作者于2006-4-2 9:43:01编辑过]


作者: 一点通    时间: 2006-4-2 17:51
3、时间期限给定后就会列出未检没车辆的牌照号,结果就要在子窗体显示出来。

除了年月外,在表中如何知道未检没车辆

象8楼给你提示哪样,写出个例子来吧,费尽心思都难明你说的话

只能按你的话来实现这个功能

[attach]16837[/attach]


[此贴子已经被作者于2006-4-2 10:18:21编辑过]


作者: leenon    时间: 2006-4-2 18:41
那个字打错了

比如说:我在2004-11月检测的车是吉A20511,那这个车还要第二年的11月来检测,可是没有来,那需要编一个程序把所有这样应该到期来但是没有来的车给列出来。

数据表中有检测时间和车牌照号两个字段,每个车牌照号都对应一个检测时间
作者: 一点通    时间: 2006-4-2 19:13
看一下10楼给你的例子,有哪方面不对的
作者: tz-chf    时间: 2006-4-2 19:13
题出得不对。1、2月份是不检车的,末位是1,11月份检,末位是2,12月份检。
作者: 一点通    时间: 2006-4-2 19:17
同意楼上的说法,我这个地方也是这样检的
作者: leenon    时间: 2006-4-2 19:26
哦,是这样,呵呵,但是出题的时候没说这点

那10月份检么?末尾是0就是10月份检吧?
作者: leenon    时间: 2006-4-2 19:35
看一下10楼给你的例子,有哪方面不对

我现在用的是2000版的看不了
作者: 一点通    时间: 2006-4-2 19:58
例子也是用2000版写的,如果按13楼的说法,查询语句可改为:

SELECT 车辆检测结果报告登记册.序号, 车辆检测结果报告登记册.检测时间, 车辆检测结果报告登记册.检测结果, 车辆检测结果报告登记册.营运证号, 车辆检测结果报告登记册.车牌照号, 车辆检测结果报告登记册.有效截止日期, 车辆检测结果报告登记册.车辆类别, Right([车牌照号],1) AS 查找
FROM 车辆检测结果报告登记册
WHERE (((车辆检测结果报告登记册.检测时间) Between (IIf(IsNull([Forms]![高级查询]![开始日期]),#1/1/2000#,[Forms]![高级查询]![开始日期])) And (IIf(IsNull([Forms]![高级查询]![截止时间]),#12/31/2099#,[Forms]![高级查询]![截止时间]))) AND ((Right([车牌照号],1)) Like Right([Forms]![高级查询]![月],1)));
[attach]16838[/attach]


[此贴子已经被作者于2006-4-2 12:25:25编辑过]


作者: leenon    时间: 2006-4-2 20:12
我看到点子大哥传上来的例子了,太棒了,好像可以完成我的要求,回去看看。

不管怎么说,我都要谢谢大家。

顺便问一下,点子大哥是不是把查询文件给我改了一下呢?
作者: andymark    时间: 2006-4-2 21:51
按题意:找出一年内未检车辆的车牌照号,版主的例子只是在一定时间内已检测车牌号,结果不对吧




作者: andymark    时间: 2006-4-2 22:18
基本思路:

首先查询出一定时间里所有的车牌照号(这个例子有点问题)

再按一定时间里所有的车牌照号和已检测的车牌号进行对比,就可找出未检车辆的车牌号


作者: leenon    时间: 2006-4-3 20:42
是有点问题,还差一点
作者: leenon    时间: 2006-4-3 20:47
SELECT 车辆检测结果报告登记册.序号, 车辆检测结果报告登记册.检测时间, 车辆检测结果报告登记册.检测结果, 车辆检测结果报告登记册.营运证号, 车辆检测结果报告登记册.车牌照号, 车辆检测结果报告登记册.有效截止日期, 车辆检测结果报告登记册.车辆类别, Right([车牌照号],1) AS 查找
FROM 车辆检测结果报告登记册
WHERE (((车辆检测结果报告登记册.检测时间) Between (IIf(IsNull([Forms]![高级查询]![开始日期]),#1/1/2000#,[Forms]![高级查询]![开始日期])) And (IIf(IsNull([Forms]![高级查询]![截止时间]),#12/31/2099#,[Forms]![高级查询]![截止时间]))) AND ((Right([车牌照号],1)) Like Right([Forms]![高级查询]![月],1)));

"AND ((Right([车牌照号],1)) Like Right([Forms]![高级查询]![月],1)));"可不可以在其中再添上对年的比较啊,就是在输入时间与检测时间比较差一年的前提下,再对以上的车牌号等进行比较?



作者: 一点通    时间: 2006-4-3 21:51
现在才理解你的问题,看符不符合你的要求

[attach]16854[/attach]

作者: leenon    时间: 2006-4-3 22:04
还是不对,点子大哥,我要的是在一年内固定月份里的没检车辆,

比如我要查出2004.7-2005.7的车车辆,那显示结果就应该是

2004-7-1某车,        2004-7-4某车……………………




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3