У меня проблема с Access DB и VB6.
У меня есть программа для выставления счетов, и номер счета является уникальным ключом.
Проблема в том, что два человека работают одновременно в сети, выставляя счета.
Мне нужно убедиться, что номер счета, введенный каждым из них, не существует, чтобы избежать дублирования.
Private Sub GuardarFactura()
If InvoiceNumberExist Then
MessageBox UserControl.hWnd, "Invoice number duplicate", "Control de errores", vbExclamation
Exit Sub
End If
On Error GoTo ErrorGuardar
Dim HayTrans As Boolean
AreaDeTrabajo.BeginTrans
HayTrans = True
Screen.MousePointer = vbHourglass
With recFrasEmi
.AddNew
!Numero = teInvoiceNumber
!Fecha = CDate(teFecha)
!TotalEuros = Format(CDbl(teTotal), FormatoImporte)
.Update
.Move 0, .LastModified
End With
AreaDeTrabajo.CommitTrans
HayTrans = False
DoEvents
Screen.MousePointer = vbDefault
Exit Sub
ErrorGuardar:
If HayTrans Then AreaDeTrabajo.Rollback
Screen.MousePointer = vbDefault
MessageBox UserControl.hWnd, Err.Number & ": " & Err.Description, "Control de errores", vbExclamation
End Sub
function InvoiceNumberExist
dim RS as recordset
Sql "Select * From Facturas Where Numero='" & teInvoiceNumber & "'"
Set RS = BD.OpenRecordset(Sql)
If Not (RS.EOF And RS.BOF) Then
InvoiceNumberExist=true
else
InvoiceNumberExist=false
End If
end function
InvoiceNumberExist не всегда работает, если пользователи работают одновременно,
Я знаю, что могу использовать «если Err = 3022, то ....», но возможно найти дубликат перед ошибкой ??
Спасибо