NOMES GRANDES NO VB
Srs.
Por Favor alguem pode me ajudar?
Estou com um problema sério e não sei como resolver.
Tenho uma tabela access com nomes, endereços, telefones etc.
faço a pesquisa atraves do select em texto lido na combobox, porem quando o nome é grande por exemplo:
Imobiliaria Menino Deus ou Cartorio Viamopolis, ou nomes muito grandes, nao acha retorna nao existe, porem quando digito nomes pequenos BRDE, Banrisul, Forum Viamao, ai ele acha.
tem como resolver isso?
OBS: Quando carrego a combobox aparecem todos os nomes sejam pequenos ou grandes.
Para solucionar isso, pensei em carregar na combobox, o codigo e o nome, na mesma linha e ai fazer a pesquisa pelo codigo, mas nao sei como fazer isso.
Se alguem puder me ajudar em qualquer um dos dois metodos agradeço.
Abraço
Marcio
Por Favor alguem pode me ajudar?
Estou com um problema sério e não sei como resolver.
Tenho uma tabela access com nomes, endereços, telefones etc.
faço a pesquisa atraves do select em texto lido na combobox, porem quando o nome é grande por exemplo:
Imobiliaria Menino Deus ou Cartorio Viamopolis, ou nomes muito grandes, nao acha retorna nao existe, porem quando digito nomes pequenos BRDE, Banrisul, Forum Viamao, ai ele acha.
tem como resolver isso?
OBS: Quando carrego a combobox aparecem todos os nomes sejam pequenos ou grandes.
Para solucionar isso, pensei em carregar na combobox, o codigo e o nome, na mesma linha e ai fazer a pesquisa pelo codigo, mas nao sei como fazer isso.
Se alguem puder me ajudar em qualquer um dos dois metodos agradeço.
Abraço
Marcio
posta seu código de pesquisa.
Ok ai vai
Private Sub CarregaDados1()
Dim cn2 As New OleDbConnection
Dim cmd2 As New OleDbCommand
Dim tb2 As DataTable
Try
cn2.ConnectionString = [Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=c:\dados\cadastro.mdb[Ô]
cn2.Open()
Catch
End Try
cmd2 = New OleDbCommand([Ô]SELECT * from compras where empresa=@empresa[Ô])
cmd2.Connection = cn2
cmd2.Parameters.Add([Ô]@empresa[Ô], OleDbType.VarWChar, 15).Value = txtemp.text
Dim da2 As New OleDbDataAdapter(cmd2)
Dim dt2 As New DataSet()
tb2 = New DataTable
da2 = New OleDb.OleDbDataAdapter
tb2.Clear()
da2.SelectCommand = cmd2
da2.Fill(tb2)
listcomrec.Clear()
[ô]define o cabeçalho do listview , a largura e o alinhamento
With listcomrec
.Columns.Add([Ô]Cod[Ô], 40, HorizontalAlignment.Left)
.Columns.Add([Ô]Empresa[Ô], 190, HorizontalAlignment.Left)
.Columns.Add([Ô]Nome[Ô], 200, HorizontalAlignment.Left)
.Columns.Add([Ô]Data[Ô], 70, HorizontalAlignment.Left)
.Columns.Add([Ô]Quant[Ô], 50, HorizontalAlignment.Center)
.Columns.Add([Ô]Fabricante[Ô], 110, HorizontalAlignment.Left)
.Columns.Add([Ô]Descricao[Ô], 280, HorizontalAlignment.Left)
.Columns.Add([Ô]Valor[Ô], 50, HorizontalAlignment.Center)
.Columns.Add([Ô]T da Compra[Ô], 90, HorizontalAlignment.Left)
.Columns.Add([Ô]Pagamento[Ô], 50, HorizontalAlignment.Center)
.Columns.Add([Ô]F. de Pagam.[Ô], 50, HorizontalAlignment.Left)
End With
If tb2.Rows.Count > 0 Then
[ô]percorre a tabela pedidos e preenche o listview
For i = 0 To tb2.Rows.Count - 1
listcomrec.Items.Add(tb2.Rows(i)([Ô]codigo[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]empresa[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]nome[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]data[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]quantidade[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]fabricante[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]Descriçao[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]valor[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]Total_da_Compra[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]pagamentos[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]Forma_de_pagamento[Ô]))
Next
dt2.Clear()
Else
MessageBox.Show([Ô]Não há dados para esse critério ![Ô])
End If
Ai esta.
Private Sub CarregaDados1()
Dim cn2 As New OleDbConnection
Dim cmd2 As New OleDbCommand
Dim tb2 As DataTable
Try
cn2.ConnectionString = [Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=c:\dados\cadastro.mdb[Ô]
cn2.Open()
Catch
End Try
cmd2 = New OleDbCommand([Ô]SELECT * from compras where empresa=@empresa[Ô])
cmd2.Connection = cn2
cmd2.Parameters.Add([Ô]@empresa[Ô], OleDbType.VarWChar, 15).Value = txtemp.text
Dim da2 As New OleDbDataAdapter(cmd2)
Dim dt2 As New DataSet()
tb2 = New DataTable
da2 = New OleDb.OleDbDataAdapter
tb2.Clear()
da2.SelectCommand = cmd2
da2.Fill(tb2)
listcomrec.Clear()
[ô]define o cabeçalho do listview , a largura e o alinhamento
With listcomrec
.Columns.Add([Ô]Cod[Ô], 40, HorizontalAlignment.Left)
.Columns.Add([Ô]Empresa[Ô], 190, HorizontalAlignment.Left)
.Columns.Add([Ô]Nome[Ô], 200, HorizontalAlignment.Left)
.Columns.Add([Ô]Data[Ô], 70, HorizontalAlignment.Left)
.Columns.Add([Ô]Quant[Ô], 50, HorizontalAlignment.Center)
.Columns.Add([Ô]Fabricante[Ô], 110, HorizontalAlignment.Left)
.Columns.Add([Ô]Descricao[Ô], 280, HorizontalAlignment.Left)
.Columns.Add([Ô]Valor[Ô], 50, HorizontalAlignment.Center)
.Columns.Add([Ô]T da Compra[Ô], 90, HorizontalAlignment.Left)
.Columns.Add([Ô]Pagamento[Ô], 50, HorizontalAlignment.Center)
.Columns.Add([Ô]F. de Pagam.[Ô], 50, HorizontalAlignment.Left)
End With
If tb2.Rows.Count > 0 Then
[ô]percorre a tabela pedidos e preenche o listview
For i = 0 To tb2.Rows.Count - 1
listcomrec.Items.Add(tb2.Rows(i)([Ô]codigo[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]empresa[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]nome[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]data[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]quantidade[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]fabricante[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]Descriçao[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]valor[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]Total_da_Compra[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]pagamentos[Ô]))
listcomrec.Items(i).SubItems.Add(tb2.Rows(i)([Ô]Forma_de_pagamento[Ô]))
Next
dt2.Clear()
Else
MessageBox.Show([Ô]Não há dados para esse critério ![Ô])
End If
Ai esta.
Achei o erro!!!
No campo parâmetro, você colocou para usar até 15 caracteres. Caso você tenha uma string acima deste, ele só vai usar os primeiros 15.
Altere o tamanho de 15 para o comprimento do seu campo, que o seu problema estará resolvido!
Abaixo, deixei destacado o trecho que você deve alterar:
cmd2.Parameters.Add([Ô]@empresa[Ô], OleDbType.VarWChar, 15).Value = txtemp.text
No campo parâmetro, você colocou para usar até 15 caracteres. Caso você tenha uma string acima deste, ele só vai usar os primeiros 15.
Altere o tamanho de 15 para o comprimento do seu campo, que o seu problema estará resolvido!
Abaixo, deixei destacado o trecho que você deve alterar:
cmd2.Parameters.Add([Ô]@empresa[Ô], OleDbType.VarWChar, 15).Value = txtemp.text
Cara,
Muito Obrigado, salvou meu programa, estava numa sinuca de bico e não sabia como sair.
Muito obrigado mesmo, do fundo do coração.
Muito Obrigado, salvou meu programa, estava numa sinuca de bico e não sabia como sair.
Muito obrigado mesmo, do fundo do coração.
Agora é só pontuar a solução
Tópico encerrado , respostas não são mais permitidas