Access交流中心

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

如何根据不同的类型,自动创建序号

海水冲马桶  发表于:2008-08-25 11:21:47  
复制

各位老师和同学,请教以下问题:

归档年限有以下三类:10年,30年,永久

[问题]要求根据选择的归档年限类型,分别产生"档案盒的件号",如选择10年,则件号由1.2.3......,选择30年,则件号由1,2,3....

[思路]在竹迪老师的指导下,我想分别建立三个全局变量a,b,c 来分别对应不同档案保存类型时的盒中编号,当在"归档年限"发生AfterUpdate事件时,做如下操作:

Private Sub 归档年限_AfterUpdate()
    Select Case Me.归档年限
        Case Is = 1
            a = a + 1
            Me.盒中件号 = a
        Case Is = 2
            b = b + 1
            Me.盒中件号 = b
         Case Is = 3
            c = c + 1
            Me.盒中件号 = c
   
    End Select
   
End Sub

 

[存在问题]

我在这个窗体的最前面定义了a,b ,c并赋值0,调试时总是错误:

Option Compare Database
Dim a, b, c As Integer
a = 0
b = 0
c = 0

 

是不是定义全局变量时我的方法有问题,请老师指点,谢谢!

 

 

 

Top
钱玉炜 发表于:2008-08-25 11:27:52

全局变量要在模块中定义

public a as integer

public b as integer

public c as integer



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

全局变量a,b,c 我定义了,可以运行了,可是还是达不到预期效果.

如果正常的添加记录时,是可以的,可是当返回其中的某条记录时,如果更改档案的"保存年限"时,则"档案盒中件号"是不随着变化的,这是一个问题?

 



王三平 发表于:2008-08-25 15:10:13

我看了一下,你的设计思路有问题。

举例说明:如果用全局变量。你启用软件,第一次录入,按存档期限,可以实现从1开始自动编号。

关闭软件后,第二次录入时,可又是从1开始编号,而不是接着你下次的编号重新编号的。

怎么办呢?

按照你的方式。在归档年限_AfterUpdate()事件的前端使用DLOOKUP()函数从表中得到

各存档年限的最大编号,赋值给公共变量a,b,c.

这样就可以解决你的问题了。


 



海水冲马桶 发表于:2008-08-25 21:38:44

谢谢楼上的解答,让我明白了一个道理,这个全局变量,每次打开程序时是再一次被赋0的(按照我的程序),这样是不对的,楼主的想法我是明白了,由于a,b,c是变量.可能是我的整个思路出了问题,我再好好整理下,我现在要实现的目的是:

选择不同的[归档年限],就分别产生不同的[盒中档案顺序],目前最大的困难就再于:

对其中已经操作的某条记录进行更改时,这个盒中档案顺序]如何变化:

假设:

    记录号      保存年限        盒中序号

      1            10年            1

      2            30年            1

      3            30年            2

      4            30年            3

   

如果此时记录在第3条记录时,更改保存年限为10年:则为:            

 

    记录号      保存年限        盒中序号

      1            10年            1

      2            30年            1

      3            10年            2

      4            30年            3

 

但如果改后发现不对,又改为保存年限30年,按照我的思路,则:

 

     记录号      保存年限        盒中序号

      1            10年            1

      2            30年            1

      3            30年            4

      4            30年            3

   其实此时第3条记录30年的保存年限对应的盒中序号的应该:仍是2(下面的代码是我目前的思路)

Private Sub 归档年限_AfterUpdate()
    Select Case Me.归档年限
        Case Is = 1
            a = a + 1
            Me.盒中件号 = a
        Case Is = 2
            b = b + 1
            Me.盒中件号 = b
         Case Is = 3
            c = c + 1
            Me.盒中件号 = c    
    End Select
   
End Sub

 

 

各位老师同学,我的思路可能有重大局限,请大家指正,谢谢!

 

 

 

 



竹笛 发表于:2008-08-25 22:02:27
实物上是什么号码,就人工填什么号码。

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