MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Dúvida em DLookUp

    Compartilhe

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1336
    Registrado : 17/03/2011

    Dúvida em DLookUp

    Mensagem  Cláudio Machado em Ter 10 Jan 2017, 23:30

    Boa noite galera.
    Tô apanhando com este código abaixo:

    If DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF] = '" & Me!Número_NF & "' And Txt_Empresa = '" & Me!Txt_Empresa & "'") Then

    O que ocorre, o campo Número_NF pode ser numérico ou texto, se eu mudo as aspas só funciona com um ou outro como fazer para usar os dois tipos no mesmo campo?

    Obrigado antecipadamente.


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    hiperjohn
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 06/06/2013

    Re: Dúvida em DLookUp

    Mensagem  hiperjohn em Ter 10 Jan 2017, 23:39

    Use critério do tipo texto.
    Para não ocorrer erro quando o campo for numérico, use a função CStr no critério. Essa função converte uma variável em texto, quando for possível:

    If DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF] = '" & CStr(Me!Número_NF) & "' And Txt_Empresa = '" & Me!Txt_Empresa & "'") Then

    Abraçõ!

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1336
    Registrado : 17/03/2011

    Re: Dúvida em DLookUp

    Mensagem  Cláudio Machado em Qua 11 Jan 2017, 00:27

    Obrigado pela dica amigo.
    Vou testar amanhã e retorno.
    Abraço


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1336
    Registrado : 17/03/2011

    Re: Dúvida em DLookUp

    Mensagem  Cláudio Machado em Qua 11 Jan 2017, 11:21

    Bom dia.
    Não deu certo.
    Se eu digitar texto ocorre erro.


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    hiperjohn
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 06/06/2013

    Re: Dúvida em DLookUp

    Mensagem  hiperjohn em Qua 11 Jan 2017, 14:56

    Boa tarde.
    Eu suponho que, na sua tabela, o campo [Número_NF] esteja como texto.
    Não entendi o erro. A função CStr converte uma variável em string, mesmo que a variável já seja uma string  Very Happy

    Em todo caso, vc pode colocar um If antes do If.
    Ficaria assim:
       Dim retorno as Variant
       If IsNumeric(Me.Número_NF) Then
           retorno= DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF] = " & Me!Número_NF & " And Txt_Empresa = '" & Me!Txt_Empresa & "'") Then
       Else
           retorno= DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF] = '" & Me!Número_NF & "' And Txt_Empresa = '" & Me!Txt_Empresa & "'") Then
       End If

       If Not IsNull(retorno) Then
           *** o seu código ***
       End If

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1336
    Registrado : 17/03/2011

    Re: Dúvida em DLookUp

    Mensagem  Cláudio Machado em Qui 12 Jan 2017, 19:37

    Boa tarde.
    Sim o campo na tabela é texto, mas nada feito não funciona...
    Tá brabo, nunca ví nada igual.
    Crying or Very sad


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3376
    Registrado : 20/04/2011

    Re: Dúvida em DLookUp

    Mensagem  Silvio em Qui 12 Jan 2017, 19:43

    Apenas um pitaco...
    Coloque as entidades envolvidas para que fique mais fácil te ajudar.
    Disponibilize um exemplo.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1336
    Registrado : 17/03/2011

    Re: Dúvida em DLookUp

    Mensagem  Cláudio Machado em Qua 18 Jan 2017, 12:30

    Bom dia.
    Segue exemplo:
    Anexos
    FINANCEIRO_MAXIMO.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (99 Kb) Baixado 6 vez(es)


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3376
    Registrado : 20/04/2011

    Re: Dúvida em DLookUp

    Mensagem  Silvio em Qua 18 Jan 2017, 16:23

    Boa tarde...

    Experimente algo assim...
    If DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF]" = Me.Número_NF And Empresa = Me.Empresa And Vencimento = Me.Vencimento) Then
    blá..blá..

    endif


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1336
    Registrado : 17/03/2011

    Re: Dúvida em DLookUp

    Mensagem  Cláudio Machado em Qua 18 Jan 2017, 21:51

    Boa noite Silvio.
    Obrigado por sua ajuda mas...
    Na verdade não acontece nada.
    Não dá erro nenhum e tampouco encontra o registro.
    Nada feito amigo.

    se eu usar assim

    If DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF] = '" & Me!Número_NF & "' and Txt_Empresa = '" & Me!Txt_Empresa & "' And Vencimento = #" & Format(Vencimento, "dd/mm/yyyy") & "#") Then

    e digitar texto no campo Nº do Doc ele acusa erro:

    E se eu usar assim:

    If DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF]" = Me.Número_NF And Empresa = Me.Empresa And Vencimento = Me.Vencimento) Then

    ele grava normal.

    Tá brabo demais...


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2793
    Registrado : 29/06/2012

    Re: Dúvida em DLookUp

    Mensagem  Noobezinho em Qua 18 Jan 2017, 23:27

    Claudio

    Copie e cole o código abaixo no lugar do teu e experimente:


    Código:

    If DLookup("[Número_NF]", "FINANC_PAGAMENTOS", "[Número_NF] = '" & Me!Número_NF & "' and Txt_Empresa = '" & Me!Txt_Empresa & "' And Vencimento = #" & Format(Vencimento, "dd/mm/yyyy") & "#") Then
           MsgBox "Você já Registrou este Doc. Nº " & Número_NF & " no Sistema." & vbCrLf & "Por favor verifique." & vbCrLf & "Não será possível efetuar a Gravação do Registro.", vbCritical, "Atenção"
        ElseIf IsNull(Me![Txt_Empresa]) Then
            MsgBox "Por favor escolha uma Empresa.", vbInformation, "Crítica de Gravação"
            Me.Empresa.SetFocus
        ElseIf IsNull(Me![TipoPagto]) Then
            MsgBox "Por favor escolha Tipo de Pagamento.", vbInformation, "Crítica de Gravação"
        ElseIf IsNull(Me![Vencimento]) Then
            MsgBox "Digite a Data de Vencimento.", vbInformation, "Crítica de Gravação"
            Me.Vencimento.SetFocus
        ElseIf IsNull(Me![Txt_Tipo_Despesa]) Then
            MsgBox "Por favor escolha um Tipo de Despesa.", vbInformation, "Crítica de Gravação"
            Me.Tipo_Despesa.SetFocus
        ElseIf IsNull(Me![Fornecedor]) Then
            MsgBox "Digite o Nome do Beneficiário.", vbInformation, "Crítica de Gravação"
            Me.Fornecedor.SetFocus
        ElseIf IsNull(Me![Número_Cheque]) Then
            MsgBox "Digite o Número do Cheque.", vbInformation, "Crítica de Gravação"
            Me.Número_Cheque.SetFocus
        ElseIf IsNull(Me![TxtTipoPagto_Conta]) Then
            MsgBox "Por favor Digite o número da Remessa Bancária ou Conta.", vbInformation, "Crítica de Gravação"
            Me.TxtTipoPagto_Conta.SetFocus
        ElseIf IsNull(Me![Número_NF]) Or Me.Número_NF = 0 Then
            MsgBox "Digite o Número do Documento. Não pode ser Zero.", vbInformation, "Crítica de Gravação"
            Me.Número_NF.SetFocus
        ElseIf Valor_NF <= 0 Then
            MsgBox "Digite um valor positivo para o Lançamento.", vbInformation, "Crítica de Gravação"
            Me.Valor_NF.SetFocus
        Else
                Nome = Me![Fornecedor]
                imprime = MsgBox("Confirma o Registro para pagamento do Doc. Nº " & Número_NF & ", no valor de " & Format(ValorLiquido, "currency") & " para " & Fornecedor, vbQuestion + vbYesNo, "Confirmar Registro")
                Select Case imprime
                    Case vbYes
                    
                         If Me.INSS > 0 Or ISS > 0 Or IRPJ > 0 Or PIS > 0 Or Cofins > 0 Or CSSL > 0 Then
                            Me.Imposto = True
                         Else
                            Me.Imposto = False
                         End If
                
                         Me.Lançado_Por_Gravado = True
                         Me.Lançado_Por_Data = Date
                         Me.Lançado_Por = Txt_Usuário
                         Me.Txt_Categoria_NF = "AVULSO"
                         Me.Total_Impostos = Me.SomaImpostos
                         Me.ValorPago = Me.ValorLiquido
                    
                         Me.Bot_Grava_Pagamento.enabled = False
                         Me.Bot_Fechar.SetFocus
                                  
                     If MsgBox("Você deseja Adicionar um Novo Registro ?", vbYesNo + vbQuestion, "Novo Pagamento") = vbYes Then

                        Me.Bot_Grava_Pagamento.enabled = True
                        DoCmd.Close acForm, "FI-CONFIRMA_PAGAMENTO_AVULSO"
                        DoCmd.OpenForm "FI-CONFIRMA_PAGAMENTO_AVULSO"
                     Else
                        DoCmd.Close acForm, "FI-CONFIRMA_PAGAMENTO_AVULSO"
                     End If
        
                Case vbNo
                        DoCmd.CancelEvent
                        MsgBox "Registro Não Foi Efetuado!", vbInformation, "Informando..."
                End Select
        End If


    Entenda o seguinte:
    Se o campo for definido como texto, sempre será texto, por exemplo:

    Retorno:

    "Claudio"

    "12345"

    Veja que mesmo sendo algarismos, será campo texto e não numérico.

    Para comprovar isso, utilize

    ? isnumeric(12345)  

    =true/verdadeiro

    ? isnumeric("12345")

    = False






    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1336
    Registrado : 17/03/2011

    Re: Dúvida em DLookUp

    Mensagem  Cláudio Machado em Qui 19 Jan 2017, 00:48

    Vou testar amanhã e te passo. Obrigado


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

      Data/hora atual: Qui 23 Fev 2017, 09:31