Office中国论坛/Access中国论坛

标题: 求助!用VBA如何写日期段并循环? [打印本页]

作者: 紫风    时间: 2005-3-5 17:03
标题: 求助!用VBA如何写日期段并循环?
各位高手,我在ACCESS的模块中写了如下代码:

    DoCmd.OpenQuery "查询3"

    Dim N As Integer

    N = DMAX("[客户ID]", "查询3", "[客户ID]")

    DoCmd.GoToControl "客户ID"

    For ID = 1 To N

    DoCmd.ApplyFilter "", "[客户ID] =" & ID

    Next ID

请问我如果想在筛选客户ID之前先设定日期段(比方说2005-01-01到2005-01-31)?(我在查询设计中如果设定参数,会有错误信息提示:您取消了之前的操作。)

“您取消了之前的操作”我找到问题了!!

比方将日期设定为2005-01-01到2005-01-31,其中某个ID的客户没有营业资料,因而造成ID的不连续,即FOR ID = 1 TO N 就不成立了。怎么办啊?????



[此贴子已经被作者于2005-3-7 15:12:33编辑过]


作者: jzwwpp    时间: 2005-3-5 21:05
我在查询设计中如果设定参数,会有错误信息提示:您取消了之前的操作。)不知您是怎样设定参数的
作者: 紫风    时间: 2005-3-7 16:36
在查询设计中有我加了如下参数日期 BETWEEN [开始日期]AND[结束日期]请指教!
作者: 紫风    时间: 2005-3-7 16:42
又发现了一个问题:FOR ID = I TO N但是如果中间有断开那不是……???完了?(比方说,我有10个客户,即N=10,可是如果在我限定的查询日期段中客户ID=8的客户没有任何交易活动,那客户ID=8和以后的不就是打不出来了?)
作者: jzwwpp    时间: 2005-3-7 16:48
你的目的是一条记录打印一页?如果是这样的话,你可以用报表,把单条记录作成一页就ok了
作者: 紫风    时间: 2005-3-7 17:45
是啊是啊!老大,怎么写啊?我是初学者啊!要不我把我之前写的代码贴上来给你看好不?

  

老大能不能帮我改一改?先谢谢啦!![em07][em07][attach]9232[/attach]



[此贴子已经被作者于2005-3-7 10:45:35编辑过]


作者: 紫风    时间: 2005-3-7 19:33
你的目的是一条记录打印一页?如果是这样的话,你可以用报表,把单条记录作成一页就ok了 ----是这样的啊,不过我还想让电脑自动地循环将每个客户的报表打印出来,而不想在每打一个报表前都输入客户名称(要知道,我有三百多个客户,每个月都有增加的啊,如果一个一个人工输入我会死的啦),请问有没有可能这样做?
作者: 情比金坚    时间: 2005-3-7 21:48
对不起,没看你的附件,每样产品打一页:节属性-----强制分页------选为节后,既可,无需编程。
作者: 紫风    时间: 2005-3-7 22:24
可是,我找不到“节属性-----强制分页------选为节后”在哪里啊[em04]

哦……我找到了!!谢谢斑竹!!

可是还有2个问题啊,

A. 我的页眉要怎样才显示出来呢?

B.如果每页都有好多列费用(每列费用是不相同的种类),我能不能在页脚将当月相同产品所产生的所有费用都显示出来呢?

[此贴子已经被作者于2005-3-7 14:33:22编辑过]


作者: 青青    时间: 2005-3-7 22:34
工具栏上有一个“属性”按钮,按下时会有属性窗口出现。
作者: 紫风    时间: 2005-3-7 22:39
我已经看到了,但是我又有新的问题啊,在第8楼我重新编辑了写了那2个问题,请问怎么解决?[em04]
作者: 紫风    时间: 2005-3-7 22:52
各位高人,请问如果在查询中用代码写有没有可能做到呢?
作者: hi-wzj    时间: 2005-3-8 01:20
很高兴您在有困难时会想到本站。

但是,您的具体要求是什么?您是新手,最好能将您的需求写清楚,比如:我想达到什么目的,现在在哪里(在哪个查询或哪个模块,名称是什么)遇到困难了。这样其他的人才好帮您。

因为我下载了您的文件,打开看了后仍看不出您的需求和所遇到困难是什么。

[此贴子已经被作者于2005-3-7 17:23:04编辑过]


作者: jzwwpp    时间: 2005-3-8 02:09
[attach]9245[/attach]

问题1已解答,

问题2理解不了。
作者: sgrshh29    时间: 2005-3-8 03:44
不太明白你的意思:

A. 我的页眉要怎样才显示出来呢?不明白,你页眉里就一个标签,不是已经显示出来了吗?

B.如果每页都有好多列费用(每列费用是不相同的种类),我能不能在页脚将当月相同产品所产生的所有费用都显示出来呢?不太明白.是不是想按月份求每一种费用的总金额啊?

请你能不能再详细一点.
作者: 紫风    时间: 2005-3-8 16:58
各位高人,这样,我再上传一次那个文件,在报表里我已经修改过,但是请各位查看报表“装箱统计清单1”中右下角的“应收费用”。我想将:应收费用=金额(列的总值)+仓租(列的总值)+制单(列的总值)+进港(列的总值)+打托(列的总值)+垫付(列的总值)+其它(列的总值)-已收(列的总值)。而且,如果某个客户当月的装柜资料要打出好几张纸,这个“应收费用”能不能做成这个客户(组)的总应收金额?这应该怎么做?[attach]9263[/attach]

[em07]谢谢各位帮忙啊[em07]

[此贴子已经被作者于2005-3-8 9:27:03编辑过]


作者: 紫风    时间: 2005-3-8 17:10
TO HI-WZJ谢谢您的提点!!在模块--“被转换的宏-宏4”中的那一小段代码。如果[客户ID]是从1到N的连续数字就没有问题(每个客户都有一个ID),可是并不是每个客户个个月都有做。即:如果[客户ID]=2(裕骏达)如果在这个月没有做柜资料,那么FOR ID = 1 TO N就不能运行啦!因为从2就断开了!请问有没有办法不使用客户ID排序,而改成用[客户名称]的笔画多少按升序排序?这段代码应该怎么写?
作者: 紫风    时间: 2005-3-8 17:53
不好意思,刚才弄错了。请各位查看报表“装箱统计清单1”中右下角的“应收费用”。如果某个客户当月的装柜资料要打出好几张纸,这个“应收费用”能不能做成这个客户(组)的总应收金额?这应该怎么做?应收费用=金额(列的总值)+仓租(列的总值)+制单(列的总值)+进港(列的总值)+打托(列的总值)+垫付(列的总值)+其它(列的总值)-已收(列的总值)。还有,怎样在每页列出以上每列费用的总和?


作者: sgrshh29    时间: 2005-3-8 19:03
标题: Re:紫风
是不是想要这种结果呀?[attach]9267[/attach]


作者: 紫风    时间: 2005-3-8 21:42
经过各位高手指点,我搞定啦!!![em01]太感谢各位啦!!!小弟一定会学好ACCESS,希望将来能像各位高手一样去帮助有需要的人!!!




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