Bom pessoal uso Access 2016 64Bits e estou com um pequeno problema, tentarei explicar...
Possuo um Form!Ambiente que contem uma ComboBox Form!Ambiente!LstServidores, este por sua vez abre sempre que o usuário loga no sistema para seleção do ambiente de trabalho, pois o sistema gerencia informações de mais de uma empresa onde cada empresa tem seu próprio BD em SQL Server, e o sistema precisa saber em qual banco ele vai trabalhar, essa conexão é feita via IP pois todas as empresas são inter ligadas pela nossa intranet(VPN), Qualquer select é feito através desde Form, que após seleção do ambiente ele fica oculto, e qualquer e qualquer conexão ao DB via select é feito através da Linha da ComboBox selecionada (Forms!Ambiente.Form!LstServidores.Column(1)), por motivos internos de segurança os IP's dos servidores não são Estáticos, e alteram a cada dia, havendo a necessidade de ir no cadastro de servidores e alterar seu IP de acordo com o IP que o servidor adquiriu no dia, até ai nenhum problema, existe um evento ao Fechar no Form onde se cadastra ou se altera os IP's dos servidores, que vai no form oculto e faz uma atualização dos dados e um re-select para que a coluna do IP possa se atualizar para o novo IP após o mesmo ser alterado sem que o usuário tenha que fazer isso manualmente, segue o evento...
Ao Chamar msgbox Forms!Ambiente.Form!LstServidores.Column(1), bingo... aparece o novo IP que alterei para aquela empresa!
Vamos ao problema....
Digamos que o funcionário tenha digitado o IP errado da empresa que está selecionada na ComboBox e precisa abrir o cadastro para alterar o IP novamente. Até ai tudo bem...
Só que existe um porém, a segunda vês que a ComboBox foi selecionada foi via código, e não é igual a primeira que foi selecionado pelo usuário com o mouse, a segunda vês por exemplo não dispararia o evento AfterUpdate caso houvesse, pois é como se a seleção atualiza-se os valores da linha selecionada mais não atualiza-se a seleção do campo, deu pra entender? É como se eu ainda estivesse dentro do campo esperando o LostFocus para atualizar nas vias de fato.
A questão é que em quanto eu não for lá no form e fizer uma seleção com o mouse na forma convencional, não consigo mais atualizar o campo via código pois apresenta um erro!
Digamos que o usuário alterou o IP pela segunda vês com o sistema ainda aberto sem ter sido fechado, Já houve uma seleção via código da ComboBox para alterar a coluna do IP, quando ele chama o evento ao Fechar do form de cadastro dos IP's dos servidores acontece o segunte erro no comando (Forms!Ambiente.Form!LstServidores.Requery) (Erro em tempo de execução 2118: Você deve salvar o campo atual antes de executar uma ação RepetirConsulta.)
Preciso de um comando em VBA que atualize a ComboBox como se eu tivesse ido lá e selecionado um item com o mouse, que no caso até dispararia o evento AfterUpdate caso houvesse que não acontece para que ao chamar o evento ao Fechar pela segunda vês não Ocasionasse esse erro!
Comando tipo: Forms!Ambiente.Form!LstServidores.Save
ou Forms!Ambiente.Form!LstServidores.Update
Lembrando que não estou trabalhando dentro do form estou em outro por isso preciso usar o caminho completo para referenciar a ComboBox.
Se alguém puder ajudar agradeço!
Resumo do problema:
Toda vês que executo o comando Forms!Ambiente.Form!LstServidores.Selected("Índice") = True para selecionar um item na Combobox, não consigo mais executar o comando Forms!Ambiente.Form!LstServidores.Requery.
Erro apresentado: Erro em tempo de execução 2118: Você deve salvar o campo atual antes de executar uma ação RepetirConsulta.
Possuo um Form!Ambiente que contem uma ComboBox Form!Ambiente!LstServidores, este por sua vez abre sempre que o usuário loga no sistema para seleção do ambiente de trabalho, pois o sistema gerencia informações de mais de uma empresa onde cada empresa tem seu próprio BD em SQL Server, e o sistema precisa saber em qual banco ele vai trabalhar, essa conexão é feita via IP pois todas as empresas são inter ligadas pela nossa intranet(VPN), Qualquer select é feito através desde Form, que após seleção do ambiente ele fica oculto, e qualquer e qualquer conexão ao DB via select é feito através da Linha da ComboBox selecionada (Forms!Ambiente.Form!LstServidores.Column(1)), por motivos internos de segurança os IP's dos servidores não são Estáticos, e alteram a cada dia, havendo a necessidade de ir no cadastro de servidores e alterar seu IP de acordo com o IP que o servidor adquiriu no dia, até ai nenhum problema, existe um evento ao Fechar no Form onde se cadastra ou se altera os IP's dos servidores, que vai no form oculto e faz uma atualização dos dados e um re-select para que a coluna do IP possa se atualizar para o novo IP após o mesmo ser alterado sem que o usuário tenha que fazer isso manualmente, segue o evento...
- Código:
Private Sub Form_Close()
If IsLoaded("Ambiente") Then
'Refaz a consulta da ComboBox a tabela
Forms!Ambiente.Form!LstServidores.Requery
'Re-seleciona a mesma opção que já estava selecionada na ComboBox usando o indice da Seleção
Forms!Ambiente.Form!LstServidores.Selected(Forms!Ambiente.Form!LstServidores.ListIndex) = True
End If
End Sub
Ao Chamar msgbox Forms!Ambiente.Form!LstServidores.Column(1), bingo... aparece o novo IP que alterei para aquela empresa!
Vamos ao problema....
Digamos que o funcionário tenha digitado o IP errado da empresa que está selecionada na ComboBox e precisa abrir o cadastro para alterar o IP novamente. Até ai tudo bem...
Só que existe um porém, a segunda vês que a ComboBox foi selecionada foi via código, e não é igual a primeira que foi selecionado pelo usuário com o mouse, a segunda vês por exemplo não dispararia o evento AfterUpdate caso houvesse, pois é como se a seleção atualiza-se os valores da linha selecionada mais não atualiza-se a seleção do campo, deu pra entender? É como se eu ainda estivesse dentro do campo esperando o LostFocus para atualizar nas vias de fato.
A questão é que em quanto eu não for lá no form e fizer uma seleção com o mouse na forma convencional, não consigo mais atualizar o campo via código pois apresenta um erro!
Digamos que o usuário alterou o IP pela segunda vês com o sistema ainda aberto sem ter sido fechado, Já houve uma seleção via código da ComboBox para alterar a coluna do IP, quando ele chama o evento ao Fechar do form de cadastro dos IP's dos servidores acontece o segunte erro no comando (Forms!Ambiente.Form!LstServidores.Requery) (Erro em tempo de execução 2118: Você deve salvar o campo atual antes de executar uma ação RepetirConsulta.)
Preciso de um comando em VBA que atualize a ComboBox como se eu tivesse ido lá e selecionado um item com o mouse, que no caso até dispararia o evento AfterUpdate caso houvesse que não acontece para que ao chamar o evento ao Fechar pela segunda vês não Ocasionasse esse erro!
Comando tipo: Forms!Ambiente.Form!LstServidores.Save
ou Forms!Ambiente.Form!LstServidores.Update
Lembrando que não estou trabalhando dentro do form estou em outro por isso preciso usar o caminho completo para referenciar a ComboBox.
Se alguém puder ajudar agradeço!
Resumo do problema:
Toda vês que executo o comando Forms!Ambiente.Form!LstServidores.Selected("Índice") = True para selecionar um item na Combobox, não consigo mais executar o comando Forms!Ambiente.Form!LstServidores.Requery.
Erro apresentado: Erro em tempo de execução 2118: Você deve salvar o campo atual antes de executar uma ação RepetirConsulta.