Tenho um sistema de contas a pagar, dentro desse sistema tenho uma tabela de Notas Fiscais, e outra de lançamento, que seria o resumo do movimento (tblNotasFiscais+tblFaturas+tblEntregas).
Quando é registrado um lançamento, ele pede um número da nota fiscal, e se a nota fiscal não estiver registrada ele Abre uma box avisando e perguntando se o usuário deseja resgistrar ou não a nota, se sim, ele abre o formulário de notas fiscais, se não, ele desfaz a operação, ate aí tudo bem, aí está o código que eu e um pessoal de outro forum desenvolvemos:
Isso vai em antes de atualizar:
Private Sub Nota_fiscal_BeforeUpdate(Cancel As Integer)
If IsNull(DLookup("[CodID]", "[tblNotaFiscal]", "NotaFiscal = '" & Forms!frmLancamento!NotaFiscal & "'"))Then
resposta = MsgBox("Nota fiscal não cadastrada no sistema! deseja cadastra-la agora?", vbYesNo, "Nota Fiscal não cadastrada!")
If resposta = 6 Then
DoCmd.OpenForm "frmNotaFiscal"
DoCmd.CancelEvent
End If
If resposta = 7 Then
Me.Undo
End If
End If
End Sub
Mas, tem um porém, se existir duas notas com o mesmo número, com fornecedores diferentes, e uma delas não está cadastrada em "notas fiscais", ela pode ser registrada em lançamento sem nenhum problema.
Já me disseram que eu poderia validar o numero da nota pelo numero do registro, mais para isso precisaria que o usuário decorasse ou anotasse o número de cada registro de nota fiscal, e isso dificultaria muito o serviço, também tentamos isso:
Private Sub Nota_fiscal_BeforeUpdate(Cancel As Integer)
If IsNull(DLookup("[CodID]", "[tblNotaFiscal]", "NotaFiscal = '" & Forms!frmLancamento!NotaFiscal & "'")) And IsNull(DLookup("[NFFornecedor]", "[tblNotaFiscal]", "LancFornecedor = '" & Forms!frmLancamento!NotaFiscal & "'")) Then
resposta = MsgBox("Nota fiscal não cadastrada no sistema! deseja cadastra-la agora?", vbYesNo, "Nota Fiscal não cadastrada!")
Pergunta
frozenhell
Tenho um sistema de contas a pagar, dentro desse sistema tenho uma tabela de Notas Fiscais, e outra de lançamento, que seria o resumo do movimento (tblNotasFiscais+tblFaturas+tblEntregas).
Quando é registrado um lançamento, ele pede um número da nota fiscal, e se a nota fiscal não estiver registrada ele Abre uma box avisando e perguntando se o usuário deseja resgistrar ou não a nota, se sim, ele abre o formulário de notas fiscais, se não, ele desfaz a operação, ate aí tudo bem, aí está o código que eu e um pessoal de outro forum desenvolvemos:
Isso vai em antes de atualizar:
Private Sub Nota_fiscal_BeforeUpdate(Cancel As Integer)
If IsNull(DLookup("[CodID]", "[tblNotaFiscal]", "NotaFiscal = '" & Forms!frmLancamento!NotaFiscal & "'"))Then
resposta = MsgBox("Nota fiscal não cadastrada no sistema! deseja cadastra-la agora?", vbYesNo, "Nota Fiscal não cadastrada!")
If resposta = 6 Then
DoCmd.OpenForm "frmNotaFiscal"
DoCmd.CancelEvent
End If
If resposta = 7 Then
Me.Undo
End If
End If
End Sub
Mas, tem um porém, se existir duas notas com o mesmo número, com fornecedores diferentes, e uma delas não está cadastrada em "notas fiscais", ela pode ser registrada em lançamento sem nenhum problema.
Já me disseram que eu poderia validar o numero da nota pelo numero do registro, mais para isso precisaria que o usuário decorasse ou anotasse o número de cada registro de nota fiscal, e isso dificultaria muito o serviço, também tentamos isso:
Private Sub Nota_fiscal_BeforeUpdate(Cancel As Integer)
If IsNull(DLookup("[CodID]", "[tblNotaFiscal]", "NotaFiscal = '" & Forms!frmLancamento!NotaFiscal & "'")) And IsNull(DLookup("[NFFornecedor]", "[tblNotaFiscal]", "LancFornecedor = '" & Forms!frmLancamento!NotaFiscal & "'")) Then
resposta = MsgBox("Nota fiscal não cadastrada no sistema! deseja cadastra-la agora?", vbYesNo, "Nota Fiscal não cadastrada!")
If resposta = 6 Then
DoCmd.OpenForm "frmNotaFiscal"
DoCmd.CancelEvent
End If
If resposta = 7 Then
Me.Undo
End If
End If
End Sub
E também não deu certo.
Ajudem por favor, Obrigado.
Editado por frozenhellLink para o comentário
Compartilhar em outros sites
3 respostass 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.