Access交流中心

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

求高人指点自动编码问题

李孝辉  发表于:2013-08-30 16:31:53  
复制

单击按键,自动编码问题!

如何自动生成16位编码:要求!

  1621002013083001ABCD

  1621002013083002GHJF

  1621002013083003GIKO

162100  固定的

20130830  当前年月日(年四位,月两位,日两位数)

001   002    003   自然累加。

后面四位英文字母随机,当日的编码不能重复

2013年9月1日就是。

16210020130901001BFDS

16210020130901002nhgF

16210020130901002GGBD

 

 

Top
煮江品茶 发表于:2013-08-30 17:26:04

后四位字母随机产生的话,增加这四个字母干吗?



李孝辉 发表于:2013-08-30 18:49:18

尾数4位为全数字、全英文、英文数字混合都可以!

下面是我在网上找的!

表   名:   OldpeopleMain

字段名:   C_id

 

 Me.C_id = "162100" & Format(Date, "yyyymmdd") & Format(Nz(DMax("mid(C_id,15,2)", "OldpeopleMain", "mid(C_id,1,14)='" & "162100" & Format(Date, "yyyymmdd") & "'")) + 1, "00")              ‘ "00"  两个0 ,尾数2位,"000"  尾数3位,类推。

可以实现

1621002013090101

1621002013090102

1621002013090103

。。。。。。。。。。。。。

日期变化后,末尾2尾数可以自动从01开始!(我的数据当天不会超过100条)

 

下面是随机数字和英文字母混合。

 

Dim K, a, b, I, Num, X, P As Integer
 
    Dim str, Pa, str1 As String
   
   str = ""
     
    For I = 1 To 9
        P = Int(Rnd * 2)                  '随机产生0,1两个随机数,使得数字与字母的顺序不同
       If P = 0 Then                       '如果为0那就产生数字,反之产生字母
            Num = Int(Rnd * 10)        '随机产生0-9的随机数
            Pa = Num
        Else
        Num = Int(Rnd * 10)            '随机产生0-9的随机数
           Num = Int(Rnd * 5)           '随机产生0-9的随机数
          Pa = Num
            K = Int(Rnd * 2)              '1大写,2小写
            Select Case K
          
            Case 0: a = 65: b = 90
            Case 1: a = 97: b = 122
            End Select
            X = Int(Rnd * (b - a + 1) + a)    'a-b随机数
            Pa = Chr(X)                              '随机对应的AscII字符
       End If
        str = str & Pa

    Next I
      

我是个菜鸟!把上面那个代码和下面随机生成英文字母数字的代码混合了一下。

从字符串str中取四位字符,两个代码混合,就成了下面的!

 

 Me.C_id = "162100" & Format(Date, "yyyymmdd") & Format(Nz(DMax("mid(C_id,15,2)", "OldpeopleMain", "mid(C_id,1,14)='" & "162100" & Format(Date, "yyyymmdd") & "'")) + 1, "00")  &  left(str,4)

 

1621002013090101FGvg

16210020130901022345

162100201309010323DF

。。。。。。。。。。。。。。。

末四位可能是全数字、全英文、英文和数字混合。

没有学过ACCESS,只能拼凑代码!汗!

 



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