Obtendo o valor da caixa de texto no manipulador de eventos de mudança

Eu escrevi um formulário que realiza consultas de forma assíncronacomo o texto é digitado em uma caixa de texto, no entanto, eu um pouco arbitrariamente parece receber o seguinte erro: "Você não pode fazer referência a uma propriedade ou método para um controle, a menos que o controle tenha foco."

O código imediatamente relevante é:

Dim UpdateRequested As Boolean
Dim qryText As String

.
.
.

Private Sub txtBox_Change()
    qryText = txtBox.Text
    UpdateRequested = true
End Sub

Algum lugar nas elipses é o código que manipula dinamicamente o carregamento de um conjunto de registros ADODB, preenchendo uma tabela local e atualizando um subformulário. No entanto, mesmo quando desativo esse código, o problema persiste: Às vezes, recebo o erro. Às vezes eu não faço.

Isso parece ser persistente ao fechar o banco de dados e reabri-lo. Toda vez que ele começa a funcionar novamente, é porque eu tenho andado a brincar com código no depurador, mas não tenho certeza do que exatamente está fazendo com que ele magicamente "simplesmente funcione" ou o que está fazendo com que ele não funcione.

Atualizar

Apenas para tornar as coisas mais intrigantes, adicionei alguns manipuladores de eventos simples:

Private Sub txtBox_GotFocus()
    MsgBox "Got focus"
End Sub

Private Sub txtBox_LostFocus()
    MsgBox "Lost focus"
End Sub

Eu corro o formulário. Eu clico na caixa de teste. Eu recebo a mensagem "Got focus". Assim que eu digito, vejo o erro como descrito acima. Se eu reabrir o formulário, posso clicar entre a caixa de texto em questão (que não está vinculada) e uma caixa de texto vinculada no subformulário e ver as mensagens "Got focus" e "lost focus" como seria de se esperar. Além disso, mostrar uma caixa de mensagem com o valor atual de "Screen.ActiveControl.Name" mostra o nome esperado logo antes da propriedade Text ser acessada.

questionAnswers(6)

yourAnswerToTheQuestion