bom, como é um tópico, vou explicar meu projeto...
tenho um banco de dados em Access num Servidor que está compartilhado p/ 50 máquinas + ou - numa determinada unidade "K:\TESTE" (onde TESTE é a pasta do servidor) e o arquivo já está pronto em back-end e os forms estão feitos no VB6.
O sistema tem um controle de usuários, eles devem se logar e o sistema registra o setor em que o usuário trabalha.
quando eles incluem um registro no banco *processos(ele possui um campo autonumérico, PK), o sistema cadastra sem problemas e não existe nenhum erro...(testado e finalizado)... o problema é quando precisamos cadastrar documentos... o bco *documentos possui um campo(autonumérico,PK) e eu preciso que o sistema crie um nº de registro p/ o referido documento e imprima na tela(isso ele já está fazendo)... esse nº de registro é um número ordenado/ano do registro e quando o ano mudar, o contador tem q ser zerado... (feito por código e funcionando), está funcionando perfeitamente, mas somente qd 1 usuário inclui o registro, se várias pessoas registram ao mesmo tempo, ele gera o mesmo nº p/ todos!
ex: se 4 pessoas incluírem um registro ao mesmo tempo, e o último registro for o 12/2005, todos os registros retornam o nº 13/2005, para os respectivos usuários!
vejam o código e me ajudem a solucionar o problema! rs
Private Sub Salvar_Click()
Dim aux1 As String
Dim aux2 As String
Dim aux3 As String
Dim aux4 As String
Dim anoo As String
Dim numm As String
Dim codd As Integer
Dim espaco As String
Dim c As String
espaco = "/"
aux1 = Val(Mid(aux9, 7, 1)) 'recebe o 1º dígito do ano que está em aux9 (no evento Load do form)
aux2 = Val(Mid(aux9, 8, 1)) 'recebe o 2º dígito do ano que está em aux9
aux3 = Val(Mid(aux9, 9, 1)) 'recebe o 3º dígito do ano que está em aux9
aux4 = Val(Mid(aux9, 10, 1)) 'recebe o 4º dígito do ano que está em aux9
anoo = aux1 + AUX2 + aux3 + aux4 'var que recebe o ano atual
If Data1.Recordset.RecordCount <> 0 Then
Data1.Recordset.MoveLast
c = Data1.Recordset("ano") 'recebe o ano do último registro cadastrado
If c = anoo Then 'se ano atual = ano do último registro
codd = Val(Data1.Recordset("cod_doc")) + 1 'add 1 ao codigo do último registro
Else
codd = Str$(1) 'senão zera o contador p/ o ano novo do registro
End If
Else
codd = Str$(1) 'se não existir nenhum registro, ele recebe 1
End If
numm = LTrim(Str$(codd)) + espaco + anoo 'var q recebe o código no formato q vai ser mostrado ao usuário modo (XXXX/200X)
Label11.Caption = numm
Label9.Caption = codd
Label10.Caption = anoo
If Data1.Recordset.RecordCount <> 0 Then 'inclusão do registro
Data1.Refresh
End If
Data1.Recordset.AddNew
Data1.Recordset("ano") = Label10.Caption
Data1.Recordset("cod_format") = Label11.Caption
Data1.Recordset("tipo") = DBCombo1
Data1.Recordset("descricao") = Text4
Data1.Recordset("anexado") = MaskEdBox1
Data1.Recordset("dt_ent") = Label12
Data1.Recordset("hr_ent") = Label8
Data1.Recordset("cod_doc") = Label9.Caption
Data1.Recordset.Update
Form16.Label3.Caption = numm
DBCombo1.Enabled = False
Call Desabilitar(Me)
Cancelar.Enabled = False
Adicionar.Enabled = True
Salvar.Enabled = False
Call Limpar_Campos(Me)
Label14.Caption = ""
DBCombo1.Text = ""
Form16.Show
Unload Me
End Sub
Pergunta
ventrue_rj
fala galera...
bom, como é um tópico, vou explicar meu projeto...
tenho um banco de dados em Access num Servidor que está compartilhado p/ 50 máquinas + ou - numa determinada unidade "K:\TESTE" (onde TESTE é a pasta do servidor) e o arquivo já está pronto em back-end e os forms estão feitos no VB6.
O sistema tem um controle de usuários, eles devem se logar e o sistema registra o setor em que o usuário trabalha.
quando eles incluem um registro no banco *processos(ele possui um campo autonumérico, PK), o sistema cadastra sem problemas e não existe nenhum erro...(testado e finalizado)... o problema é quando precisamos cadastrar documentos... o bco *documentos possui um campo(autonumérico,PK) e eu preciso que o sistema crie um nº de registro p/ o referido documento e imprima na tela(isso ele já está fazendo)... esse nº de registro é um número ordenado/ano do registro e quando o ano mudar, o contador tem q ser zerado... (feito por código e funcionando), está funcionando perfeitamente, mas somente qd 1 usuário inclui o registro, se várias pessoas registram ao mesmo tempo, ele gera o mesmo nº p/ todos!
ex: se 4 pessoas incluírem um registro ao mesmo tempo, e o último registro for o 12/2005, todos os registros retornam o nº 13/2005, para os respectivos usuários!
vejam o código e me ajudem a solucionar o problema! rs
alguma sugestão????
fico no aguardo...
abraços
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.