Carregar Textbox com seleção Combobox  [Resolvido]

Processos de importação e exportação de dados, interação entre o Excel e demais softwares, interface com Banco de dados, SQL.

Carregar Textbox com seleção Combobox  [Resolvido]

Mensagempor ACG » Qui Out 31, 2019 11:44 am

Bom dia a todos.

Estou com 02 duvidas em meu projeto, e elas são a seguintes:

1- no projeto possui uma "combobox" que referencia uma tabela access conforme código abaixo.

Código: Selecionar todos
sql = "SELECT produto FROM insumocad"
    sql = sql & " ORDER BY produto"
   
    cx.Conectar
   
    Set banco = New ADODB.Recordset
   
    banco.Open sql, cx.conn
   
    Do While Not banco.EOF
        Me.cboDescriçao.AddItem banco!produto
        banco.MoveNext
    Loop
    cx.Desconectar
    Set banco = Nothing


Este procedimento funciona corretamente, contudo preciso que uma textbox seja carregada
com o valor correspondente ao produto selecionado da tabela, já que os valores também estão
na mesma tabela access. Na internet não encontrei nada sobre o assunto.

2- em outro momento gostaria de criar um Modulo de Classe ou Modulo que aplica-se
todas as formatações diretamente no projeto sem a necessidade de aplica-las no formulário.
Já tentei com diversas sugestões encontradas na internet, e nada.

Exemplo:
Código: Selecionar todos
txtCustoNF.Value = Fix(txtTotal1.Value) + Fix(txtTotal2.Value) + Fix(txtTotal3.Value) + Fix(txtTotal4.Value) + Fix(txtTotal5.Value) + Fix(txtTotal6.Value) + Fix(txtTotal7.Value) + Fix(txtTotal8.Value) + Fix(txtTotal9.Value) + Fix(txtTotal10.Value) + Fix(txtTotal11.Value) + Fix(txtTotal12.Value) + Fix(txtTotal13.Value) + Fix(txtTotal14.Value) + Fix(txtTotal15.Value)


Desde já agradeço qualquer ajuda, pois neste inicio neste aprendizado tudo é novo.

Abçs.

Fiquem com Deus.
Avatar do usuário
ACG
Membro
Membro
 
Mensagens: 9
Registrado em: Sex Nov 10, 2017 3:49 pm
Has thanked: 1 time
Have thanks: 0 time

{ SO_SELECT }

Re: Carregar Textbox com seleção Combobox

Mensagempor wagner » Qui Nov 07, 2019 4:14 pm

ACG,

Boa tarde!

Com relação a primeira parte da sua dúvida, não é no mesmo procedimento que você vai carregar o valor do produto pois no código específico que carrega a descrição dos produtos no combo é feita uma varredura (laço do while) em todos os produtos e os mesmos são carregados no combo. Para mostrar o valor dos produtos, você deve fazer um código semelhante, associado ao evento Change do comboBox, mais ou menos assim:
Código: Selecionar todos
sql = "SELECT produto, valor FROM insumocad" 'Verifique se o nome do campo valor é escrito dessa forma mesmo
   
    cx.Conectar
   
    Set banco = New ADODB.Recordset
   
    banco.Open sql, cx.conn
   
    Do While Not banco.EOF
        If Me.cboDescriçao.Value = banco!produto then
             Me.Txt_Valor.Text = banco!valor 'Verifique se o nome da caixa de texto se chama Txt_Valor
             Exit Do
        End If
        banco.MoveNext
    Loop
    cx.Desconectar
    Set banco = Nothing


A segunda parte da sua demanda, confesso que não entendi o que você quer.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5547
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 102 times
Have thanks: 2356 times

Re: Carregar Textbox com seleção Combobox

Mensagempor ACG » Sáb Nov 09, 2019 10:58 am

Bom dia!
Wagner Morel

Desde já agradeço muito a força, e vou aprimorar o código para a 1ª duvida com sua dica.
Quanto a segunda duvida tentarei explicar melhor o objetivo.

Bom possuo 15 textboxes que apresentam resultados de multiplicação isolado em cada uma,
e outra textboxSOMA conterá a soma das 15 textboxes, contudo ao colocar a formula dentro
do formulário

Código: Selecionar todos
txtCustoNF.Value = Fix(txtTotal1.Value) + Fix(txtTotal2.Value) + Fix(txtTotal3.Value) + Fix(txtTotal4.Value) + Fix(txtTotal5.Value) + Fix(txtTotal6.Value) + Fix(txtTotal7.Value) + Fix(txtTotal8.Value) + Fix(txtTotal9.Value) + Fix(txtTotal10.Value) + Fix(txtTotal11.Value) + Fix(txtTotal12.Value) + Fix(txtTotal13.Value) + Fix(txtTotal14.Value) + Fix(txtTotal15.Value)


o resultado ao abrir o formulário é o esperado, mas não se mantem quando se busca o próximo registro.
Diante disto acredito que a criação de um modulo simples ou modulo de classe seja a solução onde a cada seleção
de registro a formula seja executada automaticamente na textboxSOMA sem a necessidade da formula dentro
do formulário.

