locked
Pesquisa em Access por "C#" RRS feed

  • Pergunta

  • Boas!!

     

    O meu problema é o seguinte:

    Tenho uma BD access para registo de entrevistas de candidatos.

     

    A Tabela "Candidatos" têm um campo "skills" que contem todos os conhecimentos do candidato, exº: ASP; VB; SQL; C#; PHP...

     

    No form "Pesquisas" tem uma text box para inserir os skills a pesquisar separados por um '+', exº: ASP+SQL+VB

     

    A pesquisa pode ser feita por: nome; skills; faculdade; etc.

    A variável StrAux junta todas as clausulas pedidas pelo utilizador.  

     

    CÓDIGO QUE ACHO RELEVANTE ABAIXO:

     

    ' Pesquisa SKILLS

            If ChkSkills.Value = True Then

                If StrAux <> "" Then

                   StrAux = StrAux + " and "

                End If

                

                TxtSkills.SetFocus

                sSkills = Me!TxtSkills.Text

                  

                ' divide string e coloca em array

                arrExt = Split(sSkills, "+")

                 

                ' monta clausula WHERE de skills

                

                StrAux = StrAux + "Skills like ('*" + arrExt(0) + "*')"

                

                ' desde 1 até ao limite superior do array

                For N = 1 To UBound(arrExt)

                   StrAux = StrAux + " and Skills like ('*" + arrExt(N) + "*')"

                Next

            End If

     

     

        ' faz query e descarrega em tabela auxiliar

    strQuery = "SELECT MUITOS_CAMPOS into T_PRINTAUX

            FROM (T_Candidato INNER JOIN T_Entrevista ON T_Candidato.ID_Candidato = T_Entrevista.Id_Candidato) "

            WHERE T_Entrevista.PrimeiraEntrevista = true and " + StrAux + " ORDER BY T_Candidato.Nome;"

           

     

         ' Executa a query que vai preencher a tabela auxiliar PrintAux

            DoCmd.RunSQL strQuery

     

     

     

    Funciona maravilhas :-) menos com o "#" que considera que é um algarismo na pesquisa e vai buscar "DB2","PHP4", ... menos o "C#"

     

    Alguma ideia?

    Obrigado pela ajuda!

    Rui

    terça-feira, 13 de novembro de 2007 16:55

Respostas

  •  

    Olá, Luiz!

    Acabei de ter uma resposta noutro forum que já testei e funciona.

     

     arrExt(N) = Replace(arrExt(N), "#", "[#]")

     

    Obrigado pela ajuda!

    Rui

    quinta-feira, 15 de novembro de 2007 10:08

Todas as Respostas

  • Experimente assim:

     

    WHERE T_Entrevista.PrimeiraEntrevista = true and " & StrAux & " ORDER BY T_Candidato.Nome;"

     

    quinta-feira, 15 de novembro de 2007 06:02
    Moderador
  •  

    Olá, Luiz!

    Acabei de ter uma resposta noutro forum que já testei e funciona.

     

     arrExt(N) = Replace(arrExt(N), "#", "[#]")

     

    Obrigado pela ajuda!

    Rui

    quinta-feira, 15 de novembro de 2007 10:08