Melque,
Você precisa definir uma forma melhor de limpar os controles logo após gravar uma Nota. Veja:
Na sua rotina btnGravar_Click() a última linha de comando chama a rotina LimpaControles.
A rotina LimpaControles, por sua vez, sai modificando os valores dos diversos objetos existentes em seu formulário. Issi implica dizer que quando ela altera o valor de um objeto desses, faz disparar a rotina Change desse objeto.
Assim, quando você altera (na rotinaLimpaControles) o valor do objeto CboOPPedido, é disparada a rotina Change desse objeto que faz a leitura de um objeto de BD. Nesse momento, o objeto de BD não existe ou não foi aberto. Assim, o código a que você se referiu aqui nesse último post, fica em loop infinito, chegando a travar a máquina, porque Do While Not banco.EOF (enquanto não chegar o fim do arquivo) sempre vai ser falso.
Desse modo, você precisará traçar estratégias de como tratar isso. Dentre as opções disponíveis, você definir uma variável booleana para verificar quando o controle já foi limpo, nãolimpar os controles ou esse controle, mudar o código desse evento no objeto para um outro evento como o evento Exit, etc.
Precisa pensar um pouquinho mais para resolver isso. Coloque um break point na linha 6 da rotina btnGravar_Click() (If Not Me.LstvDP.ListItems.Count > 0 Then) e depois continue a execução com F8 (depuração passo-a-passo) que você vai perceber o que estou lhe dizendo.
Postado : 01/11/2012 10:48 am