Mais uma vez agradeço a enorme ajuda.
Fique com Deus.

Atenciosamente.

André Guedelha
Avatar do usuário
ACG
Membro
Membro
 
Mensagens: 9
Registrado em: Sex Nov 10, 2017 3:49 pm
Has thanked: 1 time
Have thanks: 0 time

Re: Carregar Textbox com seleção Combobox

Mensagempor rlm » Sáb Nov 09, 2019 12:33 pm

"...o resultado ..." Ao abrir o formulário provavelmente a rotina que dispara o calculo e executada, por isso do resultado esperado.
"...acredito que a criação de um..." Independentemente de onde for alocada a soma, se a mesma não for devidamente "chamada" não irá produzir efeito algum.
Primeiro deve definir/decidir quando a txtCustoNF deva ser calculada/recalculada; como não conhecemos seu projeto/modelo cabe a ti essa decisão/definição.
definido esse ponto pode-se: Montar uma rotina no próprio modulo do formulário (creio eu ser o mais recomendado)
algo +/- assim:
Código: Selecionar todos
Private Sub soma()
Dim stTotal As Double, x As Integer
For x = 1 To 15
stTotal = stTotal + Fix(Controls("txtTotal" & x).Value)
Next
txtCustoNF.Value = stTotal
End Sub

Para chamar a execução algo +/- assim
(apenas exemplo)
[code]Private Sub cboDescriçao_Change()
CALL soma
End Sub
Reinaldo
Garça - SP / SCS - SP
Avatar do usuário
rlm
Ninja do Excel
Ninja do Excel
 
Mensagens: 414
Registrado em: Qui Out 16, 2014 12:30 pm
Has thanked: 31 times
Have thanks: 185 times

Re: Carregar Textbox com seleção Combobox

Mensagempor ACG » Ter Nov 12, 2019 1:28 pm

Boa tarde
Desde já agradeço imensamente as ajudas, e com seus apoios criei o seguinte código que esta funcionando.

Código: Selecionar todos
'------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()

    sql = "SELECT Codigo FROM InsumoInv"
    sql = sql & " ORDER BY Codigo"
   
    cx.Conectar
   
    Set banco = New ADODB.Recordset
   
    banco.Open sql, cx.conn
   
    Do While Not banco.EOF
        Me.cboCod1.AddItem banco!Codigo
        Me.cboCod2.AddItem banco!Codigo
        Me.cboCod3.AddItem banco!Codigo
        Me.cboCod4.AddItem banco!Codigo
        Me.cboCod5.AddItem banco!Codigo
        Me.cboCod6.AddItem banco!Codigo
        Me.cboCod7.AddItem banco!Codigo
        Me.cboCod8.AddItem banco!Codigo
        Me.cboCod9.AddItem banco!Codigo
        Me.cboCod10.AddItem banco!Codigo
        Me.cboCod11.AddItem banco!Codigo
        Me.cboCod12.AddItem banco!Codigo
        Me.cboCod13.AddItem banco!Codigo
        Me.cboCod14.AddItem banco!Codigo
        Me.cboCod15.AddItem banco!Codigo
   
        banco.MoveNext
    Loop
    cx.Desconectar
    Set banco = Nothing
'------------------------------------------------------------------------------------------


e já no código no Combobox ficou assim.

Código: Selecionar todos
Private Sub cboCod1_change()
   
    Dim cx As New ClasseConexao
    Dim banco As ADODB.Recordset
    Dim sql As String
   
    sql = "SELECT Codigo, Produto, UnidadeEstoque, PerdaTotal, EstoqueMaximo, EstoqueMinimo, Resuprimento, SomaDeQtdCompra, SomaDeTotCompra, SomaDeQtdVenda, SomaDeTotVenda, EstoqueQtd, EstoqueVal, CustoMedio FROM InsumoInv"
    sql = sql & " WHERE Codigo = " & Me.cboCod1
   
    Set banco = New ADODB.Recordset
   
    cx.Conectar
   
    On Error Resume Next
    banco.Open sql, cx.conn
   
    Dim Produto As String
    Dim EstoqueQtd As String
    Dim CustoMedio As String
   
    Produto = banco.Fields("Produto")
    EstoqueQtd = banco.Fields("EstoqueQtd")
    CustoMedio = banco.Fields("CustoMedio")
   
    Me.cboDescriçao1.Text = Produto
    Me.txtEst1.Text = EstoqueQtd
    Me.txtValor1.Text = CustoMedio
   
    Set banco = Nothing
    cx.Desconectar

End Sub


Este ultimo código apliquei em cada um dos Comboboxes do formulário.

Grato.

Fiquem todos com Deus.
Avatar do usuário
ACG
Membro
Membro
 
Mensagens: 9
Registrado em: Sex Nov 10, 2017 3:49 pm
Has thanked: 1 time
Have thanks: 0 time


Voltar para Integração Excel & Access

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes