MaximoAccess

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

Obrigado

Administração do MaximoAccess

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, 19:54

    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 : 1351
    Registrado : 21/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, 20:56

    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 Qui 09 Jan 2020, 22:07

    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 : 1351
    Registrado : 21/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, 22:40



    .................................................................................
    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 Qui 09 Jan 2020, 23:10

    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 : 1351
    Registrado : 21/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, 22:57

    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.

    Conteúdo patrocinado

    [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  Conteúdo patrocinado


      Data/hora atual: Qui 27 Fev 2020, 16:16