Recorro, de novo, à prestimosa ajuda dos companheiros.
Estou levando uma "surra" da rotina abaixo.
Explico:
Tenho duas tabelas: TbNDAux e Saldos.
Tenho que encontrar na tabela Saldos, para atualização, cinco campos, todos coincidindo com dados existentes na outra tabela.
Ao executar tenho a resposta " Parâmetros insuficientes - Eram esperados 5.""
Onde posso estar errando?
Todos os campos de ambas as tabelas são inteiros longos
Tentei também com FindFirst, mas houve erro. Devo, neste caso, ter omitido os famigerados aspas ou colchete. Sei lá?
Busquei solução na Internet, mas não tive sorte, ou fui incapaz de identificar a possível solução.
Uso ACCESS 2010.
Será que alguém pode identificar meu erro? Inclusive, para os demais interessados do meu nível de conhecimento, se possível dar também a solução com o FindFirst/NoMatch.
Agradeço antecipadamente.
Private Sub Comando20_Click()
DoCmd.Close acForm, "EntradaND", acSaveYes
Dim Banco As DAO.Database
Set Banco = OpenDatabase("C:\Users\Owner\Documents\Orcamento")
Dim TbND As DAO.TableDef
Dim TbNDAux As DAO.TableDef
Dim Saldos As DAO.TableDef
Dim dyTbND As DAO.Recordset
Dim dyTbNDAux As DAO.Recordset
Dim dySaldos As DAO.Recordset
Set dyTbND = Banco.OpenRecordset("TbND", DB_OPEN_DYNASET)
Set dyTbNDAux = Banco.OpenRecordset("TbNDAux", DB_OPEN_DYNASET)
Dim sqlstr As String
With dyTbNDAux
xUniOr = dyTbNDAux("UniOr")
xPrograma = dyTbNDAux("Programa")
xNatDesp = dyTbNDAux("NatDesp")
xAçao = dyTbNDAux("Açao")
xFonte = dyTbNDAux("Fonte")
xNumND = dyTbNDAux("NumND")
xDatND = dyTbNDAux("DatND")
xValND = dyTbNDAux("ValND")
xDescri = dyTbNDAux("Descri")
End With
sqlstr = "select * from Saldos where Unior=xUnior and Programa=xPrograma and NatDesp = xNatDesp and Fonte=xFonte and Açao=xAçao"
Set dySaldos = Banco.OpenRecordset(sqlstr, DB_OPEN_DYNASET)
Pergunta
Welter
Recorro, de novo, à prestimosa ajuda dos companheiros.
Estou levando uma "surra" da rotina abaixo.
Explico:
Tenho duas tabelas: TbNDAux e Saldos.
Tenho que encontrar na tabela Saldos, para atualização, cinco campos, todos coincidindo com dados existentes na outra tabela.
Ao executar tenho a resposta " Parâmetros insuficientes - Eram esperados 5.""
Onde posso estar errando?
Todos os campos de ambas as tabelas são inteiros longos
Tentei também com FindFirst, mas houve erro. Devo, neste caso, ter omitido os famigerados aspas ou colchete. Sei lá?
Busquei solução na Internet, mas não tive sorte, ou fui incapaz de identificar a possível solução.
Uso ACCESS 2010.
Será que alguém pode identificar meu erro? Inclusive, para os demais interessados do meu nível de conhecimento, se possível dar também a solução com o FindFirst/NoMatch.
Agradeço antecipadamente.
Private Sub Comando20_Click()
DoCmd.Close acForm, "EntradaND", acSaveYes
Dim Banco As DAO.Database
Set Banco = OpenDatabase("C:\Users\Owner\Documents\Orcamento")
Dim TbND As DAO.TableDef
Dim TbNDAux As DAO.TableDef
Dim Saldos As DAO.TableDef
Dim dyTbND As DAO.Recordset
Dim dyTbNDAux As DAO.Recordset
Dim dySaldos As DAO.Recordset
Set dyTbND = Banco.OpenRecordset("TbND", DB_OPEN_DYNASET)
Set dyTbNDAux = Banco.OpenRecordset("TbNDAux", DB_OPEN_DYNASET)
Dim sqlstr As String
With dyTbNDAux
xUniOr = dyTbNDAux("UniOr")
xPrograma = dyTbNDAux("Programa")
xNatDesp = dyTbNDAux("NatDesp")
xAçao = dyTbNDAux("Açao")
xFonte = dyTbNDAux("Fonte")
xNumND = dyTbNDAux("NumND")
xDatND = dyTbNDAux("DatND")
xValND = dyTbNDAux("ValND")
xDescri = dyTbNDAux("Descri")
End With
sqlstr = "select * from Saldos where Unior=xUnior and Programa=xPrograma and NatDesp = xNatDesp and Fonte=xFonte and Açao=xAçao"
Set dySaldos = Banco.OpenRecordset(sqlstr, DB_OPEN_DYNASET)
With dySaldos
If dySaldos.EOF Then
MsgBox "Erro enquadramento ND.Corrigir"
Else
.Edit
dySaldos("ValCred") = dySaldos("ValCred") + xValND
.Update
End If
End With
Banco.Execute "delete * from TbNDAux"
End Sub
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.