Como reconhecer o Cancel de uma inputbox ?
Se o usuário pressionar Enter com a inputbox vazia ela devolve "" e o mesmo acontece quando o usuário pressiona cancel, logicamente sem a existência de valores Padrão.
Na realidade os valores não são iguals.
Quando o usuário pressiona Enter é criada na memória, uma string vazia e a variável que recebe o resultado aponta para ela.
Se o usuário pressionar cancel isso não acontece.
Portanto quando usamos a função strPtr na variável que guarda o resultado da InputBox ele devolve 0 caso o usuário tenha pressionado o Cancel.
Assim sendo, com o código a seguir pode-se identificar o Cancel efetuado pelo usuário:
Com poucas linhas de código, usando a função interna strPtr, podemos (por exemplo) utilizar numa busca em qualquer parte no seu formulário;
Se o usuário pressionar Enter com a inputbox vazia ela devolve "" e o mesmo acontece quando o usuário pressiona cancel, logicamente sem a existência de valores Padrão.
Na realidade os valores não são iguals.
Quando o usuário pressiona Enter é criada na memória, uma string vazia e a variável que recebe o resultado aponta para ela.
Se o usuário pressionar cancel isso não acontece.
Portanto quando usamos a função strPtr na variável que guarda o resultado da InputBox ele devolve 0 caso o usuário tenha pressionado o Cancel.
Assim sendo, com o código a seguir pode-se identificar o Cancel efetuado pelo usuário:
Private Sub SeuBotão_Click()
'By JPaulo ® Maximo Access
Dim strX
strX = InputBox("Bom dia")
If StrPtr(strX) > 0 Then MsgBox "Você pressionou Ok.": Exit Sub
If StrPtr(strX) = 0 Then MsgBox "Você pressionou Cancel.": Exit Sub
End Sub
Com poucas linhas de código, usando a função interna strPtr, podemos (por exemplo) utilizar numa busca em qualquer parte no seu formulário;
Private Sub SeuBotão_Click()
'By JPaulo ® Maximo Access
Dim strX
strX = InputBox("Digite o que pretende filtrar", "Filtrar")
'Se pressionar o Cancel, a instrução morre aqui
If StrPtr(strX) = 0 Then Exit Sub
'Se pressionar o Ok sem digitar valores morre aqui
If strX = "" Then Exit Sub
'se digitar algo e pressionar Ok, irá fazer uma busca em qualquer parte do seu formulário
DoCmd.FindRecord strX, acAnywhere, False, , True, acAll, True
End Sub