ERRO AO ATUALIZAR GRID
Pessoal, estou com um probleminha aqui que está me deixando de cabeça quente...
Tem um Form, com um Grid vinnulado a um Data que exibe os serviços realizados, esses dados estão em um bd access, nesse mesmo formulário o usuário lança os serviços realizados.
Tenho uma rotina que insere no banco (não uso o data para fazer o insert), onde abro a conexão com o banco, realizo o insert e fecho a conexão, e após esse insert uso o seguinte para atualizar o grid:
dtServicos.RecordSource = sql
dtServicos.Refresh
Acontece que que o grid não atualiza após esse comando, somente se eu inserir outro registro, ele não atualiza de primeira.
Alguém tem alguma sugestão?
Breno.
Tem um Form, com um Grid vinnulado a um Data que exibe os serviços realizados, esses dados estão em um bd access, nesse mesmo formulário o usuário lança os serviços realizados.
Tenho uma rotina que insere no banco (não uso o data para fazer o insert), onde abro a conexão com o banco, realizo o insert e fecho a conexão, e após esse insert uso o seguinte para atualizar o grid:
dtServicos.RecordSource = sql
dtServicos.Refresh
Acontece que que o grid não atualiza após esse comando, somente se eu inserir outro registro, ele não atualiza de primeira.
Alguém tem alguma sugestão?
Breno.
Talvez um super [Ô]DoEvents[Ô] resolva o teu problema. Pode ser que [Ô]não deu tempo[Ô] pro banco atualizar.
Breno
Pelo que entendi voce insere os dados no banco grava e fecha a conexao com a sua base de dados ??
Como voce esta fazendo o update da base de dados
Posta ai o código para identificarmos melhor o que esta acontecendo e assim te ajudar
Abraços
Pelo que entendi voce insere os dados no banco grava e fecha a conexao com a sua base de dados ??
Como voce esta fazendo o update da base de dados
Posta ai o código para identificarmos melhor o que esta acontecendo e assim te ajudar
Abraços
esta linha ficou meio confusa...
mas vc ja tentou um [ô]dtServicos.Refresh[ô] logo após os inserts?
Citação:Acontece que que o grid não atualiza após esse comando, somente se eu inserir outro registro, ele não atualiza de primeira.
mas vc ja tentou um [ô]dtServicos.Refresh[ô] logo após os inserts?
Citação::
esta linha ficou meio confusa...
Acontece que que o grid não atualiza após esse comando, somente se eu inserir outro registro, ele não atualiza de primeira.
mas vc ja tentou um [ô]dtServicos.Refresh[ô] logo após os inserts?
Citação:
e após esse insert uso o seguinte para atualizar o grid:
dtServicos.RecordSource = sql
dtServicos.Refresh
Segue o código:
[ô]Insere os dados na tabela
sql = [Ô]Insert Into Servicos (Cod_Os,Servico,QTD,Valor,Valor_Total,Cod_Tec) Values [Ô] & _
[Ô]([Ô] & VNOS & [Ô], [ô][Ô] & txtservico.Text & [Ô][ô], [ô][Ô] & txtqtd.Text & [Ô][ô], [ô][Ô] & txtvalor.Text & [Ô][ô], [Ô] & _
[Ô][ô][Ô] & lblvalor_total.Caption & [Ô][ô], [Ô] & txtTecnicos.ItemData(txtTecnicos.ListIndex) & [Ô])[Ô]
Set BD = OpenDatabase(Caminho, False, False)
BD.Execute sql
BD.Close
Set BD = Nothing
[ô]Atualiza o Grid
dtServicos.RecordSource = [Ô]SELECT servicos.cod_os, servicos.servico, servicos.qtd, servicos.valor, servicos.valor_total,tecnicos.nome [Ô] & _
[Ô]FROM servicos INNER JOIN tecnicos ON servicos.cod_tec = tecnicos.cod_tec [Ô] & _
[Ô]Where cod_os = [Ô] & VNOS & [Ô][Ô]
dtServicos.Refresh
após isso o grid nao é atualizado, ele só atualiza se eu inserir um outro registro.
Breno.
[ô]Insere os dados na tabela
sql = [Ô]Insert Into Servicos (Cod_Os,Servico,QTD,Valor,Valor_Total,Cod_Tec) Values [Ô] & _
[Ô]([Ô] & VNOS & [Ô], [ô][Ô] & txtservico.Text & [Ô][ô], [ô][Ô] & txtqtd.Text & [Ô][ô], [ô][Ô] & txtvalor.Text & [Ô][ô], [Ô] & _
[Ô][ô][Ô] & lblvalor_total.Caption & [Ô][ô], [Ô] & txtTecnicos.ItemData(txtTecnicos.ListIndex) & [Ô])[Ô]
Set BD = OpenDatabase(Caminho, False, False)
BD.Execute sql
BD.Close
Set BD = Nothing
[ô]Atualiza o Grid
dtServicos.RecordSource = [Ô]SELECT servicos.cod_os, servicos.servico, servicos.qtd, servicos.valor, servicos.valor_total,tecnicos.nome [Ô] & _
[Ô]FROM servicos INNER JOIN tecnicos ON servicos.cod_tec = tecnicos.cod_tec [Ô] & _
[Ô]Where cod_os = [Ô] & VNOS & [Ô][Ô]
dtServicos.Refresh
após isso o grid nao é atualizado, ele só atualiza se eu inserir um outro registro.
Breno.
me referia a linha abaixo:
Citação:
Set BD = OpenDatabase(Caminho, False, False)
BD.Execute sql
dtServicos.Refresh [ô]aqui
BD.Close
Set BD = Nothing
Não funcionou da maneira que o colega passou.
Em lugar do codigo colocaria o DOEvents? Pq também tentei aqui e não funcionou.
Outro fato curioso, é que testei com o ADO ao invés de usar o Data, ai sim, funcionou normalmente.
Alguma sugestão?
Breno.
Em lugar do codigo colocaria o DOEvents? Pq também tentei aqui e não funcionou.
Outro fato curioso, é que testei com o ADO ao invés de usar o Data, ai sim, funcionou normalmente.
Alguma sugestão?
Breno.
Voce vinvulou o GRID no data tambem
Se voce vincular provavelmente funciona depois do seu data.refresh
Se voce vincular provavelmente funciona depois do seu data.refresh
Mais ninguém????
Isso aconteceu comigo uma vez, mas foi usando ADO.
Tive que dar o comando [Ô]refresh[Ô] duas vezes, um logo depois do outro.
Tenta ai para ver .......
Tive que dar o comando [Ô]refresh[Ô] duas vezes, um logo depois do outro.
Tenta ai para ver .......
Tópico encerrado , respostas não são mais permitidas