如何产生由数字和英文字母组成的随机序列号
比如:
1WDR45E5I
3R5JIRWWE3B33
4RTY464FERLJT8I这样一个序列,主要是用在产品的序列号上,一个产品用一个序列号,长度固定或可变都可以,要能产生无数个随机序列号.请各位大侠帮帮忙,小弟VB只懂皮毛.

解决方案 »

  1.   

    把你要出现的字母放入数组中,用RND得到数组下标。即可。
    在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
      

  2.   

    Private Sub Command1_Click()
        Dim s As String, t As String
        Dim i As Long, nlen As String, n As Long
        s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        nlen = 16 '计算16位长度的随机串
        For i = 1 To nlen
            n = CLng(Rnd * 35 + 1)
            t = t & Mid(s, n, 1)
        Next
        Debug.Print t
        Print t
    End Sub
      

  3.   

    由yachong(蚜虫) 修改:
    Private Sub Command1_Click()
        Dim s As String, t As String
        Dim i As Long, nlen As String, n As Long
        Randomize
        s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        nlen = 16 '计算16位长度的随机串
        For i = 1 To Rnd * 35 + 1
            n = CLng(Rnd * 35 + 1)
            t = t & Mid(s, n, 1)
        Next
        Print t
    End Sub
      

  4.   

    用日期序列+时间序列。。
    DateSerial+TimeSerial
      

  5.   

    换个思路行不....?序列号我直接使用顺序生成,不就行了....也就是生成流水号,像RMB一样至于贴到你的产品上.......你的产品不会总是顺序卖出去吧??????
      

  6.   

    Option ExplicitPrivate Declare Function CoCreateGuid Lib "ole32.dll" (pGuid As GUID) As Long
    Private Declare Function StringFromGUID2 Lib "ole32.dll" (pGuid As GUID, ByVal PointerToString As Long, ByVal MaxLength As Long) As Long
    Private Const GUID_OK As Long = 0
    Private Type GUID
        Guid1 As Long
        Guid2  As Integer
        Guid3  As Integer
        Guid4(0 To 7) As Byte
    End Type
    Public Function CreateGUIDKey() As String
        Const GUID_LENGTH As Long = 38
        Dim udtGUID As GUID
        Dim strFormattedGUID As String
        Dim lngResult As Long
        lngResult = CoCreateGuid(udtGUID)
        If lngResult = GUID_OK Then
            strFormattedGUID = String$(GUID_LENGTH, 0)
            StringFromGUID2 udtGUID, StrPtr(strFormattedGUID), GUID_LENGTH + 1
        Else
            strFormattedGUID = ""
        End If
        CreateGUIDKey = strFormattedGUID
    End Function
    调用:
    dim code as string
    code=CreateGUIDKeycode就是全球唯一序列号了,如果不要里面的“{”和“-”,自己替换成空即可。
      

  7.   

    昨天晚上还为了怎么生成uid犯难呢
    呵呵,收藏
      

  8.   

    refer to:
    http://www.vbaccelerator.com/home/VB/Tips/Create_GUIDs/article.asp