Dei uma olhada na internet e vi que o Visual Basic tem a opção de utilizar o comando "Sleep", isto não seria uma solução para o problema de ter que clicar o botão duas vezes? O que eu imagino seria: primeiro o comando para atualizar a consulta de compras, colocar o comando sleep e depois continuar com o comando de atualizar tudo.
Eu tinha visto a opção de colocar o comando Sleep aqui: https://stackoverflow.com/questions/95112/how-do-i-delay-code-execution-in-visual-basic-vb6
Resolvi vir perguntar aqui por que não entendi as soluções propostas em sua totalidade. Também temos a opção de no propio código fazer essa atualização duas vezes, assim podemos eliminar a possibilidade de erro humano quando o botão for utilizado.
As minhas soluções são validas?