Comando IN na consulta em modo design
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Usuário Wolmar:
Bom dia.
Tenho uma variável no formulário que guarda as opções escolhidas pelo usuário, assim:
CodLoja = '01';'03';'06';'09';'10'
Gostaria de na consulta usar isso como filtro, usando cláusula IN.
in('01';'03';'06';'09';'10') assim funciona, mas preciso que as
escolhas venham do formulário;
in(" & Form_Op01.CodLoja & ") em VBA também funciona, mas preciso em consulta modo design;
in(Form_Op01.CodLoja) na consulta modo design como seria?
Após o resultado dessa consulta, tenho mais 7, que usam o resultado dessa.
Tem como fazer sem usar na origem do relatório?
Suporte:
Wolmar,
poderia usar o IN() no argumento de filtragem da chamada do relatório. Assim, você deixa a consulta limpa. Exemplo:
DoCmd.OpenReport "NomeRealtório", acViewPreview, , "Cod in('1','3','6','9')"
Ou
DoCmd.OpenReport "NomeRealtório", acViewPreview, , "Cod in(" & codLoja & ")"
Nota: observe que é usada a vírgula no lugar do ponto e vírgula.
Bom, se tem que de fato, alterar a consulta gráfica, sugiro este código:
Dim qry As DAO.QueryDef
Dim pos%
Dim strSql As String
Set qry = CurrentDb.QueryDefs("NomeDaConsulta")
pos = InStr(qry.SQL, "WHERE")
strSql = Left(qry.SQL, pos - 1)
strSql = strSql & "WHERE Cod IN('1','3','6','9');"
qry.SQL = strSql
Set qry = Nothing
DoCmd.OpenReport "NomeDoRelatório", acViewPreview
Usuário Wolmar:
Valeu Avelino,
obrigado.
Não há comentário |