Postada em 13/11/2007 14:30 hs
Em um topico anterior tive uma duvida sobre numeração automatica que foi resolvido com ajuda dos colegas do forum. Essa solução foi parcial diante da complexidade dos parametros de busca, como segue:
em uma tabela tenho dois campos:
INICIAL FINAL
onde gravo INICIAL = 1000 FINAL = 1010
Quando inicio um novo cadastro, se não houver nenhum numero então parto para a função:
Public Function NOVO_COD_DOCUMENTO() As Long Dim rsParam As New Recordset Dim rsParam2 As New Recordset Dim Sql As String Sql = "SELECT * FROM TB_Documento " Set rsParam2 = Banco1.Execute(Sql) Do Until rsParam2.EOF rsParam2.MoveNext Loop NovoCodigo = rsParam2.RecordCount rsParam2.Close
If NovoCodigo = 0 Then ' se não houver nenhum registro vc vai usar o 1o numero Sql = "SELECT * FROM TB_PARAM " Set rsParam = Banco1.Execute(Sql)
'PEGA OS VALORES INICIAIS E FINAIS P_N_INICIAL = rsParam("N_Inicial") P_N_FINAL = rsParam("N_Final") NovoCodigo = 0 If P_N_INICIAL > 0 Then NovoCodigo = CLng(P_N_INICIAL) End If rsParam.Close
Else
Sql = "SELECT Max(Doc) As Codigo FROM TB_Documento" Set rsParam2 = Banco1.Execute(Sql) With rsParam2 If IsNull(!Codigo) Then NovoCodigo = CLng(P_N_INICIAL) Else NovoCodigo = !Codigo End If End With NovoCodigo = CLng(NovoCodigo) + 1 End If End Function
Até ai funciona! O problema é que tenho outra tabela onde gravo o numero usado que é gerado somente se esse campo estiver vazio, atraves da função, caso contrario adiciona + 1 no ultimo. Preciso verificar se a numeração chegou ao final, ou seja, 1010 e avisar para lançar um novo INICIAL e FINAL, mas para isso preciso comparar as duas tabelas. Bom não sei se fui claro! Alguma sugestão?
|