佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1398|回复: 9

IF ENDIF太多造成Microsft Access 2003 compile error:????

[复制链接]
发表于 13-7-2007 02:48 PM | 显示全部楼层 |阅读模式
Compile Error:
Procedure too large???

这是什么原因?
是不是我的if else end if 太多??

[ 本帖最后由 程家伟 于 27-7-2007 02:38 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 27-7-2007 03:19 PM | 显示全部楼层
vb6也会出现这样的问题。。。这是提醒你的programming写法有问题了 ,

你是在一个process里用很多的IF ELSE而造成的? 改一下你的写法。。不然你要增加一个value是,就改死你了
回复

使用道具 举报

 楼主| 发表于 28-7-2007 09:13 AM | 显示全部楼层
原帖由 max5007 于 27-7-2007 03:19 PM 发表
vb6也会出现这样的问题。。。这是提醒你的programming写法有问题了 ,

你是在一个process里用很多的IF ELSE而造成的? 改一下你的写法。。不然你要增加一个value是,就改死你了


我来给大家看看我的coding,包你们看了之后就 半死。。。。一下是我的coding的8分之1

看来也得逼自己想出opp咯

Private Sub CB1_2_508_column_AfterUpdate()
If Me.[CB1_2_508_column] = "508_254" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_254_2].Visible = True
Me.[CB1_508_254_2].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_254_2].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_3_508_column].Visible = True
Me.[CB1_3_508_column].Left = 3980
Me.[CB1_3_508_column].Top = 3980
End If

If Me.[CB1_2_508_column] = "508_381" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_381_2].Visible = True
Me.[CB1_508_381_2].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_381_2].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_3_508_column].Visible = True
Me.[CB1_3_508_column].Left = 3980
Me.[CB1_3_508_column].Top = 4535
End If

If Me.[CB1_2_508_column] = "508_508" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_508_1].Visible = True
Me.[CB1_508_508_1].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_508_1].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_4_508_column].Visible = True
Me.[CB1_4_508_column].Left = 3980
Me.[CB1_4_508_column].Top = 5105
End If

If Me.[CB1_2_508_column] = "508_635" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_635_1].Visible = True
Me.[CB1_508_635_1].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_635_1].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_4_508_column].Visible = True
Me.[CB1_4_508_column].Left = 3980
Me.[CB1_4_508_column].Top = 5670
End If

If Me.[CB1_2_508_column] = "508_762" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_762_1].Visible = True
Me.[CB1_508_762_1].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_762_1].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_5_508_column].Visible = True
Me.[CB1_5_508_column].Left = 3980
Me.[CB1_5_508_column].Top = 6240
End If

If Me.[CB1_2_508_column] = "508_889" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_889_1].Visible = True
Me.[CB1_508_889_1].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_889_1].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_5_508_column].Visible = True
Me.[CB1_5_508_column].Left = 3980
Me.[CB1_5_508_column].Top = 6810
End If


If Me.[CB1_2_508_column] = "508_1016" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_1016].Visible = True
Me.[CB1_508_1016].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_1016].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_6_508_column].Visible = True
Me.[CB1_6_508_column].Left = 3980
Me.[CB1_6_508_column].Top = 7370
End If

If Me.[CB1_2_508_column] = "508_1143" And Me.[CB1_1_508_column] = "508_254" Then
Me.[CB1_508_1143].Visible = True
Me.[CB1_508_1143].Left = 570
Me.[TEMP_HOLD_CB1_2_508_LEFT] = "570"
Me.[CB1_508_1143].Top = 2840
Me.[TEMP_HOLD_CB1_2_508_TOP] = "2840"

Me.[CB1_508_381_4].Visible = True
Me.[CB1_508_381_4].Left = 570
Me.[TEMP_HOLD_CB1_7_508_LEFT] = "570"
Me.[CB1_508_381_4].Top = 7940
Me.[TEMP_HOLD_CB1_7_508_TOP] = "7940"

'THE CB-1 BOTTOM COVER COMPARTMENT SIZE 508 GROUP
Me.[CB1_BOTTOM_COVER_508_100].Visible = True
Me.[Line180].Visible = True
Me.[Line181].Visible = True
Me.[Line182].Visible = True
Me.[Line183].Visible = True
Me.[Line184].Visible = True
Me.[Line185].Visible = True
Me.[Line186].Visible = True
Me.[Line187].Visible = True
Me.[Line188].Visible = True
Me.[Line189].Visible = True
Me.[Line190].Visible = True
Me.[Line191].Visible = True
Me.[Line192].Visible = True
Me.[Line193].Visible = True
Me.[Line194].Visible = True
Me.[Line195].Visible = True
Me.[Line196].Visible = True
Me.[Line197].Visible = True
Me.[Line198].Visible = True
Me.[Line199].Visible = True
Me.[Line200].Visible = True

Me.[CB2_TOP_COVER].Visible = True
Me.[CB2_TOP_COVER].SetFocus
Me.[CB1_1_508_column].Visible = False
End If
回复

使用道具 举报

发表于 30-7-2007 10:17 AM | 显示全部楼层
你可以把你的 code 分成几个 sub function, 然后在这个主要的 function 来呼叫它们.
回复

使用道具 举报

发表于 31-7-2007 09:18 AM | 显示全部楼层
这样写会对你在enhancement, debug那里造成很大的问题的
回复

使用道具 举报

发表于 31-7-2007 09:21 AM | 显示全部楼层
你的code太长。。把它分段吧。。。
回复

使用道具 举报

Follow Us
 楼主| 发表于 31-7-2007 02:01 PM | 显示全部楼层
谢谢各位老大的指点 ,我现在还在向如何的用static variable来决绝 ,就像goatstudio大大讲到的方法
回复

使用道具 举报

发表于 3-8-2007 09:37 AM | 显示全部楼层
原帖由 程家伟 于 31-7-2007 02:01 PM 发表
谢谢各位老大的指点 ,我现在还在向如何的用static variable来决绝 ,就像goatstudio大大讲到的方法


不是 static variable, 只是分折成几个 functions.
回复

使用道具 举报


ADVERTISEMENT

发表于 4-8-2007 09:17 PM | 显示全部楼层
好像有很多是重复的
写个 function 然后 pass parameter (column 1 & 2) call 那个 function
可以短很多
回复

使用道具 举报

 楼主| 发表于 6-8-2007 09:22 AM | 显示全部楼层
原帖由 hooi1983 于 4-8-2007 09:17 PM 发表
好像有很多是重复的
写个 function 然后 pass parameter (column 1 & 2) call 那个 function
可以短很多

原帖由 goatstudio 于 3-8-2007 09:37 AM 发表
不是 static variable, 只是分折成几个 functions.


谢谢各位大大协助。。。我现在还在改着 。。有好多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 14-9-2025 09:37 PM , Processed in 0.127360 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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