CODIGO COM NOME DO PRODUTO

LREZANI 27/07/2005 08:12:34
#96155
Apague o código da rotina GotFocus e mude para a rotina click:
  
Private Sub cboCodigo_Click()
SendKeys "{F4}"
If cboCodigo <> "" Then
Dim WS As Workspace
Dim query As String
Dim bco As Database
Set WS = DBEngine.Workspaces(0)
Set bco = WS.OpenDatabase(App.Path & "\Estoque.Mdb", False, False)
query = "Select * From Cadastro where Codigo = '" & [txt-color=#0000ff]Val(cboCodigo)[/txt-color] & "'"
Set DYN = bco.OpenRecordset(query)
If Not DYN.EOF Then
txtVUnit = DYN("VUnit") & ""
bco.Close
End If
End If
End Sub
'Mude a linha query tambem na rotina LostFocus.

Acho que assim funciona pois a função Val() traz apenas os números do combo e transforma-os em Double.
Duvida sanada=tópico encerrado, OK?
TRUHILLO 27/07/2005 10:28:01
#96184
Tem essa função que eu encontrei aqui no VBMania e uso para retirar números de qualquer string.

Public Function GetNums(ByVal stTexte As String) As String
Dim lgPos As Long, lgLen As Long, stNewTxt As String
stNewTxt = Trim$(stTexte)
lgLen = Len(stNewTxt): lgPos = 1
Do While lgPos <= lgLen
If InStr("0123456789", Mid$(stNewTxt, lgPos, 1)) = 0 Then
stNewTxt = Left$(stNewTxt, lgPos - 1) & Right$(stNewTxt, lgLen - lgPos)
lgLen = lgLen - 1
Else
lgPos = lgPos + 1
End If
Loop
GetNums = stNewTxt
End Function


Funciona perfeitamente.
LEANDRO.LUIZ 27/07/2005 12:53:49
#96211
Mude sua sub lost focus para isso.:


Private Sub cboCodigo_LostFocus()

Dim i As Integer
Dim VarCodigo as String
For i = 1 To Len( cboCodigo.Text)
If Mid(Combo1.Text, i, 1) = "|" Then Exit Sub
VarCodigo = VarCodigo & cstr(Mid( cboCodigo, i, 1) )
Next i

If cboCodigo <> "" Then
Dim WS As Workspace
Dim query As String
Dim bco As Database
Set WS = DBEngine.Workspaces(0)
Set bco = WS.OpenDatabase(App.Path & "\Estoque.Mdb", False, False)
query = "Select * From Cadastro where Codigo = '" & VarCodigo & "'"
Set DYN = bco.OpenRecordset(query)
If Not DYN.EOF Then
cboCodigo = DYN("Codigo") & ""
txtProduto = DYN("Produto") & ""

If txtVUnit <> "" Then
txtVUnit = DYN("VUnit") & ""
End If

txtQtde = DYN("Qtde") & ""
txtTotal = DYN("Total") & ""
bco.Close
End If
End If

txtVUnit = Format(txtVUnit, "#,##.00")
txtTotal = Format(txtVUnit * txtQtde, "#,##.00")
End Sub

acho que assim resolve seu problema.....espero ter ajudado
Página 2 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas