FILTRAR RECORDSET POR SEQUENCIA NUMERICA
Olá pessoal, boa tarde a todos!
Estou desenvolvendo um pequena aplicação e gostaria de filtrar um recordset tendo como parâmetro uma sequência de números.
Eu quero filtrar todos os registros cujo o código contenha a sequência [Ô]11[Ô]. Então seriam retornados todos os registros que contivessem o 11 tipo: 1011, 11, 1199, 1111...
Filtrar campos texto eu consigo com o código abaixo:
rst.Filter = [Ô]campo like [ô] *ma* [ô] [Ô]
Esse código retorna todos os registros onde campo contenha a sequência [Ô]ma[Ô] tipo: marcos, amarildo, algema...
Nota: Eu estou usando o Visual Basic 6 com banco de dados Access e recordset ADO.
Estou desenvolvendo um pequena aplicação e gostaria de filtrar um recordset tendo como parâmetro uma sequência de números.
Eu quero filtrar todos os registros cujo o código contenha a sequência [Ô]11[Ô]. Então seriam retornados todos os registros que contivessem o 11 tipo: 1011, 11, 1199, 1111...
Filtrar campos texto eu consigo com o código abaixo:
rst.Filter = [Ô]campo like [ô] *ma* [ô] [Ô]
Esse código retorna todos os registros onde campo contenha a sequência [Ô]ma[Ô] tipo: marcos, amarildo, algema...
Nota: Eu estou usando o Visual Basic 6 com banco de dados Access e recordset ADO.
qual é sua duvida? pois você ja postou a solução
rst.Filter = [Ô]campo like [ô] *11* [ô] [Ô]
rst.Filter = [Ô]campo like [ô] *11* [ô] [Ô]
Pois amigo, MARCELO-TREZE
Esse código só funciona com tipo de dados texto. Com números não funciona e o tipo de dado do campo código do meu projeto é número.
Agradeço a atenção, mas não funciona
Esse código só funciona com tipo de dados texto. Com números não funciona e o tipo de dado do campo código do meu projeto é número.
Agradeço a atenção, mas não funciona
é meio que um chute, mas por ser access eu tentaria o seguinte
rst.Filter = [Ô]CStr(campo) like [ô] *11* [ô] [Ô]
Não sei se no filtro ele vai aceitar o cstr, se não me engano em SQL o access aceita algumas funções do VBA
rst.Filter = [Ô]CStr(campo) like [ô] *11* [ô] [Ô]
Não sei se no filtro ele vai aceitar o cstr, se não me engano em SQL o access aceita algumas funções do VBA
Acabei de testar. não funciona
vrLOCA.Filter = [Ô]CStr(cpCODI) like [ô]*11*[ô] [Ô]
Obrigado. Mais alguma sugestão?
vrLOCA.Filter = [Ô]CStr(cpCODI) like [ô]*11*[ô] [Ô]
Obrigado. Mais alguma sugestão?
é que da forma que ele está utilizando não funciona mesmo teria de ser algo tipo
vrLOCA.RecordSource = [Ô]SELECT * FROM Tabela WHERE CStr(cpCODI) Like [ô]%11%[ô][Ô]
mas acredito que também não funcione, creio que ele terá de ler todas as variáveis jogar uma a uma em uma string e comparar
[ô]
vrLOCA.RecordSource = [Ô]SELECT * FROM Tabela WHERE CStr(cpCODI) Like [ô]%11%[ô][Ô]
mas acredito que também não funcione, creio que ele terá de ler todas as variáveis jogar uma a uma em uma string e comparar
[ô]
Olá, boa noite
Gostaria de obter uma solução com o método filter pois agilizaria a consulta. Temo que executar uma instrução select tornaria o sistema lento com o crescimento da base de dados.
Estou utilizando o evento change de um textbox e a cada alteração o recordset é filtrado e o resultado é apresentado em um datagrid.
Com tipo de dado texto funciona normal mas com número, não.
Segue parte do código para análise dos caros colegas:
Private Sub txLOCA_Change()
Dim strText As String
Dim strRetorno As String
Dim strVal As String
Dim lngSelStart As Long
Dim strPro
On Error Resume Next
strRetorno = txLOCA.Text
lngSelStart = txLOCA.SelStart
strText = [Ô]*[Ô] & txLOCA.Text & [Ô]*[Ô]
strVal = txLOCA.Text (aqui está o problema: não sei qual caractere coringa devo usar, já tentei *, % e # - não deu certo)
If IsNumeric(txLOCA.Text) Then
strPro = strVal
Else
strPro = strText
End If
If Me.txLOCA.Text <> Nulo Then
vrLOCA.Filter = [Ô][Ô] & CampoProcura & [Ô] like [Ô] & strPro & [Ô][Ô] (CampoProcura é uma variável setada em outro procedimento)
dgLOCA.Columns(0).Visible = False
lbTOTA.Caption = [Ô]Total de Registros: [Ô]
lbTOTA.Caption = lbTOTA.Caption & [Ô] [Ô] & vrLOCA.RecordCount
Me.txLOCA = strRetorno
Me.txLOCA.SelStart = lngSelStart
Else
vrLOCA.Filter = [Ô][Ô]
vrLOCA.Requery
dgLOCA.Columns(0).Visible = False
lbTOTA.Caption = [Ô]Total de Registros: [Ô]
lbTOTA.Caption = lbTOTA.Caption & [Ô] [Ô] & vrLOCA.RecordCount
Me.txLOCA = strRetorno
Me.txLOCA.SelStart = lngSelStart
End If
End Sub
Lembrando que eu estou usando VB6, banco de dados access e ADO
Gostaria de obter uma solução com o método filter pois agilizaria a consulta. Temo que executar uma instrução select tornaria o sistema lento com o crescimento da base de dados.
Estou utilizando o evento change de um textbox e a cada alteração o recordset é filtrado e o resultado é apresentado em um datagrid.
Com tipo de dado texto funciona normal mas com número, não.
Segue parte do código para análise dos caros colegas:
Private Sub txLOCA_Change()
Dim strText As String
Dim strRetorno As String
Dim strVal As String
Dim lngSelStart As Long
Dim strPro
On Error Resume Next
strRetorno = txLOCA.Text
lngSelStart = txLOCA.SelStart
strText = [Ô]*[Ô] & txLOCA.Text & [Ô]*[Ô]
strVal = txLOCA.Text (aqui está o problema: não sei qual caractere coringa devo usar, já tentei *, % e # - não deu certo)
If IsNumeric(txLOCA.Text) Then
strPro = strVal
Else
strPro = strText
End If
If Me.txLOCA.Text <> Nulo Then
vrLOCA.Filter = [Ô][Ô] & CampoProcura & [Ô] like [Ô] & strPro & [Ô][Ô] (CampoProcura é uma variável setada em outro procedimento)
dgLOCA.Columns(0).Visible = False
lbTOTA.Caption = [Ô]Total de Registros: [Ô]
lbTOTA.Caption = lbTOTA.Caption & [Ô] [Ô] & vrLOCA.RecordCount
Me.txLOCA = strRetorno
Me.txLOCA.SelStart = lngSelStart
Else
vrLOCA.Filter = [Ô][Ô]
vrLOCA.Requery
dgLOCA.Columns(0).Visible = False
lbTOTA.Caption = [Ô]Total de Registros: [Ô]
lbTOTA.Caption = lbTOTA.Caption & [Ô] [Ô] & vrLOCA.RecordCount
Me.txLOCA = strRetorno
Me.txLOCA.SelStart = lngSelStart
End If
End Sub
Lembrando que eu estou usando VB6, banco de dados access e ADO
Olá pessoal,
Mudei o tipo de dado para texto mesmo. Na hora de fazer as operações eu aplico as funções de conversão.
Obrigado pela atenção.
Mudei o tipo de dado para texto mesmo. Na hora de fazer as operações eu aplico as funções de conversão.
Obrigado pela atenção.
Faça seu login para responder