AJUDA EM LOOP
Bom dia.
Mais uma vez eu aqui.
é o seguinte eu tenho uma dúvida que gostaria da ajuda de vocês.
é um bloco que refere-se ao acerto de estoque.
Eu tenho que criar um laço de repetição, onde este laço faz a conexão com o banco de dados SQL Server, verifica se o preço atual de venda, preço de custo estão maiores ou menores que o atual da base de dados, se maior ou menor ele verifica se o usuário deseja atualizar os preços e então faz um update na tabela e produtos.
Porém não se a minha lógica está correta é ai que eu gostaria da ajuda de vocês.
Olhe abaixo como eu estava pensando em fazer:
[ô] Aqui eu realizo a conexão com a Base de dados setando a tabela Ger003
Set oConCadC = New ADODB.Connection [ô] oConCadC é o objeto de conexão com Base
oConCadC.ConnectionString = Init.vStrConSQLServer
oConCadC.Open
Set oRecCadC = New ADODB.Recordset [ô] oRecCadC é a Recordset
vStrSql = [Ô]Select * from ger003[Ô] [ô] A Tabela Ger003 é a tabela de Produtos
oRecCadC.Open vStrSql, oconcad, adOpenDynamic, adLockBatchOptimistic
[ô] Faz atualizações na Tabela Ger003 Equipamentos (Verifica os preços e os atualiza caso o usuário opte por sim)
With grdEquipamentos
For i = 1 To .Rows - 1
[ô] é aqui dentro que eu gostaria de realizar as consultas e os Updates. Alguém poderia me ajudar?
Next i
End With
[ô] Fecha as conexões com a Base de Dados
Call fechaObjetoConnection(oConCadC)
Call fechaObjetoRecordset(oRecCadC)
Uma outra dúvida é se devo realizar as conexões dentro ou fora do laço de repetição?
Grato.
Mais uma vez eu aqui.
é o seguinte eu tenho uma dúvida que gostaria da ajuda de vocês.
é um bloco que refere-se ao acerto de estoque.
Eu tenho que criar um laço de repetição, onde este laço faz a conexão com o banco de dados SQL Server, verifica se o preço atual de venda, preço de custo estão maiores ou menores que o atual da base de dados, se maior ou menor ele verifica se o usuário deseja atualizar os preços e então faz um update na tabela e produtos.
Porém não se a minha lógica está correta é ai que eu gostaria da ajuda de vocês.
Olhe abaixo como eu estava pensando em fazer:
[ô] Aqui eu realizo a conexão com a Base de dados setando a tabela Ger003
Set oConCadC = New ADODB.Connection [ô] oConCadC é o objeto de conexão com Base
oConCadC.ConnectionString = Init.vStrConSQLServer
oConCadC.Open
Set oRecCadC = New ADODB.Recordset [ô] oRecCadC é a Recordset
vStrSql = [Ô]Select * from ger003[Ô] [ô] A Tabela Ger003 é a tabela de Produtos
oRecCadC.Open vStrSql, oconcad, adOpenDynamic, adLockBatchOptimistic
[ô] Faz atualizações na Tabela Ger003 Equipamentos (Verifica os preços e os atualiza caso o usuário opte por sim)
With grdEquipamentos
For i = 1 To .Rows - 1
[ô] é aqui dentro que eu gostaria de realizar as consultas e os Updates. Alguém poderia me ajudar?
Next i
End With
[ô] Fecha as conexões com a Base de Dados
Call fechaObjetoConnection(oConCadC)
Call fechaObjetoRecordset(oRecCadC)
Uma outra dúvida é se devo realizar as conexões dentro ou fora do laço de repetição?
Grato.
Só para esclarecer o grdEquipamentos é um FlexGrid onde eu listo todos os itens novos.
A melhor coisa.
Coloca o cabeção para funcionar.
E mais uma Dica.Use o Listview.
Bem mais rápido.
Vou enviar um exemplo para seu
Email,ai você olha.
Coloca o cabeção para funcionar.
E mais uma Dica.Use o Listview.
Bem mais rápido.
Vou enviar um exemplo para seu
Email,ai você olha.
Obrigado Omar
Omar tem como mandar pra mim tambem???
obrigado
obrigado
Colega em qual variavel você está armazenando o preço atual de venda e/ou de custo?
pelo que entendi vc possui possui os preços no grid então seria algomais ou menos assim.
mas no flexgrid mesmo da pra fazer
bom no exemplo acima fiz uma comparação levando emconsideração que:
na coluna 0 (.TextMtarix(i,0)) esteja o codigo do produto
na coluna 1 (.TextMatrix(i,1)) esteja o precodevenda
na coluna 2 (.TextMatrix(i,2)) esteja o preço de custo
basta vc alterar para as colunas exatas
pelo que entendi vc possui possui os preços no grid então seria algomais ou menos assim.
mas no flexgrid mesmo da pra fazer
Set oConCadC = New ADODB.Connection [ô] oConCadC é o objeto de conexão com Base
oConCadC.ConnectionString = Init.vStrConSQLServer
oConCadC.Open
Set oRecCadC = New ADODB.Recordset [ô] oRecCadC é a Recordset
[ô] Faz atualizações na Tabela Ger003 Equipamentos (Verifica os preços e os atualiza caso o usuário opte por sim)
With grdEquipamentos
For i = 1 To .Rows - 1
vStrSql = [Ô]UPDATE ger003 SET precovenda = [ô][Ô] & .TextMatrix(i, 1) & [Ô][ô],precocusto=[ô][Ô] & .TextMatrix(i,2) & [Ô][ô] WHERE precovenda <> [ô][Ô] & .TextMatrix(i, 1) & [Ô][ô] And precocusto <> [ô][Ô] & .TextMatrix(i,2) & [Ô][ô] And codigo = [Ô] & .TextMatrix(i,0)
oRecCadC.Open vStrSql, oconcad, adOpenDynamic, adLockBatchOptimistic
Next i
End With
[ô] Fecha as conexões com a Base de Dados
Call fechaObjetoConnection(oConCadC)
Call fechaObjetoRecordset(oRecCadC)
bom no exemplo acima fiz uma comparação levando emconsideração que:
na coluna 0 (.TextMtarix(i,0)) esteja o codigo do produto
na coluna 1 (.TextMatrix(i,1)) esteja o precodevenda
na coluna 2 (.TextMatrix(i,2)) esteja o preço de custo
basta vc alterar para as colunas exatas
Tenho que admitir,deu uma verdadeira [txt-color=#e80000]BICUDA[/txt-color].
Acabei de verificar o exemplo e não satisfaz
a sua necessidade.Desculpe.Falha nossa.
Acabei de verificar o exemplo e não satisfaz
a sua necessidade.Desculpe.Falha nossa.
Exato Marcelo na grade estão todas as informações e eu devo percorrer o Grid para realizar o Update.
Vou testar a maneira que você indicou e já dou um retorno. Mais uma vez Obrigado.
Vou testar a maneira que você indicou e já dou um retorno. Mais uma vez Obrigado.
Tópico encerrado , respostas não são mais permitidas