I use the following code to create a unique ID on one of my databases. It currently works great. I have started a new database and want to use the same Module to create Unique ID numbers. I exported the Module, Table, Query, and Form that I use in my older database to my new database to create this unique ID. However, I am getting this error on the first line "Dim DB As Database":
Compile Error:
user-defined type not defined
Help Please! What am I not seeing. One thing is the old DB was designed in Access '97 then converted to 2000 (But Still Works) The new DB was created in 2000.
Here's the Module:
Option Compare Database
Option Explicit
Public Function NewOrderNum() As Long
On Error GoTo Err_NewOrderNum
Dim DB As Database
Dim tblNewOrderNumber As Recordset
Dim qryNewOrderNumberMax As Recordset
Const RiErr = 3000
Const LockErr = 3260
Const InUseErr = 3262
Const NumReTries = 20#
Dim NumLocks As Integer
Dim lngX As Long
Dim OrderNumber As Long
Dim lngOldOrderNumber As Long
Dim lngNewOrderNumber As Long
Dim lngBigOrderNumber As Long
Set DB = CurrentDb()
Set qryNewOrderNumberMax = DB.OpenRecordset("qryNewOrderNumberMax", dbDenyRead)
Set tblNewOrderNumber = DB.OpenRecordset("tblNewOrderNumber", dbDenyRead)
lngOldOrderNumber = qryNewOrderNumberMax!OrderNumber
lngNewOrderNumber = tblNewOrderNumber!OrderNumber
lngBigOrderNumber = lngNewOrderNumber
If (lngOldOrderNumber > lngBigOrderNumber) Then
lngBigOrderNumber = lngOldOrderNumber
End If
If (OrderNumber > lngBigOrderNumber) Then
lngBigOrderNumber = OrderNumber
End If
lngBigOrderNumber = lngBigOrderNumber + 1
With tblNewOrderNumber
.Edit
!OrderNumber = lngBigOrderNumber
.Update
End With
NewOrderNum = lngBigOrderNumber
NormExit:
Set DB = Nothing
Exit Function
Err_NewOrderNum:
If ((Err = InUseErr) Or (Err = LockErr) Or (Err = RiErr)) Then
NumLocks = NumLocks + 1
If (NumLocks < NumReTries) Then
For lngX = 1 To NumLocks ^ 2 * Int(Rnd * 20 + 5)
DoEvents
Next lngX
Resume Next
Else
End If
Else
MsgBox "Error " & Err.Number & ": " & Err.Description, vbOKOnly & vbCritical, "Get Qi Number"
GoTo NormExit
End If
End Function
Compile Error:
user-defined type not defined
Help Please! What am I not seeing. One thing is the old DB was designed in Access '97 then converted to 2000 (But Still Works) The new DB was created in 2000.
Here's the Module:
Option Compare Database
Option Explicit
Public Function NewOrderNum() As Long
On Error GoTo Err_NewOrderNum
Dim DB As Database
Dim tblNewOrderNumber As Recordset
Dim qryNewOrderNumberMax As Recordset
Const RiErr = 3000
Const LockErr = 3260
Const InUseErr = 3262
Const NumReTries = 20#
Dim NumLocks As Integer
Dim lngX As Long
Dim OrderNumber As Long
Dim lngOldOrderNumber As Long
Dim lngNewOrderNumber As Long
Dim lngBigOrderNumber As Long
Set DB = CurrentDb()
Set qryNewOrderNumberMax = DB.OpenRecordset("qryNewOrderNumberMax", dbDenyRead)
Set tblNewOrderNumber = DB.OpenRecordset("tblNewOrderNumber", dbDenyRead)
lngOldOrderNumber = qryNewOrderNumberMax!OrderNumber
lngNewOrderNumber = tblNewOrderNumber!OrderNumber
lngBigOrderNumber = lngNewOrderNumber
If (lngOldOrderNumber > lngBigOrderNumber) Then
lngBigOrderNumber = lngOldOrderNumber
End If
If (OrderNumber > lngBigOrderNumber) Then
lngBigOrderNumber = OrderNumber
End If
lngBigOrderNumber = lngBigOrderNumber + 1
With tblNewOrderNumber
.Edit
!OrderNumber = lngBigOrderNumber
.Update
End With
NewOrderNum = lngBigOrderNumber
NormExit:
Set DB = Nothing
Exit Function
Err_NewOrderNum:
If ((Err = InUseErr) Or (Err = LockErr) Or (Err = RiErr)) Then
NumLocks = NumLocks + 1
If (NumLocks < NumReTries) Then
For lngX = 1 To NumLocks ^ 2 * Int(Rnd * 20 + 5)
DoEvents
Next lngX
Resume Next
Else
End If
Else
MsgBox "Error " & Err.Number & ": " & Err.Description, vbOKOnly & vbCritical, "Get Qi Number"
GoTo NormExit
End If
End Function