Digitação Inteligen...
 
Notifications
Clear all

Digitação Inteligente Text box para um List

3 Posts
1 Usuários
0 Reactions
715 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal não sei sé ja é cansaço mas o codigo esta diferenciando as letras maiusculas das minusculas, estou filtrando um list por textbox mas quando digito letras ele esta entendendo como se for digitado letras maiusculas são diferentes das minusculas.
Minha pergunta o que ficou faltando no codigo abaixo:

Private Sub TextBox1_Change()
On Error GoTo TrataErro

    Dim conn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim sql As String
    Dim i As Variant
    Dim campo As Field
    Dim myArray() As Variant

    Set conn = New ADODB.Connection
    With conn
    
        '.Provider = "Microsoft.JET.OLEDB.4.0" ' versão excel 2003
        .Provider = "Microsoft.ACE.OLEDB.12.0" ' versão excel 2007
        .ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 8.0;"
        .Open
    End With

    sql = "SELECT  Codigo,Fornecedor FROM [servico$] where  Fornecedor  LIKE '%" & TextBox1.Text & "%' order by Codigo desc"

    

    Set rst = New ADODB.Recordset
    With rst
        .ActiveConnection = conn
        .Open sql, conn, adOpenDynamic, _
              adLockBatchOptimistic
    End With

    'pega o número de registros para atribuí-lo ao listbox
    lstLista.ColumnCount = rst.Fields.Count


    'coloca as linhas do RecordSet num Array, se houver linhas neste
    If Not rst.EOF And Not rst.BOF Then
        myArray = rst.GetRows
        'troca linhas por colunas no Array
        myArray = Array2DTranspose(myArray)
        'atribui o Array ao listbox
        lstLista.List = myArray
        'adiciona a linha de cabeçalho da coluna
        lstLista.AddItem , 0
        'preenche o cabeçalho
        For i = 0 To rst.Fields.Count - 1
            lstLista.List(0, i) = rst.Fields(i).Name
        Next i
        'seleciona o primeiro item da lista
        lstLista.ListIndex = 0
    Else
        lstLista.Clear
    End If

    'atualiza o label de mensagens
    If lstLista.ListCount <= 0 Then
        lblMensagens.Caption = lstLista.ListCount & " Registros encontrados"
    Else
        lblMensagens.Caption = lstLista.ListCount - 1 & " Registros encontrados"
    End If

    ' Fecha o conjunto de registros.
    Set rst = Nothing
    ' Fecha a conexão.
    conn.Close

TrataSaida:
    Exit Sub
TrataErro:
    Debug.Print Err.Description & vbNewLine & Err.Number & vbNewLine & Err.Source
    Resume TrataSaida
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/10/2012 6:43 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não entendi muito bem qual a sua duvida, mas letras maiusculas e minusculas em uma string, são diferentes, então normalmente "Sua"; "sua" e "SUA" são strings diferentes.
Se no banco o cadastro é inserido como maiuscula na consulta vc pode utilizar: LIKE '%" & Ucase(TextBox1.Text)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/10/2012 9:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Como é facil.... era exatamente esta a solução...obrigado pela lembrança ....

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/10/2012 11:21 am