ACUMULAR VALOR EM LOOP
Ola Caros Colegas!
Estou com um pequeno problema na exportação de um Recordset para um arquivo texto. Estou fazendo o seguinte:
Tenho uma Variavel QuantReg que vai acumulando a quantidade de registro em um Loop e tambem outra SomaValor esta acumula a soma de um campo do Recordset.
Quando a varialvel QuantReg atinge 40 registros ai eu gravo a Variavel SomaValor no Rodape da pagina do arquivo Texto e tambem dou uma quebra de pagina no arquivo texto.
Só que a variavel SomaValor não está acumulando os valores. Veja o meu código:
Dim Cnn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Numero As String
Dim codigo As String
Dim Valor As String
Dim QuantReg As Integer
Dim SomaValor As Single
Numero = "Numero Nf"
Codigo = "Codigo Fornecedor"
Valor = "Valor Produto"
Set Cnn = New ADODB.Connection
With Cnn
.Provider = "SqlOledb"
.Properties("Data Source") = NomeServidor
.Properties("Initial Catalog") = NomeBanco
.Properties("User Id") = NomeUsuario
.Properties("Password") = SenhaUsuario
.CursorLocation = adUseClient
.ConnectionTimeout = 15
.Open
End With
Set Rs = New ADODB.Recordset
Rs.Open "Teste", Cnn
Open "C:\windows\desktop este.txt" For Output As 1#
Print #1, Tab(0); Numero; Tab(12); Codigo; Tab(40); Valor 'Imprime Cabeçalho
With Rs
.MoveFirst
Do While Not Rs.EOF
QuantReg = QuantReg + 1
SomaValor = !Valor + !Valor ' Aqui está o problema a variavel Somavalor não está acumulando o saldo
Print #1, Tab(0); !NumeroNf; Tab(12); !Codigo; Tab(40); !Valor
If QuantReg = 40 Then ' Quando o registro for 40
Print #1, SomaValor
Print #1, vbFormFeed ' Insire uma quebra de pagina no Txt
Print #1, Tab(0); Numero; Tab(12); Codigo; Tab(40); Valor 'Imprime Cabeçalho
QuantReg = 0 'Zera a Variavel
SomaValor = 0 'Zera a Variavel
End If
.MoveNext
Loop
.close
End With
Close 1#
Dede já obrigado quem puder me auxiliar neste problema.
Estou com um pequeno problema na exportação de um Recordset para um arquivo texto. Estou fazendo o seguinte:
Tenho uma Variavel QuantReg que vai acumulando a quantidade de registro em um Loop e tambem outra SomaValor esta acumula a soma de um campo do Recordset.
Quando a varialvel QuantReg atinge 40 registros ai eu gravo a Variavel SomaValor no Rodape da pagina do arquivo Texto e tambem dou uma quebra de pagina no arquivo texto.
Só que a variavel SomaValor não está acumulando os valores. Veja o meu código:
Dim Cnn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Numero As String
Dim codigo As String
Dim Valor As String
Dim QuantReg As Integer
Dim SomaValor As Single
Numero = "Numero Nf"
Codigo = "Codigo Fornecedor"
Valor = "Valor Produto"
Set Cnn = New ADODB.Connection
With Cnn
.Provider = "SqlOledb"
.Properties("Data Source") = NomeServidor
.Properties("Initial Catalog") = NomeBanco
.Properties("User Id") = NomeUsuario
.Properties("Password") = SenhaUsuario
.CursorLocation = adUseClient
.ConnectionTimeout = 15
.Open
End With
Set Rs = New ADODB.Recordset
Rs.Open "Teste", Cnn
Open "C:\windows\desktop este.txt" For Output As 1#
Print #1, Tab(0); Numero; Tab(12); Codigo; Tab(40); Valor 'Imprime Cabeçalho
With Rs
.MoveFirst
Do While Not Rs.EOF
QuantReg = QuantReg + 1
SomaValor = !Valor + !Valor ' Aqui está o problema a variavel Somavalor não está acumulando o saldo
Print #1, Tab(0); !NumeroNf; Tab(12); !Codigo; Tab(40); !Valor
If QuantReg = 40 Then ' Quando o registro for 40
Print #1, SomaValor
Print #1, vbFormFeed ' Insire uma quebra de pagina no Txt
Print #1, Tab(0); Numero; Tab(12); Codigo; Tab(40); Valor 'Imprime Cabeçalho
QuantReg = 0 'Zera a Variavel
SomaValor = 0 'Zera a Variavel
End If
.MoveNext
Loop
.close
End With
Close 1#
Dede já obrigado quem puder me auxiliar neste problema.
TEste fazer assim, na linha que VC identificou estar errada:
SomaValor=SomaValor+!valor
Igual a sua linha de cima ao que está dando o erro!
SomaValor=SomaValor+!valor
Igual a sua linha de cima ao que está dando o erro!
Tópico encerrado , respostas não são mais permitidas