Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
-
- Colaborador
- Mensagens: 28
- Registrado em: Seg Mai 14, 2018 11:09 am
Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Ola meus caros,
Me encontro com outro problema, estou desenvolvendo um sistema com um banco de dados em access, se observarem o arquivo sao varios bancos, o principal chamado "Produtos" onde e registrado cada tipo de produto, e os demais bancos apenas o referencial para determinado codigo, os codigos servem para gerar um codigo de barras nos textboxs "txtCod1, txtCod2...", colocando o valor do codigo de acordo com o texto encontrado nos outros textboxs "Produto, composicao...". O objetivo do sistema e o seguinte entao, quando escrito alguma coisa no "Produto", por exemplo "Camisa social FEMININA manga CURTA", ao clicar no botao do codigo de barras ele busca nos bancos, no caso, no banco "Produto" o qual diz que as palavras "Camisa social" sao equivalente ao codigo "03", entao ele coloca o codigo 03 no campo "txtCod1", e assim sucessivamente nos outros campos, se "MASCULINO" entao "02" no "txtCod2"...
Mas testei de todas formas e nao consigo fazer funcionar, espero que possam me ajudar!!!
Me encontro com outro problema, estou desenvolvendo um sistema com um banco de dados em access, se observarem o arquivo sao varios bancos, o principal chamado "Produtos" onde e registrado cada tipo de produto, e os demais bancos apenas o referencial para determinado codigo, os codigos servem para gerar um codigo de barras nos textboxs "txtCod1, txtCod2...", colocando o valor do codigo de acordo com o texto encontrado nos outros textboxs "Produto, composicao...". O objetivo do sistema e o seguinte entao, quando escrito alguma coisa no "Produto", por exemplo "Camisa social FEMININA manga CURTA", ao clicar no botao do codigo de barras ele busca nos bancos, no caso, no banco "Produto" o qual diz que as palavras "Camisa social" sao equivalente ao codigo "03", entao ele coloca o codigo 03 no campo "txtCod1", e assim sucessivamente nos outros campos, se "MASCULINO" entao "02" no "txtCod2"...
Mas testei de todas formas e nao consigo fazer funcionar, espero que possam me ajudar!!!
- Anexos
-
- SISTEMA DE PEDIDOS.rar
- (182.33 KiB) Baixado 211 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Onde diz "são vários bancos", na realidade e um único banco dividido em varias tabelas.
Em seu modelo são tabelas individuais, aparentemente sem correlação.
Recomendo ler/estudar sobre modelagem de banco de dados e relações entre tabelas; o que facilitará em muito seu uso/desenvolvimento da aplicação.
Em seu modelo são tabelas individuais, aparentemente sem correlação.
Recomendo ler/estudar sobre modelagem de banco de dados e relações entre tabelas; o que facilitará em muito seu uso/desenvolvimento da aplicação.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Na maneira que está desenhado sua aplicação/banco de dados, você precisa "desmontar" a descrição do produto em em pelo menos quatro "tópicos" e efetuar cinco consultas distintas a seu banco/tabelas --> Produto - Tipo - Genero - Extras - Composição. O que a meu ver e um pesadelo de programação
-
- Colaborador
- Mensagens: 28
- Registrado em: Seg Mai 14, 2018 11:09 am
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Olá Reinaldo, muito obrigado pela resposta!
Não imaginei que fosse tão dificil, somente fazer a busca em um dos bancos e puxar seu respectivo dado...
Porém se não funcionar assim, a minha ideia então é não usar o banco de dados, mas somente uma string na própria programação, algo como:
If cboProduto.Text = "Camisa social" Then
txtCod1.Text = "03"
End If
Acontece que o texto no cboProduto é "Camisa social FEMININA manga CURTA", então ele não funciona para detectar parte do texto e não puxa o "03" para o txtCod1, poderia me ajudar com isso? Acho que seria mais simples que usar as tabelas do banco de dados...
Não imaginei que fosse tão dificil, somente fazer a busca em um dos bancos e puxar seu respectivo dado...
Porém se não funcionar assim, a minha ideia então é não usar o banco de dados, mas somente uma string na própria programação, algo como:
If cboProduto.Text = "Camisa social" Then
txtCod1.Text = "03"
End If
Acontece que o texto no cboProduto é "Camisa social FEMININA manga CURTA", então ele não funciona para detectar parte do texto e não puxa o "03" para o txtCod1, poderia me ajudar com isso? Acho que seria mais simples que usar as tabelas do banco de dados...
-
- Colaborador
- Mensagens: 28
- Registrado em: Seg Mai 14, 2018 11:09 am
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Olá pessoal, ainda não consegui resolver, mas acebei de ter um ideia sobre como fazer, porém não estou conseguindo fechar meu raciocinio e espero que vcs tenham alguma ideia...
Como mencionado eu gostaria de pesquisar no banco sql parte do texto escrito em um Textbox, por exemplo no textbox esta escrito "Camisa social FEMININA manga CURTA" e na tabela do banco "Produtos" tenho o dado "Camisa social" com um código "03", preciso que o sistema efetue a comparando o texto do textbox com o texto do banco, no caso encontraria o "Camisa social" e retornaria para outro textbox o valor "03". O amigo Reinaldo acima falou que se trata de algo extremamente complicado, porém analisando e chegando ao que tenho agora, parece não ser mais tao complicado assim, só me falta um pouco de conhecimento na area para entender melhor hehe
O processo que pensei foi o seguinte:
Porém ele está dando "erro de sintaxe (operador faltando) na expressão de consulta 'Produto = Camisa social FEMININA manga CURTA'."
Teriam alguma ideia de como resolver isso?? Agradeço
Como mencionado eu gostaria de pesquisar no banco sql parte do texto escrito em um Textbox, por exemplo no textbox esta escrito "Camisa social FEMININA manga CURTA" e na tabela do banco "Produtos" tenho o dado "Camisa social" com um código "03", preciso que o sistema efetue a comparando o texto do textbox com o texto do banco, no caso encontraria o "Camisa social" e retornaria para outro textbox o valor "03". O amigo Reinaldo acima falou que se trata de algo extremamente complicado, porém analisando e chegando ao que tenho agora, parece não ser mais tao complicado assim, só me falta um pouco de conhecimento na area para entender melhor hehe
O processo que pensei foi o seguinte:
Código: Selecionar todos
Private Sub CommandButton2_Click()
sql = "SELECT * From Produto "
sql = sql & " WHERE Produto = " & frmProduto.cboProduto.Text
Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.conn, adOpenKeyset, adLockOptimistic
With banco
If InStr(1, frmProduto.cboProduto.Text, .Fields(0), 1) > 0 Then
frmProduto.txtCod1.Value = .Fields(1)
End If
End With
Set banco = Nothing
cx.Desconectar
End Sub
Teriam alguma ideia de como resolver isso?? Agradeço
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Prezados, bom dia!
Caro Anderson Rafael, pelo que vejo você esbanja vontade e precisa estudar um pouco mais antes de se aventurar nestes meandros... nós que temos um pouquinho mais de experiência, podemos ajudar sim, mas te digo: pare um pouco para estudar e entender bem os conceitos básicos ou acabarás por desistir, dada a dificuldade inicial. Mas depois, é só alegria!
No seu caso específico, toda a variável do tipo STRING (estudar tipos de variáveis) deve estar dentro de ""aspas" simples:
Faça a comparação entre a sua linha e esta acima e tente identificar o que tem de diferente.
Parabéns pelo seu esforço e siga na busca, pois é assim que se inicia qualquer caminhada, por mais difícil que ela seja.
Grande abraço!
Paulinho Monteiro
Caro Anderson Rafael, pelo que vejo você esbanja vontade e precisa estudar um pouco mais antes de se aventurar nestes meandros... nós que temos um pouquinho mais de experiência, podemos ajudar sim, mas te digo: pare um pouco para estudar e entender bem os conceitos básicos ou acabarás por desistir, dada a dificuldade inicial. Mas depois, é só alegria!
No seu caso específico, toda a variável do tipo STRING (estudar tipos de variáveis) deve estar dentro de ""aspas" simples:
Código: Selecionar todos
sql = sql & " WHERE Produto = '" & frmProduto.cboProduto.Text & "'"
Parabéns pelo seu esforço e siga na busca, pois é assim que se inicia qualquer caminhada, por mais difícil que ela seja.
Grande abraço!
Paulinho Monteiro
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Quando comentei
Como seu projeto está iniciando julguei que seria mais conveniente que utilizasse de algumas horas para aprender sobre modelagem de dados e relação entre tabelas; porem pelo seu post ...
O erro encontrado, em parte corrigi-se com a proposta efetuada pelo colega Paulinho, alias muito bem observada e esclarecida por ele, como sempre.
Contudo, sua SQL sempre resultara em um banco vazio, visto que a tabela produto não tem registro algum que coincida com o campo cboProduto (aliás não deveria ser um Combo, mas sim uma caixa de texto).
Alem do mais e necessário efetuar uma consulta diferente para cada txt "parte" da composição do codigo
Seria algo +/- assim
Cabe salientar que os codigos/textos em seu banco Produtos, devem estar em linha com as Descrições nas tabelas individuais, caso contrario não obter sucesso
Por exemplo: "Camisa social FEMININA manga 3/4", na tabela genero está FEMININO
, me referi basicamente à mão de obra que sua estrutura gerará e ao erro na montagem/desenho de seu banco de dados, e não aO que a meu ver e um pesadelo de programação
a que se referiu.extremamente complicado
Como seu projeto está iniciando julguei que seria mais conveniente que utilizasse de algumas horas para aprender sobre modelagem de dados e relação entre tabelas; porem pelo seu post ...
O erro encontrado, em parte corrigi-se com a proposta efetuada pelo colega Paulinho, alias muito bem observada e esclarecida por ele, como sempre.
Contudo, sua SQL sempre resultara em um banco vazio, visto que a tabela produto não tem registro algum que coincida com o campo cboProduto (aliás não deveria ser um Combo, mas sim uma caixa de texto).
Alem do mais e necessário efetuar uma consulta diferente para cada txt "parte" da composição do codigo
Seria algo +/- assim
Código: Selecionar todos
Private Sub CommandButton2_Click()
cx.Conectar
'Monta sql para pesquisa Tabela Produto
sql = "SELECT * From Produto "
Set banco = New ADODB.Recordset
banco.Open sql, cx.conn, adOpenKeyset, adLockOptimistic
'Procura Codigo do Produto
For x = 1 To banco.RecordCount
If InStr(1, frmProduto.cboProduto.Text, banco.Fields(1), 1) > 0 Then
frmProduto.txtCod1.Value = banco.Fields(0)
End If
banco.MoveNext
Next
Set banco = Nothing
'Monta sql para pesquisa na Tabela Tipo
sql = "SELECT * From tipo "
Set banco = New ADODB.Recordset
banco.Open sql, cx.conn, adOpenKeyset, adLockOptimistic
'Procura Codigo do Tipo
For x = 1 To banco.RecordCount
If InStr(1, frmProduto.cboProduto.Text, banco.Fields(1), 1) > 0 Then
frmProduto.txtCod2.Value = banco.Fields(0)
End If
banco.MoveNext
Next
Set banco = Nothing
'Monta Sql para pesquisa na Tabela Genero
sql = "SELECT * From Genero "
Set banco = New ADODB.Recordset
banco.Open sql, cx.conn, adOpenKeyset, adLockOptimistic
'Procura pelo Codigo do Genero
For x = 1 To banco.RecordCount
If InStr(1, frmProduto.cboProduto.Text, banco.Fields(1), 1) > 0 Then
frmProduto.txtCod3.Value = banco.Fields(0)
End If
banco.MoveNext
Next
Set banco = Nothing
'Monta sql....
'.....Aqui completar com as demais Txt's do codigo de barras
cx.Desconectar
End Sub
Por exemplo: "Camisa social FEMININA manga 3/4", na tabela genero está FEMININO
-
- Colaborador
- Mensagens: 28
- Registrado em: Seg Mai 14, 2018 11:09 am
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Olá pessoal, muito obrigado pelas respostas!!!
Porém estive analisando, e achei que seria muita detalhe para fazer e resolvi deixar mais simples, sem usar o banco de dados, apenas o "InStr" e ficou assim:
O unico detalhe que talvez eu sinta que precise do banco de dados é se for adicionado um novo tipo de produto ou uma nova variavel, porem acho que por enquanto assim esta bom! O que acham?
Porém estive analisando, e achei que seria muita detalhe para fazer e resolvi deixar mais simples, sem usar o banco de dados, apenas o "InStr" e ficou assim:
Código: Selecionar todos
Private Sub CommandButton2_Click()
Dim var1, var2, var3, var4, va5, var6
If InStr(1, frmProduto.cboProduto.Text, "Calça", 1) > 0 Then
var1 = "01"
ElseIf InStr(1, frmProduto.cboProduto.Text, "Camisa polo", 1) > 0 Then
var1 = "02"
ElseIf InStr(1, frmProduto.cboProduto.Text, "Camisa social", 1) > 0 Then
var1 = "03"
ElseIf InStr(1, frmProduto.cboProduto.Text, "Camiseta", 1) > 0 Then
var1 = "04"
ElseIf InStr(1, frmProduto.cboProduto.Text, "Colete", 1) > 0 Then
var1 = "05"
ElseIf InStr(1, frmProduto.cboProduto.Text, "Jaleco", 1) > 0 Then
var1 = "06"
ElseIf InStr(1, frmProduto.cboProduto.Text, "Jaqueta", 1) > 0 Then
var1 = "07"
ElseIf InStr(1, frmProduto.cboProduto.Text, "Abrigo", 1) > 0 Then
var1 = "08"
End If
If InStr(1, frmProduto.cboProduto.Text, "manga CURTA", 1) > 0 Then
var2 = "01"
ElseIf InStr(1, frmProduto.cboProduto.Text, "manga LONGA", 1) > 0 Then
var2 = "02"
ElseIf InStr(1, frmProduto.cboProduto.Text, "manga 3/4", 1) > 0 Then
var2 = "03"
ElseIf InStr(1, frmProduto.cboProduto.Text, "manga 7/8", 1) > 0 Then
var2 = "04"
ElseIf InStr(1, frmProduto.cboProduto.Text, "abrigo", 1) > 0 Then
var2 = "05"
ElseIf InStr(1, frmProduto.cboProduto.Text, "matelado", 1) > 0 Then
var2 = "06"
ElseIf InStr(1, frmProduto.cboProduto.Text, "matelada", 1) > 0 Then
var2 = "06"
ElseIf InStr(1, frmProduto.cboProduto.Text, "acolchoado", 1) > 0 Then
var2 = "07"
ElseIf InStr(1, frmProduto.cboProduto.Text, "acolchoada", 1) > 0 Then
var2 = "07"
ElseIf InStr(1, frmProduto.cboProduto.Text, "", 1) > 0 Then
var2 = "00"
End If
If InStr(1, frmProduto.cboProduto.Text, "FEMININO", 1) > 0 Then
var3 = "01"
ElseIf InStr(1, frmProduto.cboProduto.Text, "FEMININA", 1) > 0 Then
var3 = "01"
ElseIf InStr(1, frmProduto.cboProduto.Text, "MASCULINO", 1) > 0 Then
var3 = "02"
ElseIf InStr(1, frmProduto.cboProduto.Text, "MASCULINA", 1) > 0 Then
var3 = "02"
ElseIf InStr(1, frmProduto.cboProduto.Text, "", 1) > 0 Then
var3 = "00"
End If
If InStr(1, frmProduto.cboProduto.Text, "manga removível", 1) > 0 Then
var4 = "01"
ElseIf InStr(1, frmProduto.cboProduto.Text, "", 1) > 0 Then
var4 = "00"
End If
If InStr(1, frmProduto.cboTecido.Text, "100%co", 1) > 0 Then
var5 = "001"
ElseIf InStr(1, frmProduto.cboTecido.Text, "50%pes 50%co", 1) > 0 Then
var5 = "002"
ElseIf InStr(1, frmProduto.cboTecido.Text, "50%co 50%pes", 1) > 0 Then
var5 = "002"
ElseIf InStr(1, frmProduto.cboTecido.Text, "52%pes 48%co", 1) > 0 Then
var5 = "002"
ElseIf InStr(1, frmProduto.cboTecido.Text, "48%co 52%pes", 1) > 0 Then
var5 = "002"
ElseIf InStr(1, frmProduto.cboTecido.Text, "56%co 44%pes", 1) > 0 Then
var5 = "002"
ElseIf InStr(1, frmProduto.cboTecido.Text, "44%pes 56%co", 1) > 0 Then
var5 = "002"
ElseIf InStr(1, frmProduto.cboTecido.Text, "67%co 33%pes", 1) > 0 Then
var5 = "003"
ElseIf InStr(1, frmProduto.cboTecido.Text, "33%pes 67%co", 1) > 0 Then
var5 = "003"
ElseIf InStr(1, frmProduto.cboTecido.Text, "67%pes 33%co", 1) > 0 Then
var5 = "004"
ElseIf InStr(1, frmProduto.cboTecido.Text, "33%co 67%pes", 1) > 0 Then
var5 = "004"
ElseIf InStr(1, frmProduto.cboTecido.Text, "67%pes 33%cv", 1) > 0 Then
var5 = "005"
ElseIf InStr(1, frmProduto.cboTecido.Text, "33%cv 67%pes", 1) > 0 Then
var5 = "005"
ElseIf InStr(1, frmProduto.cboTecido.Text, "68%pes 27%co 5%pue", 1) > 0 Then
var5 = "006"
ElseIf InStr(1, frmProduto.cboTecido.Text, "27%co 68%pes 5%pue", 1) > 0 Then
var5 = "006"
ElseIf InStr(1, frmProduto.cboTecido.Text, "63%co 34%pes 3%pue", 1) > 0 Then
var5 = "007"
ElseIf InStr(1, frmProduto.cboTecido.Text, "34%pes 63%co 3%pue", 1) > 0 Then
var5 = "007"
ElseIf InStr(1, frmProduto.cboTecido.Text, "100%pes", 1) > 0 Then
var5 = "008"
ElseIf InStr(1, frmProduto.cboTecido.Text, "73%co 27%pes", 1) > 0 Then
var5 = "009"
ElseIf InStr(1, frmProduto.cboTecido.Text, "27%pes 73%co", 1) > 0 Then
var5 = "009"
ElseIf InStr(1, frmProduto.cboTecido.Text, "100%pa", 1) > 0 Then
var5 = "010"
ElseIf InStr(1, frmProduto.cboTecido.Text, "67%co 30%pes 3%pue", 1) > 0 Then
var5 = "011"
ElseIf InStr(1, frmProduto.cboTecido.Text, "30%pes 67%co 3%pue", 1) > 0 Then
var5 = "011"
ElseIf InStr(1, frmProduto.cboTecido.Text, "65%co 32%pes 3%pue", 1) > 0 Then
var5 = "011"
ElseIf InStr(1, frmProduto.cboTecido.Text, "32%pes 65%co 3%pue", 1) > 0 Then
var5 = "011"
ElseIf InStr(1, frmProduto.cboTecido.Text, "83%co 17%pes", 1) > 0 Then
var5 = "012"
ElseIf InStr(1, frmProduto.cboTecido.Text, "17%pes 83%co", 1) > 0 Then
var5 = "012"
ElseIf InStr(1, frmProduto.cboTecido.Text, "66%co 31%pa 3%pue", 1) > 0 Then
var5 = "013"
ElseIf InStr(1, frmProduto.cboTecido.Text, "31%pa 66%co 3%pue", 1) > 0 Then
var5 = "013"
End If
var6 = "0"
Me.txtCod1.Value = var1 & var2 & var3 & var4 & var5 & var6
End Sub
Re: Identificar parte do texto dentro de uma frase e jogar respectivo valor em uma textbox
Prezados, Boa tarde!
Caro Anderson Rafael, tudo bem?
Cada vírgula que nosso colega Reinaldo escreveu é pertinente, então, ouça atentamente.. Antes de "sair programando", é necessário que você estude os conceitos básicos, principalmente, de um banco de dados relacional, que pressupõe o RELACIONAMENTO entre suas tabelas.
Não entendendo este conceito, não há possibilidade de desenvolver nenhuma lógica, já que essa é a essência de qualquer sistema.
Entenda, fazemos aqui, críticas construtivas para que você possa evoluir como um programador, seja por hobby ou profissionalmente.
Programação exige lógica, coerência e metodologia. Sem estes ingredientes, além de muito mais confundir do que esclarecer sua cabeça, possivelmente, não atingirás teus objetivos.
No que pudermos, certamente te ajudaremos, mas pelo caminho que estás indo, não há muito o que possamos fazer para ajudar.
Veja bem, estamos te dando o caminho das pedras: estude um pouco, anote suas dúvidas e então venha esclarecê-las para poder aprender, a cada dia, um pouco mais.
Grande abraço!
Caro Anderson Rafael, tudo bem?
Cada vírgula que nosso colega Reinaldo escreveu é pertinente, então, ouça atentamente.. Antes de "sair programando", é necessário que você estude os conceitos básicos, principalmente, de um banco de dados relacional, que pressupõe o RELACIONAMENTO entre suas tabelas.
Não entendendo este conceito, não há possibilidade de desenvolver nenhuma lógica, já que essa é a essência de qualquer sistema.
Entenda, fazemos aqui, críticas construtivas para que você possa evoluir como um programador, seja por hobby ou profissionalmente.
Programação exige lógica, coerência e metodologia. Sem estes ingredientes, além de muito mais confundir do que esclarecer sua cabeça, possivelmente, não atingirás teus objetivos.
No que pudermos, certamente te ajudaremos, mas pelo caminho que estás indo, não há muito o que possamos fazer para ajudar.
Veja bem, estamos te dando o caminho das pedras: estude um pouco, anote suas dúvidas e então venha esclarecê-las para poder aprender, a cada dia, um pouco mais.
Grande abraço!