Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

soloplayer

Somar campos Valores

Recommended Posts

Olá amigos tenho um pequeno problema, tenho uma aplicação para banco e por nunca ter mexido com isso não sei se estoo fazendo certo, sei que o resultado esta dando errado, tenho variaveis que serão do tipo real que são as seguintes:

 

Dim porcentagem As SingleDim total As SingleDim parcela6to As SingleDim parcela6 As SingleDim parcela12to As SingleDim parcela12 As SingleDim parcela24to As SingleDim parcela24 As SingleDim parcela32to As SingleDim parcela32 As Single

ai tenho o botão que ira calcular os valores que estão assim:

Public Sub calcular()zerarIf cmbparcelas = "6" Then	zerar	porcentagem = "9"	parcela6to = Format$(msktotal)	parcela6 = Format$(cmbparcelas)	result = Format$(parcela6to / parcela6)	mskparcelas = result + (result * porcentagem / 100)	msk1.Visible = True	msk2.Visible = True	msk3.Visible = True	msk4.Visible = True	msk5.Visible = True	msk6.Visible = True		msktotalparcelas.Visible = True		msk1 = result + (result * (porcentagem / 100))	msk2 = result + (result * (porcentagem / 100))	msk3 = result + (result * (porcentagem / 100))	msk4 = result + (result * (porcentagem / 100))	msk5 = result + (result * (porcentagem / 100))	msk6 = result + (result * (porcentagem / 100))	msktotalparcelas = Format$(Val(msk1) + Val(msk2) + Val(msk3) + Val(msk4) + Val(msk5) + Val(msk6))ElseIf cmbparcelas = "12" Then	zerar	porcentagem = "9"	parcela12to = Format(msktotal)	parcela12 = Format$(cmbparcelas)	result = Format$(parcela12to / parcela12)	mskparcelas = result + (result * porcentagem / 100)		msk1.Visible = True	msk2.Visible = True	msk3.Visible = True	msk4.Visible = True	msk5.Visible = True	msk6.Visible = True	msk7.Visible = True	msk8.Visible = True	msk9.Visible = True	msk10.Visible = True	msk11.Visible = True	msk12.Visible = True	msktotalparcelas.Visible = True		msk1 = result + (result * (porcentagem / 100))	msk2 = result + (result * (porcentagem / 100))	msk3 = result + (result * (porcentagem / 100))	msk4 = result + (result * (porcentagem / 100))	msk5 = result + (result * (porcentagem / 100))	msk6 = result + (result * (porcentagem / 100))	msk7 = result + (result * (porcentagem / 100))	msk8 = result + (result * (porcentagem / 100))	msk9 = result + (result * (porcentagem / 100))	msk10 = result + (result * (porcentagem / 100))	msk11 = result + (result * (porcentagem / 100))	msk12 = result + (result * (porcentagem / 100))	'msktotalparcelas = mskparcelas * cmbparcelas	msktotalparcelas = (Val(msk1) + Val(msk2) + Val(msk3) + Val(msk4) + Val(msk5) + Val(msk6) + Val(msk7) + Val(msk8) + Val(msk9) + Val(msk10) + Val(msk11) + Val(msk12))End IfEnd IfEnd Sub'AQUI NESTA PARTE ESTOU IMPLEMENTANDO MINHAS DATAS PARA PODER GERAR AS PARCELASPrivate Sub LaVolpeButton1_Click()Dim data As String	data = InputBox("Digite uma data : Use o formato: DD/MM/AAAA (15/11/2003) ", "Informe a Data")If data <> "" Then	If IsDate(data) Then	   MsgBox "Faltam " & DateDiff("d", Now, data) & " dias " & " até " & data, vbInformation, "Data atual => " & Format(Now(), "dd/mm/yyyy")	Else		MsgBox " Data Inválida ", vbCritical	End IfEnd IfEnd Sub

Nestes trechos acima ele pucha meus valores perfeitamente mas nesta parte que soma tudo ele não calcula a MSKTOTALPARCELAS corretamente tanto no IF de 6 parcelas quanto no IF de 12, meu problema esta nas linha abaixo:

 

msk1 = result + (result * (porcentagem / 100))	msk2 = result + (result * (porcentagem / 100))	msk3 = result + (result * (porcentagem / 100))	msk4 = result + (result * (porcentagem / 100))	msk5 = result + (result * (porcentagem / 100))	msk6 = result + (result * (porcentagem / 100))	msktotalparcelas = Format$(Val(msk1) + Val(msk2) + Val(msk3) + Val(msk4) + Val(msk5) + Val(msk6))

Help ae o valor que mostra nao esta dando certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema está sendo com número com vírgula?Caso sim, é porque nos EUA é usado o ponto ao invés da vírgula.Ex.: 10,02 <-- Brasil 10.02 <-- EUAE uma dica: Você pode evitar aquele monte de linha na declaração das variaveis fazendo assim: dim var1,var2,var3 as single

Compartilhar este post


Link para o post
Compartilhar em outros sites

E uma dica: Você pode evitar aquele monte de linha na declaração das variaveis fazendo assim: dim var1,var2,var3 as single

Falai Luiz beleza,

 

sobre esta parte de declarar tudo na mesma linha, infelizmente se fizer isso as variaveis var1 e var2 vão ser do tipo variant, aceitando strings e tudo mais, somente a variavel var3 ira ficar como single (sei disso pq. uma vez me laskei com isso...heheh)

 

veja na imagem do vb:

Imagem Postada

 

uma alternativa para declarar na mesma linha seria assim:

Dim var1 As Single, var2 As Single, var3 As Single 'desta forma as 3 variaveis irão ficar como Single

 

já no visual studio .net no C# e VB.net este problema não mais ocorre, se declararmos:

C# --> int var1, var2, var3; //as 3 variaveis irão ser definidar como int

vb.net --> Dim var1, var2, var3 As Integer 'as 3 variaveis irão ser definidar como int

 

 

 

falows

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para descobrir se está com ponto ou vírgula, é só ver a máscara da MaskEditBox...

Caso realmete esteja. faça o seguinte:

porcentagem = 9	parcela6to = replace(Format$(msktotal),",",".")	parcela6 = replace(Format$(cmbparcelas),",",".")	result = replace(Format$(parcela6to / parcela6),",",".")

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.