é o seguinte, o sistema funciona em rede, e a venda é feita por 3 ou 5 estações ao mesmo tempo, tenho um campo chamado "PEDIDO", em uma tabela, que qdo o usuário clica no botão finalizar venda, abro o tratamento de erros, e através de um recordset, abro a tabela no modo pessimista, e o próximo usuário que chegar, cai na rotina de erro, que vai tentando por até 5 vezes abrir esta mesma tabela para pegar o numero do pedido, e como esta aberta neste modo, tem que esperar o usuário anterior liberá-la, ( isto ocorre no fechamento do recordset), para poder abri-la e pegar o próximo pedido. Bom sempre rodou assim, mas no último sabado, tava uma pauleira na loja e ocorreu isto, agora como pode dois terminais pegar o mesmo numero, se a tabela é aberta no modo pessimista ??/ abaixo segue a rotina que pega o numero do próximo pedido.
On Error GoTo trataerro
If Trim(TXTPEDIDO.Text) = Empty Then
DoEvents
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseServer
Rs.Open "auxiliar", Cnn, adOpenKeyset, adLockPessimistic
TXTPEDIDO = Format(Rs!pedido, "000000")
Rs!pedido = val(Rs!pedido) + 1
Rs.Update
Rs.Close
Set Rs = Nothing
End If