Tentei usar sem sucesso uma consulta acréscimo para inserir vários registros de uma consulta para uma tabela. Ao executar, há um erro, pois dois campos obrigatórios não podem ser adicionados.
Um destes campos é o Índice (CodLancamentos), que é gerado no formulário antes da inserção de um novo registro através de DMax("CodLancamento", "tblLancamentos") + 1.
Outro é o campo CodFolha1, que é inserido sempre que um novo registro é criado no subformulário Lancamentos (tblLancamentos).
Acho que não é possível inserir esses dados pela consulta acréscimo pois na seção "Acrescentar a" só é possível determinar o campo que receberá os dados: não sei se é possível inserir uma função.
A consulta de origem dos dados é ativada a partir do formulário frmFolhaPagamento e seleciona as verbas da folha de pagamento do mês anterior para transferir para o mês atual. (Assim, o campo CodFolha1 deve ser o atual do formulário).
Então, tentei fazer isso via DAO.Recordset, e não funcionou:
Private Sub cmdLancMesAnte_Click()
Dim db As DAO.Database
Dim rsOrigem As DAO.Recordset
Dim rsDestino As DAO.Recordset2
Set db = CurrentDb()
Set rsDestino = db.OpenRecordset("qryLancamentos")
Set rsOrigem = db.OpenRecordset("qryFolhaLancAnte2") >>> ERRO 3219 OPERAÇÃO INVÁLIDA.
Do While Not rsOrigem.EOF
rsDestino.AddNew
rsDestino.Fields("CodLancamento") = Nz(DMax("CodLancamento", "tblLancamentos"), 0) + 1
rsDestino.Fields("CodFolha1") = Forms!frmfolha!CodFolha
rsDestino.Fields("CodEvento1") = rsOrigem!CodEvento1
rsDestino.Fields("RefValor") = rsOrigem!RefValor
rsDestino.Fields("RefValor2") = rsOrigem!RefValor2
rsDestino.Fields("Valor") = rsOrigem!Valor
rsDestino.Update
rsDestino.MoveNext
Loop
Set rsOrigem = Nothing
Set rsDestino = Nothing
Set db = Nothing
End Sub
Um destes campos é o Índice (CodLancamentos), que é gerado no formulário antes da inserção de um novo registro através de DMax("CodLancamento", "tblLancamentos") + 1.
Outro é o campo CodFolha1, que é inserido sempre que um novo registro é criado no subformulário Lancamentos (tblLancamentos).
Acho que não é possível inserir esses dados pela consulta acréscimo pois na seção "Acrescentar a" só é possível determinar o campo que receberá os dados: não sei se é possível inserir uma função.
A consulta de origem dos dados é ativada a partir do formulário frmFolhaPagamento e seleciona as verbas da folha de pagamento do mês anterior para transferir para o mês atual. (Assim, o campo CodFolha1 deve ser o atual do formulário).
Então, tentei fazer isso via DAO.Recordset, e não funcionou:
Private Sub cmdLancMesAnte_Click()
Dim db As DAO.Database
Dim rsOrigem As DAO.Recordset
Dim rsDestino As DAO.Recordset2
Set db = CurrentDb()
Set rsDestino = db.OpenRecordset("qryLancamentos")
Set rsOrigem = db.OpenRecordset("qryFolhaLancAnte2") >>> ERRO 3219 OPERAÇÃO INVÁLIDA.
Do While Not rsOrigem.EOF
rsDestino.AddNew
rsDestino.Fields("CodLancamento") = Nz(DMax("CodLancamento", "tblLancamentos"), 0) + 1
rsDestino.Fields("CodFolha1") = Forms!frmfolha!CodFolha
rsDestino.Fields("CodEvento1") = rsOrigem!CodEvento1
rsDestino.Fields("RefValor") = rsOrigem!RefValor
rsDestino.Fields("RefValor2") = rsOrigem!RefValor2
rsDestino.Fields("Valor") = rsOrigem!Valor
rsDestino.Update
rsDestino.MoveNext
Loop
Set rsOrigem = Nothing
Set rsDestino = Nothing
Set db = Nothing
End Sub