注冊(cè) 登錄
Office中國(guó)論壇/Access中國(guó)論壇 返回首頁(yè)

的個(gè)人空間 http://ctxi.cn/?0 [收藏] [復(fù)制] [分享] [RSS]

日志

帶斷號(hào)檢測(cè)的自定義編號(hào)

已有 2774 次閱讀2008-4-2 22:54 |個(gè)人分類:我的作品

適用格式 : XXX-YYYYMMDD-0000

QUOTE:

   Public Function ZDYBH(StrTable As String, StrField As String, StrBH As String, Optional FDay As String = "YYMMDD", Optional ILen As Integer = 3, Optional B As Boolean = False) As String
'==================================================================
'功能: 自定義用戶編號(hào),帶斷號(hào)檢測(cè)功能
'格式: "XXX"-"日期格式 "-"0000"
'      StrTable 為任意表名稱
'      StrField 為任意字段名稱
'      StrBH    編碼類型 , 可自義任意格式
'      FDay     日期格式 默認(rèn)日期格式為:YYMMDD",其他符合FORMAT格式的如 YYYYMM,YYYY,YYYYMMDD
'      ILen     為數(shù)字格式化長(zhǎng)度 , 默認(rèn)長(zhǎng)度為3 代表 000 格式
'      B        為是否要檢測(cè)斷號(hào) ,默認(rèn)為FALSE 不檢測(cè)
'用法:  ZDYBH("產(chǎn)量表", "產(chǎn)量ID", "LDH")
'       ZDYBH("產(chǎn)量表", "產(chǎn)量ID", Me.Combo1)
'       ZDYBH("產(chǎn)量表", "產(chǎn)量ID", Me.Combo1, "YYYY")
'       ZDYBH("產(chǎn)量表", "產(chǎn)量ID", Me.Combo1, , 4, True)
'作者: andymark
' QQ : 42503577 , ewang11@163.com
'日期: 2008-4-2
'===============================================================
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Dim Str As String
Dim Num As Integer
Dim TNum As Integer
Dim StrWhere As String
Dim StrOrderWhere As String

Set Conn = CurrentProject.Connection
Str = StrBH & "-" & Format(Now(), "" & FDay & "") & "-"
StrWhere = "select " & StrField & " from " & StrTable & " where " & StrField & " like  '" & Str & "%'"
StrOrderWhere = StrWhere & " Order by  " & StrField & " DESC"
Rs.Open StrOrderWhere, Conn, adOpenKeyset, adLockOptimistic
  If Rs.EOF Then
   
      Num = 0
  
    Else
   
      Num = Right(Rs.Fields("" & StrField & ""), ILen)
   
      If B = True Then
      
         If CInt(Num) <> Rs.Fields.Count Then
         
            Rs.Close
            Rs.Open StrWhere, Conn, adOpenKeyset, adLockOptimistic
         
            Num = 0
         
            Do While Not Rs.EOF
           
               TNum = CInt(Right(Rs.Fields("" & StrField & ""), ILen))
              
               If TNum - Num = 1 Then
                 
                  Num = TNum
                Else
               
                  Exit Do
               
               End If
              
              Rs.MoveNext
           
            Loop
        
        
         End If
     
      End If
   
  End If
ZDYBH = StrBH & "-" & Format(Now(), "" & FDay & "") & "-" & Format(Num + 1, String(ILen, "0"))
Set Rs = Nothing
Set Conn = Nothing

End Function

評(píng)論 (0 個(gè)評(píng)論)

facelist doodle 涂鴉板

您需要登錄后才可以評(píng)論 登錄 | 注冊(cè)

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:38 , Processed in 0.145411 second(s), 14 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部