CODIGO COM NOME DO PRODUTO
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+
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+
Espero que ajude:
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.
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.
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.
Text1.Text = Val(combo1.Text)
No seu caso como os quatro número aparecem no inÃcio do texto, o Val retornará apenas estes.
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.
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.
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+
é 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+
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.
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.
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 !!!
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?
"Select * from Tabela where CodigoProduto = '" & VarCodigo & "'"
e depois atribuir ao seus texts.:
txt1.text = Rs.Descricao
txt2.text = Rs.VRunitario .... e assim vai.
Entendeu?
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 ???
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 ???
tem como postar o código?
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+
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+
Tópico encerrado , respostas não são mais permitidas