PEGAR DADOS NO GRID E SALVAR NO BANCO
Olá pessoal,
Bem... tenho o seguinte problema: preciso pegar os dados de uma coluna do grid e salvar no banco... até ai tudo bem, com um for acho que resolve, só que o problema é maior... preciso salvar no lugar certo, e a tabela tem relacionamento.
bem... pode parecer confuso, então vou mostrar como é
tenho a tabela "DiagP" onde estão as Perguntas do Diagnóstico. os campos são: PergCod (codigo da pergunta), PergDesc (descrição), Facial, Corporal e Capilar. estes 3 ultimos são booleans
bem... esta tabela é relacionada com outra tabela a Diag, que tem os campos: Cliente(cod do cliente), Pergunta(cod da pergunta), Positivo (boolean).
no grid eu trato assim, para o grid de Diagnóstico capilar eu verifico quais perguntas possuem o "capilar" selecionado do cliente X... com INNER JOIN.. no grid eu mostro a descrição da pergunta e o campo Positivo.
O que eu preciso é gravar a resposta para a pergunta, no caso o valor do Positivo, para este cliente X... o problema é saber o codigo da pergunta q se está respondendo e salvar isso no banco de forma correta...
passei esta noite em claro tentando resolver, mais não achei nenhuma solução.
qualquer dica é válida =]
desde já agradeço a todos
Bem... tenho o seguinte problema: preciso pegar os dados de uma coluna do grid e salvar no banco... até ai tudo bem, com um for acho que resolve, só que o problema é maior... preciso salvar no lugar certo, e a tabela tem relacionamento.
bem... pode parecer confuso, então vou mostrar como é
tenho a tabela "DiagP" onde estão as Perguntas do Diagnóstico. os campos são: PergCod (codigo da pergunta), PergDesc (descrição), Facial, Corporal e Capilar. estes 3 ultimos são booleans
bem... esta tabela é relacionada com outra tabela a Diag, que tem os campos: Cliente(cod do cliente), Pergunta(cod da pergunta), Positivo (boolean).
no grid eu trato assim, para o grid de Diagnóstico capilar eu verifico quais perguntas possuem o "capilar" selecionado do cliente X... com INNER JOIN.. no grid eu mostro a descrição da pergunta e o campo Positivo.
O que eu preciso é gravar a resposta para a pergunta, no caso o valor do Positivo, para este cliente X... o problema é saber o codigo da pergunta q se está respondendo e salvar isso no banco de forma correta...
passei esta noite em claro tentando resolver, mais não achei nenhuma solução.
qualquer dica é válida =]
desde já agradeço a todos
Viu..com um indice de PergCod..vc n consegue se referenciar nas duas tabelas?
basta dar um select na outra tabela pelo pergCod da tabela diagnótico e fazer o update.
ou eu to chapando?ahuahauhau
viu..continua confuso ainda..huahuaha
hahahahahahaha
assim... na tabela Diag eu gravo o cod do cliente, cod da pergunta e a resposta (sim/não)
o problema é saber qual é o cod da pergunta. pq no grid eu não mostro o cod dela.
assim... na tabela Diag eu gravo o cod do cliente, cod da pergunta e a resposta (sim/não)
o problema é saber qual é o cod da pergunta. pq no grid eu não mostro o cod dela.
to mandando um arquivo de como está...
Sabe o q vc pode fazer
vc pode mostrar sim o codigoda peergunta, deixando ele na ultima coluna..mas redimensionado o flexgrid, para q n mostra essa ultima coluna..assim terá referência;..
entendeu a mágica?
hahahahahaha
boa!
vou testar e já digo se deu ou não
boa!
vou testar e já digo se deu ou não
deu certo e não deu.... o que vc falou é bem por ai msm...
só que eu não consigo gravar todas os dados do grid... ele só grava o ultimo...
to fazendo desta forma
Dim r As Long
For r = 1 To GRDcap.Rows - 1
diag("Cliente") = FRMclientes.LBLcod.Caption
diag("Pergunta") = GRDcap.TextMatrix(r, 2)
If GRDcap.TextMatrix(r, 1) = "þ" Then
diag("Positivo") = True
End If
Next
só que eu não consigo gravar todas os dados do grid... ele só grava o ultimo...
to fazendo desta forma
Dim r As Long
For r = 1 To GRDcap.Rows - 1
diag("Cliente") = FRMclientes.LBLcod.Caption
diag("Pergunta") = GRDcap.TextMatrix(r, 2)
If GRDcap.TextMatrix(r, 1) = "þ" Then
diag("Positivo") = True
End If
Next
bem... gravar eu consegui....
Dim r As Long
For r = 1 To GRDcap.Rows - 1
diag.AddNew
diag("Cliente") = FRMclientes.LBLcod.Caption
diag("Pergunta") = GRDcap.TextMatrix(r, 2)
If GRDcap.TextMatrix(r, 1) = "þ" Then
diag("Positivo") = True
End If
diag.Update
Next
mais para alterar não está dando certo, não sei como fazer pois da forma que eu tentei ele muda os primeiros registros e não de um determinado cliente
fiz o alterar assim:
Dim r As Long
For r = 1 To GRDcap.Rows - 1
diag.Edit
If GRDcap.TextMatrix(r, 1) = "þ" Then
diag("Positivo") = True
End If
diag.Update
Next
Dim r As Long
For r = 1 To GRDcap.Rows - 1
diag.AddNew
diag("Cliente") = FRMclientes.LBLcod.Caption
diag("Pergunta") = GRDcap.TextMatrix(r, 2)
If GRDcap.TextMatrix(r, 1) = "þ" Then
diag("Positivo") = True
End If
diag.Update
Next
mais para alterar não está dando certo, não sei como fazer pois da forma que eu tentei ele muda os primeiros registros e não de um determinado cliente
fiz o alterar assim:
Dim r As Long
For r = 1 To GRDcap.Rows - 1
diag.Edit
If GRDcap.TextMatrix(r, 1) = "þ" Then
diag("Positivo") = True
End If
diag.Update
Next
Tenta por update de sql..é bem melhor
Seria algo +/- assim né
UPDATE Diag SET Positivo = True WHERE Cliente LIKE '" + FRMclientes.LBLcod.Caption + "*';
mais não sei como implementar ela no que eu quero
UPDATE Diag SET Positivo = True WHERE Cliente LIKE '" + FRMclientes.LBLcod.Caption + "*';
mais não sei como implementar ela no que eu quero
SeuBanco.Execute "UPDATE Diag SET Positivo = True WHERE Cliente LIKE '" + FRMclientes.LBLcod.Caption + "%'"
acho q assim daria certo
q tipo de conexão tu ta usando?
Tópico encerrado , respostas não são mais permitidas