Duplicidad al Generar un Numero de Pedido
Espero me puedan ayudar con este tema, quisiera saber si existe alguna forma de bloquear un registro al hacer un select max(id_pedido)+1 en access. Esto debido a que estoy trabajando un proyecto en el cual genero un numero de pedido al presionar el Botón de Grabar.
La inconsistencia que tengo es que estoy trabajando access en red, entonces si 2 usuarios presionan al mismo tiempo el botón de grabar me genera el mismo # de pedido y no logro encontrar la forma para bloquearlo hasta que se grabe.
Mi código es el siguiente:
Private Sub cmdGrabar_Click()
Dim iNumeroPedido As Integer
Dim Sql As String
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
On Error GoTo error
If Me.Confirmado = False Or IsNull(Me.Confirmado) Then
Me.Monto_total = Nz(Me.txtTotal, 0)
Me.Cantidad_Productos = Nz(Me.txtCantidad, 0)
Me.Cantidad_Articulos = Nz(Me.txtArticulos, 0)
If Me.Cantidad_Productos > 0 And Me.Monto_total > 0 Then
Set rs = db.OpenRecordset("select max(id_pedido)+1 from pedidos_enca")
Do While Not rs.EOF
Me.Id_Pedido = rs(0)
rs.MoveNext
Loop
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
Me.Confirmado = True
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Pedido Guardado Y Confirmado !!!", vbInformation, "Ingreso de Pedidos"
Me.CmdNuevo.Enabled = True
Me.Refresh
Form_Current
Else
MsgBox "El pedido esta mal ingresado o le faltan datos!!!", vbCritical
Err.Clear
End If
Else
MsgBox "El Pedido ya Fue Grabado!!!", vbInformation
End If
Error:
'MsgBox "Existio Un error!!!" & Err. Description, vbCritical, "Error"
'MsgBox Err. Description
End Sub