MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2

    avatar
    teremiro
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 30/12/2019

    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2 Empty [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2

    Mensagem  teremiro em Qui 09 Jan 2020, 10:54 pm

    Prezados,

    Em um botão com funcionalidade de excluir condicionalmente registros com determinado código, tenho o trecho de programa VBA abaixo:

    Dim Resposta As Variant

    'Solicita o Código do Item que se deseja excluir
    Resposta = InputBox("Informe o Código do Item que deseja excluir: ", "Código do Item", , vbOKCancel)
    If Resposta = vbCancel Or Resposta = "" Then
    MsgBox ("Nenhum Item será excluído")
    Else
    Resposta = MsgBox("Será excluído o Item de Código Nº: " & Resposta & " . Confirma Código?", vbOKCancel)
    If Resposta = vbCancel Or Resposta = "" Then
    MsgBox ("Exclusão de Item cancelada")
    Else
    'Exclui o Item com o Código informado e confirmado
    ........

    Pois bem, para qualquer número de código - que seja diferente de 2 - inserido como resposta na InputBox, o programa entende que foi inserido um código e vai para o ELSE do primeiro IF, como deve ser.

    Porém se o número do Código for 2, o Access está tratando da mesma forma como se a resposta fosse 'vbCancel' ou empty, pois aparece a MsgBox("Nenhum Item será excluído").

    Será que 2 é sinônimo de vbCancel para o VBA? Nesse caso como sair do impasse?

    Obrigado.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2441
    Registrado : 22/11/2016

    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2 Empty Re: [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2

    Mensagem  DamascenoJr. em Qui 09 Jan 2020, 11:56 pm

    teremiro escreveu:Será que 2 é sinônimo de vbCancel para o VBA?

    Veja na imagem abaixo
    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2 Vbcanc10

    O que isso significa? Quer dizer que o Access possui constantes internas para facilitar a vida do programador. Igual ao uma URL: você não precisa saber o IP de um servidor, basta informar o endereço do site que o DNS faz a conversão. O mesmo acontece nesse caso.

    Na tela do VBA pressione F2 e explore constantes, funções e métodos. É possível aí descobrir que uns são para leitura e escrita e outras coisas são somente leitura... etc. A ajuda do VBA é uma grande fonte de estudo.

    teremiro escreveu:Nesse caso como sair do impasse?

    Código:
    Dim Resposta As Variant

    'Solicita o Código do Item que se deseja excluir
    Resposta = InputBox("Informe o Código do Item que deseja excluir: ", "Código do Item")
    If strPtr(Resposta) = 0 Or Resposta = "" Then
    MsgBox ("Nenhum Item será excluído")
    Else
    Resposta = MsgBox("Será excluído o Item de Código Nº: " & Resposta & " . Confirma Código?", vbOKCancel)
    If Resposta = vbCancel Or Resposta = "" Then
    MsgBox ("Exclusão de Item cancelada")
    Else
    'Exclui o Item com o Código informado e confirmado
    ...

    Lembro também que InputBox é diferente de MsgBox, isto é, os parâmetros para esta função são diferentes.
    Código:
    inputbox(Mensagem,Título,ValorPadrão,PosiçãoEixoX,PosiçãoEixoY)
    msgbox(Mensagem,Botões,Título)

    Assim sendo, o parâmetro vbCancel está deslocado no seu caso abaixo (informado para PosiçãoEixoX)
    ...InputBox("Informe o Código do Item que deseja excluir: ", "Código do Item", , vbOKCancel)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    teremiro
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 30/12/2019

    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2 Empty Re: [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2

    Mensagem  teremiro em Sex 10 Jan 2020, 1:07 am

    Prezado DamascenoJr,

    Obrigado por esclarecer e indicar o caminho para a resolução deste 'Tópico'.

    Antes de fechá-lo pediria apenas que me informasse sobre a função strPtr utilizada no trecho VBA abaixo (não consegui ajuda online com F1):

    If strPtr(Resposta) = 0 Or Resposta = "" Then

    ....

    Grato, uma vez mais.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2441
    Registrado : 22/11/2016

    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2 Empty Re: [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2

    Mensagem  DamascenoJr. em Sex 10 Jan 2020, 1:40 am



    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    teremiro
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 30/12/2019

    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2 Empty Re: Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2

    Mensagem  teremiro em Sex 10 Jan 2020, 2:10 am

    Prezado Damasceno Jr,

    Muito esclarecedor. Obrigado uma vez mais. Considero o Tópico Resolvido.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2441
    Registrado : 22/11/2016

    [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2 Empty Re: [Resolvido]Comportamento estranho em teste de Resposta a uma InputBox quando Resposta = 2

    Mensagem  DamascenoJr. em Sab 11 Jan 2020, 1:57 am

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: Qua 25 Nov 2020, 1:36 am