CODIGO COM NOME DO PRODUTO

MARCOSAV 26/07/2005 00:35:05
#95987
Ae galera, um probleminha aki...
Tenho um form com um combo que lista todos os códigos e nomes dos produtos do meu bd... + ou - assim : 0125 | Emborrachado macio
Onde 0125 = código gravado na tabela
e Emborrachado macio = nome do produto referente a esse código (isso tudo aparece no mesmo combo, ok ???) Pergunto: Como faço para quando eu clicar(ou dar um ENTER) no código, o programa entenda que deve ler apenas os Números (ou seja o próprio código), para preencher o restante dos campos do form ???
OBS: Os códigos terão sempre 4 dígitos...

Brigaduuuuuuuuu...
T+
LREZANI 26/07/2005 07:24:52
#95991
Resposta escolhida
Espero que ajude:
   
Private Sub Combo1_Click()
Dim RetCod As String
RetCod = Mid(Combo1, 1, 5)
Label1.Caption = RetCod
End Sub

Onde Mid posiciona o cursor no primeiro caracter "Mid(Combo1, 1, 5)", e seleciona á partir dele 5 caracteres "Mid(Combo1, 1, 5)".
Duvida sanada=tópico encerrado.
CEDAHMER 26/07/2005 08:23:11
#95993
De uma forma mais simples ainda você pode usar o seguinte:

Text1.Text = Val(combo1.Text)

No seu caso como os quatro número aparecem no início do texto, o Val retornará apenas estes.
LEANDRO.LUIZ 26/07/2005 08:34:51
#95995
Você também pode fazer assim.:

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

Fiz um loop no Combo, se a posição atual for o "| ( Pipe)" sai da função se não jogo o numeo na var.
MARCOSAV 26/07/2005 13:04:58
#96046
Aí, galera, tá quase lá...
é que no meu programa, o código está como "Texto" (tá faltando uma função pra converter isso - eu acho...)
Só que agora não sei onde colocar esta função (e qual função) ! ! !

Mas testei, e como disse, tá quase lá...

Me ajudem com esta conversão, por favor...

Desde sempre, agradeço

Abraço e T+
LEANDRO.LUIZ 26/07/2005 13:11:17
#96049
Faz assim.:

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

acho que assim funciona.
MARCOSAV 26/07/2005 16:10:22
#96083
Citação:

LEANDRO_LUIZ escreveu:
Faz assim.:

Dim i As Integer
Dim VarCodigo as StringFor i = 1 To Len(Combo1.Text)
If Mid(Combo1.Text, i, 1) = [Ô]|[Ô] Then Exit Sub
VarCodigo = VarCodigo & cstr(Mid(Combo1.Text, i, 1) )
Next i

acho que assim funciona.



LEANDRO, realmente nenhum erro é acusado pelo programa, só que dessa forma, os campos DESCRIÇÃO, VR UNITàRIO, QTDE e TOTAL não são carregados...

Alguma idéia ?!?!?!

Vlw, cara !!!
LEANDRO.LUIZ 26/07/2005 16:15:41
#96086
Você tem de fazer um select do Tipo.:
"Select * from Tabela where CodigoProduto = '" & VarCodigo & "'"

e depois atribuir ao seus texts.:
txt1.text = Rs.Descricao
txt2.text = Rs.VRunitario .... e assim vai.
Entendeu?
MARCOSAV 26/07/2005 16:31:01
#96090
Pois é, isso tudo já estava feito, tanto que nem alterei ( a não ser a variável, claro)...

Mesmo assim quando seleciono o código no combo (que aparece com o nome do produto), a operação pára por aí (exatamente como se eu não tivesse atribuído valores aos TXT's)

Não entendi ! ! !

E agora ???
LEANDRO.LUIZ 26/07/2005 16:59:40
#96097
tem como postar o código?
MARCOSAV 26/07/2005 23:27:17
#96142
Aí, LEANDRO, o código atual é este:

Private Sub Form_Load()

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 order by Codigo"
Set DYN = bco.OpenRecordset(query)
cboCodigo.Clear
While Not DYN.EOF
cboCodigo.AddItem DYN("Codigo") & " | " & DYN("Produto") & ""
DYN.MoveNext
Wend
bco.Close
End Sub
_________________________________________________________________________________
Private Sub cboCodigo_GotFocus()
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 = '" & cboCodigo & "'"
Set DYN = bco.OpenRecordset(query)
If Not DYN.EOF Then
txtVUnit = DYN("VUnit") & ""
bco.Close
End If
End If
End Sub
_________________________________________________________________________________
Private Sub cboCodigo_LostFocus()

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 = '" & cboCodigo & "'"
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

___________________________________________________________________________________________
Outra alternativa, poderia ser esta (se é que dá prá fazer...)

"AO PASSAR O MOUSE SOBRE QQER CÓ“DIGO LISTADO" no COMBO, o produto referente a esse código seria exibido automaticamente na caixa txtProduto, antes de ser efetivado no combo (antes do combo ser clicado ou ter o ENTER pressionado)... Seria interessante, mas tem como ???

Valeu

Abraço e T+
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas