NOMES GRANDES NO VB

MARCIOLOPES1967 30/09/2013 13:06:46
#429409
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
GUIMORAES 30/09/2013 14:15:12
#429415
posta seu código de pesquisa.
MARCIOLOPES1967 30/09/2013 18:12:20
#429430
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.
NETMANIA 01/10/2013 13:10:25
#429446
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
MARCIOLOPES1967 01/10/2013 15:16:04
#429457
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.

NETMANIA 01/10/2013 15:19:22
#429458
Resposta escolhida
Agora é só pontuar a solução
Tópico encerrado , respostas não são mais permitidas