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