Boa Tarde,
Tenho um formulário(Treinamento) com dois subformulários continuos(Turma e TurmaAl), e um outro formulario continuo(Pagamentos) em que eu gostaria de repassar dados do formulario e subforms transformando cada registro deles em um novo registro do outro.
Os campos do formulário Treinamento que quero exportar são (o campo chave deste form é CodTrein):
CodCTRLTrein;
Numero;
[Data Inicio Instrutor] e;
[Data Fim Instrutor].
Os campos do subformulário Turma e do TurmaAl que desejo copiar são (os campos são os mesmos):
CodTripTur;
[N de Dias];
[Valor Diaria];
[Total Diaria];
[Horas de Voo];
[Valor Horas];
[Total Horas] e;
[Total Geral].
E os campos do formulário Pagamentos, onde desejo colar os valores são:
CodCTRLPag;
Numero;
[Data In];
[Data Fim];
CodTripPag;
[N de Dias];
[Valor Diaria];
[Total Diaria];
[Horas de Voo];
[Valor Horas];
[Total Horas] e;
[Total Geral].
Para isso eu criei um botão no formulário "Treinamento" com o seguinte comando:
Private Sub Comando148_Click()
On Error GoTo Err_Comando148_Click
If Not IsNull(Me!CodTrein) Then
If MsgBox("Confirma a inclusão para pagamento?", vbQuestion + vbYesNo) = vbYes Then
Dim CodigoNovoPagamento As Long
CurrentDb.Execute "INSERT INTO Pagamentos (CodCTRLPag, Numero, [Data In], [Data Fim], CodTripPag, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral]) SELECT CodCTRLTrein, Numero, [Data Inicio Instrutor], [Data Fim Instrutor], CodTripTur, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral] FROM Treinamento, Turma WHERE CodTrein=" & Me!CodTrein & ";", dbFailOnError
CodigoNovoPagamento = DMax("CodTrein", Me.RecordSource)
CurrentDb.Execute "INSERT INTO Pagamentos (CodCTRLPag, Numero, [Data In], [Data Fim], CodTripPag, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral]) SELECT CodCTRLTrein, Numero, [Data Inicio Alunos], [Data Fim Alunos], CodTripTur, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral] FROM Treinamento, TurmaAl WHERE CodTrein=" & Me!CodTrein & ";", dbFailOnError
Me.Requery
End If
End If
Exit_Comando148_Click:
Exit Sub
Err_Comando148_Click:
MsgBox Err.Description
Resume Exit_Comando148_Click
End Sub
O comando parece funcionar, ele cria a quantidade de registros corretamente e os valores dos subformulários corretamente, porém ele repete os campos do formulário principal (Treinamento) em todos os registros, ele registra apenas o 1º resultado que encontra.
Alguem saberia me dizer onde está o erro? Já pesquisei muito sobre e não encontrei resposta.
Tenho um formulário(Treinamento) com dois subformulários continuos(Turma e TurmaAl), e um outro formulario continuo(Pagamentos) em que eu gostaria de repassar dados do formulario e subforms transformando cada registro deles em um novo registro do outro.
Os campos do formulário Treinamento que quero exportar são (o campo chave deste form é CodTrein):
CodCTRLTrein;
Numero;
[Data Inicio Instrutor] e;
[Data Fim Instrutor].
Os campos do subformulário Turma e do TurmaAl que desejo copiar são (os campos são os mesmos):
CodTripTur;
[N de Dias];
[Valor Diaria];
[Total Diaria];
[Horas de Voo];
[Valor Horas];
[Total Horas] e;
[Total Geral].
E os campos do formulário Pagamentos, onde desejo colar os valores são:
CodCTRLPag;
Numero;
[Data In];
[Data Fim];
CodTripPag;
[N de Dias];
[Valor Diaria];
[Total Diaria];
[Horas de Voo];
[Valor Horas];
[Total Horas] e;
[Total Geral].
Para isso eu criei um botão no formulário "Treinamento" com o seguinte comando:
Private Sub Comando148_Click()
On Error GoTo Err_Comando148_Click
If Not IsNull(Me!CodTrein) Then
If MsgBox("Confirma a inclusão para pagamento?", vbQuestion + vbYesNo) = vbYes Then
Dim CodigoNovoPagamento As Long
CurrentDb.Execute "INSERT INTO Pagamentos (CodCTRLPag, Numero, [Data In], [Data Fim], CodTripPag, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral]) SELECT CodCTRLTrein, Numero, [Data Inicio Instrutor], [Data Fim Instrutor], CodTripTur, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral] FROM Treinamento, Turma WHERE CodTrein=" & Me!CodTrein & ";", dbFailOnError
CodigoNovoPagamento = DMax("CodTrein", Me.RecordSource)
CurrentDb.Execute "INSERT INTO Pagamentos (CodCTRLPag, Numero, [Data In], [Data Fim], CodTripPag, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral]) SELECT CodCTRLTrein, Numero, [Data Inicio Alunos], [Data Fim Alunos], CodTripTur, [N de Dias], [Valor Diaria], [Total Diaria], [Horas de Voo], [Valor Horas], [Total Horas], [Total Geral] FROM Treinamento, TurmaAl WHERE CodTrein=" & Me!CodTrein & ";", dbFailOnError
Me.Requery
End If
End If
Exit_Comando148_Click:
Exit Sub
Err_Comando148_Click:
MsgBox Err.Description
Resume Exit_Comando148_Click
End Sub
O comando parece funcionar, ele cria a quantidade de registros corretamente e os valores dos subformulários corretamente, porém ele repete os campos do formulário principal (Treinamento) em todos os registros, ele registra apenas o 1º resultado que encontra.
Alguem saberia me dizer onde está o erro? Já pesquisei muito sobre e não encontrei resposta.