AJUDA EM VB 6

CARLOSBUTLER 31/01/2013 15:22:42
#418498
Boa tarde. Estou desenvolvendo um sistema de vendas em Visual Basic 6 (para estudo e aprender mais sobre VB) e ao digitar um valor de preço nos textbox não aparece o valor completo. Por exemplo ao invés de 1,20 aparece 1,2. Como fazer para que apareça sempre o valor completo?
E outra dúvida. Nessa aplicação, tenho um form que é como se fosse uma nota de entrega e gostaria que ao imprimir essa nota apareça duas notas iguais na mesma folha, isso é possível? Obrigado.
KERPLUNK 31/01/2013 16:56:12
#418511
Citação:

Boa tarde. Estou desenvolvendo um sistema de vendas em Visual Basic 6 (para estudo e aprender mais sobre VB) e ao digitar um valor de preço nos textbox não aparece o valor completo. Por exemplo ao invés de 1,20 aparece 1,2. Como fazer para que apareça sempre o valor completo?


Está usando maskedit? Se sim, qual a máscara?

CARLOSBUTLER 31/01/2013 17:05:00
#418512
Não estou usando maskedit.
KERPLUNK 31/01/2013 17:08:15
#418514
Então aparece onde? Você digita no textbox e sai dela e sem mais nem menos o valor é alterado? Isso é muito estranho...
CARLOSBUTLER 31/01/2013 17:22:35
#418516
Exatamente. Tentei colocar o maskedit e acontece o mesmo problema. Quando coloquei o maskedit usei o currency (afinal, estou usando o vb6).
PAULOPROMARQUES 31/01/2013 17:57:59
#418524
Private Sub txtSubTotal_LostFocus()
SubTotal = Format(SubTotal, [Ô]#,##0.00[Ô])
End Sub

substitua txtSubTotal.text pela sua variável
CARLOSBUTLER 31/01/2013 18:45:25
#418528
PAULOPROMARQUES, muito obrigado pela ajuda, mas infelizmente continua a mesma coisa.
PAULOPROMARQUES 31/01/2013 19:09:17
#418529
Estranho, se vc criou um textbox deveria funcionar.

*** Esta rotina força a formatação de valores monetários. Substituir variável txtCusto.text pelo nome da sua variável.
Private Sub txtCusto_LostFocus()
txtCusto.Text = Format(txtCusto.Text, [Ô]#,##0.00[Ô])
End Sub
****************************************************************

*** Esta rotina mostra o valor Cadastrado.
Private Sub MostrarProdutos()
If Not IsNull(rsProd([Ô]Venda[Ô])) Then
txtCusto.Text = Format(rsProd!Venda, [Ô]#,##0.00[Ô])
Else
txtCustor.Text = Empty
End If
......
......

End Sub

*** rsProd é o nome do arq. que armazena o conteúdo da variável txtCusto.text
OMAR2011 31/01/2013 19:13:19
#418530
é estranho porque,sem nenhuma codificação
não da para entender.Coloque seu código ai
o pessoal vai analisar.
CARLOSBUTLER 31/01/2013 22:07:43
#418535
Também não foi dessa vez.

Segue uma parte do código:

Public Key As Integer

Private Sub cmdexit_Click()
Unload Me
End Sub

Private Sub CmdImprimir_Click()

Form2.LNP.Caption = TXTNP.Text
Form2.LBcliente.Caption = TxtCliente.Text
Form2.LBEndereco.Caption = TxtEndereco.Text
Form2.LBCidade.Caption = TxtCidade.Text
Form2.LBBairro.Caption = TxtBairro.Text
Form2.LBTelefone.Caption = TxtTelefone.Text
Form2.LBREferencia.Caption = TxtReferencia.Text
For i = 1 To Key
Form2.LPRODUTO(Form2.LPRODUTO.UBound).Caption = FG1.TextMatrix(i, 1)
Form2.LUP(Form2.LUP.UBound).Caption = FG1.TextMatrix(i, 3)
Form2.LQTY(Form2.LQTY.UBound).Caption = FG1.TextMatrix(i, 2)
Form2.LTOT(Form2.LTOT.UBound).Caption = FG1.TextMatrix(i, 4)
If (Form2.LPRODUTO.UBound = 0) Then

GoTo SA
End If
[ô] Nome do produto
Form2.LPRODUTO(Form2.LPRODUTO.UBound).Left = Form2.LPRODUTO(Form2.LPRODUTO.UBound - 1).Left
Form2.LPRODUTO(Form2.LPRODUTO.UBound).Top = Form2.LPRODUTO(Form2.LPRODUTO.UBound - 1).Top + 250
Form2.LPRODUTO(Form2.LPRODUTO.UBound).Visible = True
[ô]UNIT PRICE
Form2.LUP(Form2.LUP.UBound).Left = Form2.LUP(Form2.LUP.UBound - 1).Left
Form2.LUP(Form2.LUP.UBound).Top = Form2.LUP(Form2.LUP.UBound - 1).Top + 250
Form2.LUP(Form2.LUP.UBound).Visible = True
[ô]QUANTITY
Form2.LQTY(Form2.LQTY.UBound).Left = Form2.LQTY(Form2.LQTY.UBound - 1).Left
Form2.LQTY(Form2.LQTY.UBound).Top = Form2.LQTY(Form2.LQTY.UBound - 1).Top + 250
Form2.LQTY(Form2.LQTY.UBound).Visible = True
[ô]TOTAL PRICE
Form2.LTOT(Form2.LTOT.UBound).Left = Form2.LTOT(Form2.LTOT.UBound - 1).Left
Form2.LTOT(Form2.LTOT.UBound).Top = Form2.LTOT(Form2.LTOT.UBound - 1).Top + 250
Form2.LTOT(Form2.LTOT.UBound).Visible = True
SA:
Load Form2.LPRODUTO(Form2.LPRODUTO.UBound + 1)
Load Form2.LUP(Form2.LUP.UBound + 1)
Load Form2.LQTY(Form2.LQTY.UBound + 1)
Load Form2.LTOT(Form2.LTOT.UBound + 1)

Form2.Line3.Y2 = Form2.Line3.Y2 + 250 [ô] Aumenta as linhas para baixo
Form2.Line4.Y2 = Form2.Line4.Y2 + 250
Form2.Line5.Y2 = Form2.Line5.Y2 + 250
Form2.Line6.Y2 = Form2.Line6.Y2 + 250
Form2.Line7.Y2 = Form2.Line7.Y2 + 250
Form2.Frame1.Top = Form2.Frame1.Top + 250
Next i
Form2.Show vbModal
End Sub

Private Sub Command1_Click()
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Set con = New ADODB.Connection

con.Open (Constring)

rs.Open [Ô]Select * from Produtos where Produto = [ô][Ô] & Me.TxtProduto & [Ô][ô][Ô], con, adOpenKeyset, adLockOptimistic
If rs.EOF <> True And rs.BOF <> True Then

With rs
.Fields([Ô]Qty[Ô]) = rs.Fields([Ô]Qty[Ô]) - Val(Me.txtqty)
If rs.Fields([Ô]qty[Ô]) <= -1 Then
MsgBox [Ô]Item nao disponível [Ô], vbInformation
Exit Sub
End If
.Update
End With
Set rs = Nothing
End If
If TxtProduto.Text = [Ô][Ô] Then
MsgBox [Ô]Informe o produto[Ô], vbCritical
TxtProduto.SetFocus
Else
If txtqty.Text = [Ô][Ô] Then
MsgBox [Ô]Informe a quantidade[Ô], vbInformation
txtqty.SetFocus

Else
If (Key = 0) Then
Key = 1
Else
Key = Key + 1
End If
FG1.Rows = Key + 1
FG1.TextMatrix(Key, 1) = TxtProduto.Text
FG1.TextMatrix(Key, 2) = txtqty.Text
FG1.TextMatrix(Key, 3) = txtunitprice.Text
FG1.TextMatrix(Key, 4) = txttotalprice.Text

rs1.Open [Ô]Select * from Vendas[Ô], con, adOpenKeyset, adLockOptimistic

With rs1
.AddNew
.Fields([Ô]Produto[Ô]) = Me.TxtProduto
.Fields([Ô]Preco[Ô]) = Me.txtunitprice
.Fields([Ô]Total[Ô]) = Me.txttotalprice
.Fields([Ô]Qty[Ô]) = Me.txtqty
.Fields([Ô]Vendedor[Ô]) = frmLogin.txtUserName.Text
.Fields([Ô]Data[Ô]) = Me.txtTDate
.Fields([Ô]Cliente[Ô]) = Me.TxtCliente
.Fields([Ô]Endereco[Ô]) = Me.TxtEndereco
.Fields([Ô]Telefone[Ô]) = Me.TxtTelefone
.Update
.close
End With
TxtProduto.Text = [Ô][Ô]
txtqty.Text = [Ô][Ô]
txtunitprice.Text = [Ô][Ô]
txttotalprice.Text = [Ô][Ô]
txtbalance = [Ô][Ô]
Set rs = Nothing
Set con = Nothing

Dim TOT As Double
For i = 1 To Key
TOT = TOT + FormatNumber(FG1.TextMatrix(i, 4))
Next i
TXTNP.Text = TOT
CmdImprimir.Enabled = True
End If
End If
End Sub

Private Sub Form_Load()

Me.txtTDate = Date

End Sub

Private Sub MSFlexGrid1_Click()
Set rs = New ADODB.Recordset
Set con = New ADODB.Connection
con.Open (Constring)
rs.Open [Ô]SELECT * FROM Produtos WHERE Produto Like [ô]%[Ô] & Me.TxtProduto & [Ô]%[ô][Ô], con, adOpenStatic, adLockOptimistic
If rs.EOF <> True And rs.BOF <> True Then
Me.txtunitprice = rs.Fields([Ô]Preco[Ô])
Me.txtbalance = rs.Fields([Ô]Qty[Ô])
Me.TxtProduto = rs.Fields(0)
MSFlexGrid1.Visible = False
End If
End Sub

Private Sub MSFlexGrid2_Click()
Set rs = New ADODB.Recordset
Set con = New ADODB.Connection
con.Open (Constring)
rs.Open [Ô]SELECT * FROM Clientes WHERE Nome Like [ô]%[Ô] & Me.TxtCliente & [Ô]%[ô][Ô], con, adOpenStatic, adLockOptimistic
If rs.EOF <> True And rs.BOF <> True Then
Me.TxtEndereco = rs.Fields([Ô]Endereco[Ô])
Me.TxtBairro = rs.Fields([Ô]Bairro[Ô])
Me.TxtTelefone = rs.Fields([Ô]Telefone[Ô])
Me.TxtCidade = rs.Fields([Ô]Cidade[Ô])
Me.TxtReferencia = rs.Fields([Ô]Referencia[Ô])
Me.TxtCliente = rs.Fields(0)
MSFlexGrid2.Visible = False
End If
End Sub

Private Sub TxtCliente_Change()
Set rs = New ADODB.Recordset
Set con = New ADODB.Connection

If TxtCliente.Text = [Ô][Ô] Then
MSFlexGrid2.Rows = 2
MSFlexGrid2.TextMatrix(MSFlexGrid2.Rows - 1, 1) = [Ô][Ô]
MSFlexGrid2.Rows = MSFlexGrid2.Rows - 1
Exit Sub
End If

MSFlexGrid2.Rows = 2

con.Open (Constring)
rs.Open [Ô]SELECT * FROM Clientes WHERE Nome Like [ô]%[Ô] & TxtCliente.Text & [Ô]%[ô][Ô], con, adOpenStatic, adLockOptimistic

Do While Not rs.EOF
MSFlexGrid2.TextMatrix(MSFlexGrid2.Rows - 1, 1) = rs.Fields(0).Value
MSFlexGrid2.Rows = MSFlexGrid2.Rows + 1
rs.MoveNext
MSFlexGrid2.Visible = True
Loop

MSFlexGrid2.Rows = MSFlexGrid2.Rows - 1
End Sub

Private Sub TxtDinheiro_Change()
TxtTroco.Text = TxtDinheiro.Text - TXTNP.Text
End Sub

Private Sub TXTNP_LostFocus()
TXTNP = Format(TXTNP, [Ô]#,##0.00[Ô])
End Sub

Private Sub TxtProduto_Change()
Set rs = New ADODB.Recordset
Set con = New ADODB.Connection

If TxtProduto.Text = [Ô][Ô] Then
MSFlexGrid1.Rows = 2
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = [Ô][Ô]
MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
Exit Sub
End If

MSFlexGrid1.Rows = 2

con.Open (Constring)
rs.Open [Ô]SELECT * FROM Produtos WHERE Produto Like [ô]%[Ô] & TxtProduto.Text & [Ô]%[ô][Ô], con, adOpenStatic, adLockOptimistic

Do While Not rs.EOF
MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, 1) = rs.Fields(0).Value
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
rs.MoveNext
MSFlexGrid1.Visible = True
Loop

MSFlexGrid1.Rows = MSFlexGrid1.Rows - 1
End Sub


Private Sub Txtqty_Change()
Me.txttotalprice.Text = Val(Me.txtqty) * FormatNumber(Me.txtunitprice)
End Sub


Private Sub txttotalprice_LostFocus()
txttotalprice.Text = Format(txttotalprice.Text, [Ô]#,##0.00[Ô])
End Sub

Private Sub txtunitprice_LostFocus()
txtunitprice.Text = Format(txtunitprice.Text, [Ô]#,##0.00[Ô])
End Sub

*****************************************************************************************************

Esta é a tela de vendas, mas outras telas que também precisam de valores monetários, também estão com o mesmo problema.
FEDERHEN 01/02/2013 08:04:33
#418554
a propriedade MaxLenght está correta?
Página 1 de 2 [11 registro(s)]
Faça seu login para responder