CALCULO ENTRE CAMPOS
alquem me explique:Tenho no banco(Materiais) com a tabela (Localizacao) e campos(Quantidade) e (Unitario). Na linha (LbV_Entrada = tbOs3("Quantidade") * tbOs3("Unitario") do cod. abaixo tento fazer o calculo mas só que ele busca outro valor unitario e não o que estou mandando buscar na 2º instrucao Sql abaixo. Como se para carregar a quantidade da linha(Lb_Entrada = tbOs3!Quantidade) ele procede normalmente?
Private Sub CmdBusca_Click()
Dim Sql As String
Dim Val As String
Sql = "select * from Baixas where Codigo like '*" & TxtBusca.Text & "*'"
Set tbOs2 = bdMat2.OpenRecordset(Sql)
Val = "SELECT Quantidade, Unitario FROM Localizacao WHERE Código = '" & TxtBusca.Text & "'"
Set tbOs3 = bdMat2.OpenRecordset(Val)
If tbOs2.RecordCount = 0 Then
DbList_3.Clear
Else
DbList_3.Clear
tbOs2.MoveLast
tbOs2.MoveFirst
Dim i, J
i = 0
J = 1
Do Until tbOs2.EOF
DbList_3.AddItem Alinha(Format(tbOs2("Codigo"), "000000"), 6, "ESQ")
DbList_3.List(i, 1) = tbOs2("Saida")
DbList_3.List(i, 2) = tbOs2("Data")
DbList_3.List(i, 3) = tbOs2("Req")
DbList_3.List(i, 4) = Alinha(tbOs2("OS"), 10, "DIR")
i = i + 1
a = a + CDbl(tbOs2("Saida"))
tbOs2.MoveNext
Loop
End If
Lbsaida = CStr(a)
Lb_Entrada = tbOs3!Quantidade
LbSaldo = Lb_Entrada - Lbsaida
LbV_Entrada = Lb_Entrada * tbOs3!Unitario
LbV_Entrada = Format(LbV_Entrada.Caption, "#,###,##0.00")
TxtBusca.Text = ""
TxtBusca.SetFocus
End Sub
Private Sub CmdBusca_Click()
Dim Sql As String
Dim Val As String
Sql = "select * from Baixas where Codigo like '*" & TxtBusca.Text & "*'"
Set tbOs2 = bdMat2.OpenRecordset(Sql)
Val = "SELECT Quantidade, Unitario FROM Localizacao WHERE Código = '" & TxtBusca.Text & "'"
Set tbOs3 = bdMat2.OpenRecordset(Val)
If tbOs2.RecordCount = 0 Then
DbList_3.Clear
Else
DbList_3.Clear
tbOs2.MoveLast
tbOs2.MoveFirst
Dim i, J
i = 0
J = 1
Do Until tbOs2.EOF
DbList_3.AddItem Alinha(Format(tbOs2("Codigo"), "000000"), 6, "ESQ")
DbList_3.List(i, 1) = tbOs2("Saida")
DbList_3.List(i, 2) = tbOs2("Data")
DbList_3.List(i, 3) = tbOs2("Req")
DbList_3.List(i, 4) = Alinha(tbOs2("OS"), 10, "DIR")
i = i + 1
a = a + CDbl(tbOs2("Saida"))
tbOs2.MoveNext
Loop
End If
Lbsaida = CStr(a)
Lb_Entrada = tbOs3!Quantidade
LbSaldo = Lb_Entrada - Lbsaida
LbV_Entrada = Lb_Entrada * tbOs3!Unitario
LbV_Entrada = Format(LbV_Entrada.Caption, "#,###,##0.00")
TxtBusca.Text = ""
TxtBusca.SetFocus
End Sub
Porque tu usou like apenas no primeiro SQL?, não seria isto o inicio do problema?
Sql = "select * from Baixas where Codigo like '*" & TxtBusca.Text & "*'"
Set tbOs2 = bdMat2.OpenRecordset(Sql)
Val = "SELECT Quantidade, Unitario FROM Localizacao WHERE Código = '" & TxtBusca.Text & "'"
Set tbOs3 = bdMat2.OpenRecordset(Val)
Sql = "select * from Baixas where Codigo like '*" & TxtBusca.Text & "*'"
Set tbOs2 = bdMat2.OpenRecordset(Sql)
Val = "SELECT Quantidade, Unitario FROM Localizacao WHERE Código = '" & TxtBusca.Text & "'"
Set tbOs3 = bdMat2.OpenRecordset(Val)
Acho melhor tirar o LIKE da consulta pois se voce colora 12 ele vai retornar 12,121,1200
Tira e veja se adianta
Tira e veja se adianta
Tópico encerrado , respostas não são mais permitidas