ERRO AO ATUALIZAR GRID

BRENOACP 29/01/2010 13:31:56
#333164
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.
ASHKATCHUP 29/01/2010 13:39:58
#333166
Talvez um super [Ô]DoEvents[Ô] resolva o teu problema. Pode ser que [Ô]não deu tempo[Ô] pro banco atualizar.
CLEITONSOUZA 29/01/2010 13:42:22
#333168
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
ONBASS 29/01/2010 13:43:17
#333170
esta linha ficou meio confusa...
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?
ASHKATCHUP 29/01/2010 13:45:00
#333171
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

BRENOACP 29/01/2010 13:49:03
#333174
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.
ONBASS 29/01/2010 13:56:55
#333175
me referia a linha abaixo:

Citação:


Set BD = OpenDatabase(Caminho, False, False)
BD.Execute sql
dtServicos.Refresh [ô]aqui
BD.Close
Set BD = Nothing

BRENOACP 29/01/2010 14:10:26
#333177
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.
CLEITONSOUZA 29/01/2010 15:41:46
#333184
Voce vinvulou o GRID no data tambem
Se voce vincular provavelmente funciona depois do seu data.refresh
BRENOACP 30/01/2010 08:16:51
#333219
Mais ninguém????
JOSIMARCSILVA 31/01/2010 10:58:12
#333267
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 .......
Tópico encerrado , respostas não são mais permitidas