GRAVACAO EM BANCO

USUARIO.EXCLUIDOS 05/05/2004 10:01:19
#23124
Com o cód abaixo eu gravo na tabela Baixa. Porem eu abro a tabela Localizacao para pegar os dados do fild Quantidade e gravar no fild Saldo da tabela Baixa, so que não funciona. A rotina na linha 14 esta correta?

Private Sub ConfirmarBaixa()
Dim bdSaida As Database
Dim tbSaida As Recordset
Set bdSaida = OpenDatabase("C:\Estoque\Materiais.mdb")
Set tbSaida = bdSaida.OpenRecordset("Baixas", dbOpenTable)
Set tbloc = bdMat.OpenRecordset("Localizacao", dbOpenTable)
On Error Resume Next
Posição = tbSaida.Bookmark
tbSaida.AddNew
tbSaida.Fields("Saida") = Trim(TxtBaixa1.Text)
tbSaida.Fields("Req") = Trim(TxtReq.Text)
tbSaida.Fields("Data") = Trim(TxtData1.Text)
tbSaida.Fields("OS") = Trim(TxtOsBaixa.Text)
tbSaida.Fields("Codigo") = Trim(TxtCodBaixa.Text)
tbSaida.Fields("Saldo") = tbloc!Quantidade
tbSaida.Update
End Sub
USUARIO.EXCLUIDOS 05/05/2004 10:23:50
#23137
Resposta escolhida
Com o código exposto você insere dados em um registro novo da tabela Baixa. Como não foi especificado qualquer registro da tabela Localização, o valor do campo Quantidade do registro corrente é o que é carregado para o campo Saldo da tabela Saida. Acredito que na tabela Localização exista também um campo com o código da baixa, o que deve então ser utilizado como filtro e que seja necessário talvês somar os registros da tabela Localização que sejam encontrados (SELECT SUM).

Private Sub ConfirmarBaixa()
Dim bdSaida As DAO.Database
Dim tbSaida As DAO.Recordset
Dim tbLoc As DAO.Recordset

Set bdSaida = OpenDatabase("C:\Estoque\Materiais.mdb")
Set tbSaida = bdSaida.OpenRecordset("Baixas", dbOpenDynaset)
Set tbLoc = bdMat.OpenRecordset("Select Sum(Localizacao.Quantidade) Where Codigo = " & Trim(TxtCodBaixa.Text) & "", dbOpenDynaset)

Posição = tbSaida.Bookmark

If Not tbLoc.Eof = True Then
tbSaida.AddNew
tbSaida.Fields("Saida") = Trim(TxtBaixa1.Text)
tbSaida.Fields("Req") = Trim(TxtReq.Text)
tbSaida.Fields("Data") = Trim(TxtData1.Text)
tbSaida.Fields("OS") = Trim(TxtOsBaixa.Text)
tbSaida.Fields("Codigo") = Trim(TxtCodBaixa.Text)
tbSaida.Fields("Saldo") = tbloc!Quantidade
tbSaida.Update
Else
MsgBox "Nenhuma quantidade encontrada."
End If

tbSaida.Close
tbLoc.Close
bdSaida.Close
Set tbSaida = Nothing
Set tbLoc = Nothing
Set bdSaida = Nothing
End Sub
Tópico encerrado , respostas não são mais permitidas