Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

一个头痛的问题

海水冲马桶  发表于:2008-08-22 10:56:59  
复制

各位老师同学们,在自己最近做的一个"档案管理"中,遇到了一件自己解决不了的问题,请老师和同学们帮忙指点,谢谢!

[问题]:窗体中的记录简单的有如下字段:

字段1                    序号

字段2(等多个字段)         一些其他信息

字段3                     保存年限(共有3个值:10年,30年,永久,这个字段绑定年限表中的年限ID )

字段4                     档案盒中的件数

 

[目的]:想实现根据所选择的保存年限,实现自动的生成在相对应的档案盒中的件数

目前尝试了2种办法,均以失败告终.

第一种办法思路:

   模仿省市县组合框联动的思路,当选择年限后,根据这个值,用strSQL=INSERT INTO[档案盒序号表](档案盒中件号,档案保存年限ID) VALUES('+Str(me.档案保存年限ID)+'),

表档案盒中的序号字段如下:

序号ID     自动编号    (这考虑自动产生根据盒中的序号)

保存年限ID  数值       (这是指判断保存年限)

第一种办法面临的问题:

    1,strSQL这个插入表中的值的操作,究竟在哪个事件合适,当放入保存年限的失去焦点事件后,执行strSQL语句,然后给档案合中盒中序列号行来源为一个"表档案盒的序号"绑定第一列:序号ID

    2,这个序号没问题,但是如果用户再次更改这个保存年限时,则还会生产一个自动加1的序列号,些是我想是不是放在保存年限的更改事件中,如果是这样的话,如果真的更改了,则序号ID还会加  1,这个序号就会有问题,比实际档案盒中的大.

    3,如果把这个操作放在"下条记录时"则反过来,客户在这个窗体仅仅操作下一条记录时,则序号ID仍会加1.

    4,此时考虑,如果把这个操作放在"下条记录时,"并且同时"保存年限"不更改时,产生这个序号加1的操作,应该就没有了问题,可是这个判断条件如何写?还想不明白

 

第二种办法思路:

   设置三个变量:a,b ,c同时赋初值0,a,b,c分别对应保存年限"10年,30年,永久",当执行"下一条记录"时执行a=a+1...,同时把a,b,c赋给me.盒中件号

 

第二种办法面临的问题:

    1,也面样面临把这个操作放在哪个事件的问题,如果是"下一条记录"则会当客户没有更改保存年限时,盒中件号还在增加的情况

    2,这时,还是考虑这个操作同时要满足,"下一条记录"和"保存年限"没有更改这两个条件,这如何实现?现在我还搞不清楚,

 

说来说去,问题就汇聚到了一个问题上,这也是我操作时没有想到的,也是写这个帖子时才想到的,不知道这个条件如何写,请老师同学帮忙!谢谢!

 

 

 

Top
竹笛 发表于:2008-08-22 11:06:37

me.盒中件号.setfocus

me.盒中件号=dmax("[盒中件号]","表名称")+1



海水冲马桶 发表于:2008-08-22 11:25:11

竹迪老师老师的思路非常巧妙,很简单的解决了问题,很值得学习,感谢!

 

但是现在还面临一个问题,

就是这个操作的人,返回到其中某条记录仅仅是对其中的"归档年限"进行了修改,那么盒中件号还会加1,事实此时这个盒中件号应该是不变的,这怎么解决 ,再次感谢竹迪老师!

 


'竹迪老师的思路,非常巧妙,很值得学习

Private Sub 归档年限_AfterUpdate()
    If IsNull(Me.盒中件号) Then
        Me.盒中件号.SetFocus
        Me.盒中件号 = DMax("盒中件号", "1-收文登记表") + 1
    End If
End Sub



竹笛 发表于:2008-08-22 11:40:17

呵,不会的,不信你试试,因为只有当没填时,才会执行这个代码,如果已有数据,是不会执行的。



总记录:3篇  页次:1/1 9 1 :