Bom dia a todos
Estou desenvolvendo um banco de dados e ele ta ficando bom e tal. Com a ajuda de vcs quero resolver um possível problema de duplicação de dados, só que na verdade não está duplicado. Vou explicar melhor.
Tenho um formulário Chamado Despesas. Nesse formulário vou cadastrando todas as despesas na produção de um livro.
Campos principais existentes
Cod - Codigo do livro
Serviços - Dependendo do Serviço que eu coloco aqui a formula do SubTotal muda. É nesse campo que tem 1 único valor que eu não quero que ele duplique, Chamado "Eventuais", pois esse eventuais é o formulário "CustoTotal" que insere no Formulário "Despesa", mais abaixo posto o código pra vcs entenderem melhor.
Qtde - Quantidade
Valor - Valor
SubTotal - Campo Calculado pelo VBA dependo do Tipo do Serviço a Formula Muda.
Pois bem meu campo coicidente entre os formulários é o Cod, nesse formulário o Cod está definido para duplicação Autorizada e o Formulário "CustoTotal" é um formulário que não da pra alterar, pois ele é um resultado de uma consulta que Soma tudo.
Agora vamos ao foco do tópico.
Como não deixar o Botão "Inserir Eventuais" que está no Formulário CustoTotal inserir mais de uma vez no mesmo Código que está formulário "Despesas"? Ex.: o Codigo 31281 só pode ter 1 Eventuais e diferente disso o mesmo Codigo pode ter outras despesas mesmo se duplicar.
Segue o Codigo do Botão "Inserir Eventuais" Localizado no CustoTotal.
Private Sub Calc_Margem_Click()
Dim resultado As VbMsgBoxResult
resultado = MsgBox("Inserir Eventuais?", vbYesNo, "Atenção")
If resultado = vbYes Then
Dim ct, Margem, Tiragem, unit, eventu As Double
Dim bco As Database
ct = Me.Total
Margem = Me.Margem
unit = Me.Custo_Unit
Tiragem = Me.Tiragem
eventu = unit + Margem
eventu = FormatNumber(eventu, 2)
eventu = eventu * Tiragem
eventu = FormatNumber(eventu, 2)
eventu = eventu - ct
eventu = FormatNumber(eventu, 2)
Dim L_Servicos As Recordset
Set bco = CurrentDb()
Set L_Servicos = bco.OpenRecordset("L_Servicos")
L_Servicos.AddNew
L_Servicos!Cod_L = Cod_L
L_Servicos!Serviços = "Eventuais"
L_Servicos!Qtde = 1
L_Servicos!Valor = eventu
L_Servicos!Subtotal = eventu
L_Servicos!PrecoUnit = unit + Margem
L_Servicos.Update
Else
Exit Sub
End If
End Sub
Estou desenvolvendo um banco de dados e ele ta ficando bom e tal. Com a ajuda de vcs quero resolver um possível problema de duplicação de dados, só que na verdade não está duplicado. Vou explicar melhor.
Tenho um formulário Chamado Despesas. Nesse formulário vou cadastrando todas as despesas na produção de um livro.
Campos principais existentes
Cod - Codigo do livro
Serviços - Dependendo do Serviço que eu coloco aqui a formula do SubTotal muda. É nesse campo que tem 1 único valor que eu não quero que ele duplique, Chamado "Eventuais", pois esse eventuais é o formulário "CustoTotal" que insere no Formulário "Despesa", mais abaixo posto o código pra vcs entenderem melhor.
Qtde - Quantidade
Valor - Valor
SubTotal - Campo Calculado pelo VBA dependo do Tipo do Serviço a Formula Muda.
Pois bem meu campo coicidente entre os formulários é o Cod, nesse formulário o Cod está definido para duplicação Autorizada e o Formulário "CustoTotal" é um formulário que não da pra alterar, pois ele é um resultado de uma consulta que Soma tudo.
Agora vamos ao foco do tópico.
Como não deixar o Botão "Inserir Eventuais" que está no Formulário CustoTotal inserir mais de uma vez no mesmo Código que está formulário "Despesas"? Ex.: o Codigo 31281 só pode ter 1 Eventuais e diferente disso o mesmo Codigo pode ter outras despesas mesmo se duplicar.
Segue o Codigo do Botão "Inserir Eventuais" Localizado no CustoTotal.
Private Sub Calc_Margem_Click()
Dim resultado As VbMsgBoxResult
resultado = MsgBox("Inserir Eventuais?", vbYesNo, "Atenção")
If resultado = vbYes Then
Dim ct, Margem, Tiragem, unit, eventu As Double
Dim bco As Database
ct = Me.Total
Margem = Me.Margem
unit = Me.Custo_Unit
Tiragem = Me.Tiragem
eventu = unit + Margem
eventu = FormatNumber(eventu, 2)
eventu = eventu * Tiragem
eventu = FormatNumber(eventu, 2)
eventu = eventu - ct
eventu = FormatNumber(eventu, 2)
Dim L_Servicos As Recordset
Set bco = CurrentDb()
Set L_Servicos = bco.OpenRecordset("L_Servicos")
L_Servicos.AddNew
L_Servicos!Cod_L = Cod_L
L_Servicos!Serviços = "Eventuais"
L_Servicos!Qtde = 1
L_Servicos!Valor = eventu
L_Servicos!Subtotal = eventu
L_Servicos!PrecoUnit = unit + Margem
L_Servicos.Update
Else
Exit Sub
End If
End Sub