Boa tarde a todos.
Depois de muito pestanejar, beber bastante café e claro alguns cigarros....chequei ao seguinte código:
Private Sub bt_salvar_Click()
Dim strSQL As String, strSQL1 As String, strSQL2 As String, strSQL3 As String
If MsgBox(" Deseja Cadastrar essa Conta a Receber ?", vbOKCancel + vbDefaultButton1 + vbInformation, "FÁSER CAR") = vbOK Then
'Se for Sim, então faz um Insert na tabela baixacr, somente aos campos correspondentes
If IsNull(Me.data1) Or IsNull(Me.valor1) Then Exit Sub
strSQL1 = "INSERT INTO baixaCR (Idcliente,Nome,Data1,Valor1) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data1, "mm\/dd\/yyyy") & "#, " & Me.valor1.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL
If IsNull(Me.data2) Or IsNull(Me.valor2) Then Exit Sub
strSQL1 = "INSERT INTO baixaCR (Idcliente,Nome,Data2,Valor2) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data2, "mm\/dd\/yyyy") & "#, " & Me.valor2.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL1
If IsNull(Me.data3) Or IsNull(Me.valor3) Then Exit Sub
strSQL2 = "INSERT INTO baixaCR (Idcliente,Nome,Data3,Valor3) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data3, "mm\/dd\/yyyy") & "#, " & Me.valor3.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL2
If IsNull(Me.data4) Or IsNull(Me.valor4) Then Exit Sub
strSQL3 = "INSERT INTO baixaCR (Idcliente,Nome,Data4,Valor4) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data4, "mm\/dd\/yyyy") & "#, " & Me.valor4.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL3
DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunCommand acCmdRefresh
DoCmd.GoToRecord , , acNewRec
DoCmd.Save
DoCmd.RunCommand acCmdRefresh
MsgBox " Cadastro de Conta a Receber.... salvo com sucesso !", vbOKOnly, "FÁSER CAR"
End If
End Sub
Só que o mesmo esta muito gigante ! Alguém conhece alguma forma de deixar ele mais simplificado ?
Ou seja, ele vai ser exportado para uma tabela e do jeito que se encontra, está gerando um registo para cada data/valor. Data2 e valor1 é um registro para o cliente. Data2 e valor2 é outro registro para o mesmo. E ei tenho um formulário com todas as data e valores para facilitar a baixa do pagamento. Da maneira que está, se o cliente fizer em 90dd para pagar, aparecerá 4 vezes o cliente, e para cada dia um registro.
Gostaria eu, de que fosse para um único registro na tabela, com a data1, data2, data3,data4 e valor1,valor2,valor3 e valor4 para o mesmo cliente.
Grato a todos.
Depois de muito pestanejar, beber bastante café e claro alguns cigarros....chequei ao seguinte código:
Private Sub bt_salvar_Click()
Dim strSQL As String, strSQL1 As String, strSQL2 As String, strSQL3 As String
If MsgBox(" Deseja Cadastrar essa Conta a Receber ?", vbOKCancel + vbDefaultButton1 + vbInformation, "FÁSER CAR") = vbOK Then
'Se for Sim, então faz um Insert na tabela baixacr, somente aos campos correspondentes
If IsNull(Me.data1) Or IsNull(Me.valor1) Then Exit Sub
strSQL1 = "INSERT INTO baixaCR (Idcliente,Nome,Data1,Valor1) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data1, "mm\/dd\/yyyy") & "#, " & Me.valor1.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL
If IsNull(Me.data2) Or IsNull(Me.valor2) Then Exit Sub
strSQL1 = "INSERT INTO baixaCR (Idcliente,Nome,Data2,Valor2) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data2, "mm\/dd\/yyyy") & "#, " & Me.valor2.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL1
If IsNull(Me.data3) Or IsNull(Me.valor3) Then Exit Sub
strSQL2 = "INSERT INTO baixaCR (Idcliente,Nome,Data3,Valor3) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data3, "mm\/dd\/yyyy") & "#, " & Me.valor3.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL2
If IsNull(Me.data4) Or IsNull(Me.valor4) Then Exit Sub
strSQL3 = "INSERT INTO baixaCR (Idcliente,Nome,Data4,Valor4) Values (" & Me.Idcliente.Value & ",'" & Me.Nome.Value & "', #" & Format(data4, "mm\/dd\/yyyy") & "#, " & Me.valor4.Value & ")"
DoCmd.RunCommand acCmdSaveRecord
CurrentDb.Execute strSQL3
DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunCommand acCmdRefresh
DoCmd.GoToRecord , , acNewRec
DoCmd.Save
DoCmd.RunCommand acCmdRefresh
MsgBox " Cadastro de Conta a Receber.... salvo com sucesso !", vbOKOnly, "FÁSER CAR"
End If
End Sub
Só que o mesmo esta muito gigante ! Alguém conhece alguma forma de deixar ele mais simplificado ?
Ou seja, ele vai ser exportado para uma tabela e do jeito que se encontra, está gerando um registo para cada data/valor. Data2 e valor1 é um registro para o cliente. Data2 e valor2 é outro registro para o mesmo. E ei tenho um formulário com todas as data e valores para facilitar a baixa do pagamento. Da maneira que está, se o cliente fizer em 90dd para pagar, aparecerá 4 vezes o cliente, e para cada dia um registro.
Gostaria eu, de que fosse para um único registro na tabela, com a data1, data2, data3,data4 e valor1,valor2,valor3 e valor4 para o mesmo cliente.
Grato a todos.