form criteria

  • Thread starter Thread starter Rodolfo Fontes
  • Start date Start date
R

Rodolfo Fontes

Hi group,

I'm using this expression:
docmd.openquery "C Cidades"
And the SQL for ths query is:
SELECT [T Eventos].DescrEvento, [T Cidades].DescrCidade, [T
Bairros].DescrBairro, [T Ocorrencias].Rua, [T Ocorrencias].Data
FROM (([T Ocorrencias] INNER JOIN [T Cidades] ON [T Ocorrencias].CodCidade =
[T Cidades].CodCidade) INNER JOIN [T Eventos] ON [T Ocorrencias].CodEvento =
[T Eventos].CodEvento) INNER JOIN [T Bairros] ON [T Ocorrencias].CodBairro =
[T Bairros].CodBairro
WHERE ((([T Ocorrencias].Data)>[Formulários]![F Relatorios]![txtData_I] And
([T Ocorrencias].Data)<[Formulários]![F Relatorios]![txtData_F]) AND (([T
Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]) AND (([T
Ocorrencias].CodCidade)=[Formulários]![F Relatorios]![cmbCidade]));

Where i set some value to be equal from a Form, i wanna to see all values,
in the case it's null.
Is there anyway to do that?

Using Access2000.

Thanks,
Rodolfo Fontes
 
Rodolfo said:
WHERE ((([T Ocorrencias].Data)>[Formulários]![F
Relatorios]![txtData_I] And ([T Ocorrencias].Data)<[Formulários]![F
Relatorios]![txtData_F]) AND (([T
Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]) AND
(([T Ocorrencias].CodCidade)=[Formulários]![F
Relatorios]![cmbCidade]));

Where i set some value to be equal from a Form, i wanna to see all
values, in the case it's null.
Is there anyway to do that?

Open your query in design view. Change each of the criteria from, for
example
[Formulários]![FRelatorios]![txtData_I]
to
[Formulários]![FRelatorios]![txtData_I] Or
[Formulários]![FRelatorios]![txtData_I] is null
(that's all on one line)

Change each one, and save the query. When you reopen it design view, you'll
see Access will have added four more columns and rearranged things, but
it'll be the same.
 
My code now is like that:
###
SELECT [T Ocorrencias].CodOcorrencia, [T Ocorrencias].CodEvento, [T
Eventos].DescrEvento, [T Cidades].DescrCidade, [T Ocorrencias].CodBairro, [T
Bairros].DescrBairro, [T Ocorrencias].Rua, [T Ocorrencias].Data, [T
Ocorrencias].Hora, [T Ocorrencias].Observacao, [T Ocorrencias].Usuario
FROM (([T Ocorrencias] INNER JOIN [T Eventos] ON [T Ocorrencias].CodEvento =
[T Eventos].CodEvento) INNER JOIN [T Cidades] ON [T Ocorrencias].CodCidade =
[T Cidades].CodCidade) INNER JOIN [T Bairros] ON [T Ocorrencias].CodBairro =
[T Bairros].CodBairro
WHERE ((([T Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]
Or ([T Ocorrencias].CodEvento)=IsNull([Formulários]![F
Relatorios]![cmbEvento])) AND (([T Ocorrencias].CodBairro)=[Formulários]![F
Relatorios]![cmbBairro] Or ([T
Ocorrencias].CodBairro)=IsNull([Formulários]![F Relatorios]![cmbBairro]))
AND (([T Ocorrencias].CodCidade)=[Formulários]![F Relatorios]![cmbCidade] Or
([T Ocorrencias].CodCidade)=IsNull([Formulários]![F
Relatorios]![cmbCidade]))) OR ((([T Ocorrencias].CodEvento)=[Formulários]![F
Relatorios]![cmbEvento] Or ([T
Ocorrencias].CodEvento)=IsNull([Formulários]![F Relatorios]![cmbEvento]))
AND (([T Ocorrencias].CodBairro)=[Formulários]![F Relatorios]![cmbBairro] Or
([T Ocorrencias].CodBairro)=IsNull([Formulários]![F
Relatorios]![cmbBairro])) AND (([T Ocorrencias].CodCidade)=[Formulários]![F
Relatorios]![cmbCidade] Or ([T
Ocorrencias].CodCidade)=IsNull([Formulários]![F Relatorios]![cmbCidade])));
###

Following your aswer, with this, my query should not ask me any value,
because in the case of a NULL value, it should return ALL VALUES, right?
But it's still asking for a value for EVENTOS and OCORRENCIA (the ones that
have a criteria).
Is there anything wrong?

Thanks,
Rodolfo Fontes

Joan Wild said:
Rodolfo said:
WHERE ((([T Ocorrencias].Data)>[Formulários]![F
Relatorios]![txtData_I] And ([T Ocorrencias].Data)<[Formulários]![F
Relatorios]![txtData_F]) AND (([T
Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]) AND
(([T Ocorrencias].CodCidade)=[Formulários]![F
Relatorios]![cmbCidade]));

Where i set some value to be equal from a Form, i wanna to see all
values, in the case it's null.
Is there anyway to do that?

Open your query in design view. Change each of the criteria from, for
example
[Formulários]![FRelatorios]![txtData_I]
to
[Formulários]![FRelatorios]![txtData_I] Or
[Formulários]![FRelatorios]![txtData_I] is null
(that's all on one line)

Change each one, and save the query. When you reopen it design view, you'll
see Access will have added four more columns and rearranged things, but
it'll be the same.
 
Hi Rodolfo,

The following is the what Joan was
referring to:

WHERE
(([T Ocorrencias].CodEvento=[Formulários]![F Relatorios]![cmbEvento]
Or
[Formulários]![F Relatorios]![cmbEvento] Is Null)

AND

([T Ocorrencias].CodBairro=[Formulários]![F Relatorios]![cmbBairro]
Or
[Formulários]![F Relatorios]![cmbBairro] Is Null)

AND

([T Ocorrencias].CodCidade=[Formulários]![F Relatorios]![cmbCidade]
Or
[Formulários]![F Relatorios]![cmbCidade] Is Null))

OR

(([T Ocorrencias].CodEvento=[Formulários]![F Relatorios]![cmbEvento]
Or
[Formulários]![F Relatorios]![cmbEvento] Is Null)

AND

([T Ocorrencias].CodBairro=[Formulários]![F Relatorios]![cmbBairro]
Or
[Formulários]![F Relatorios]![cmbBairro] Is Null)

AND

([T Ocorrencias].CodCidade=[Formulários]![F Relatorios]![cmbCidade]
Or
[Formulários]![F Relatorios]![cmbCidade] Is Null));

Of course you wouldn't have lines between the
operators...I did that so you could more easily
see how they are "paired up."

Good luck,

Gary Walter


Rodolfo Fontes said:
My code now is like that:
###
SELECT [T Ocorrencias].CodOcorrencia, [T Ocorrencias].CodEvento, [T
Eventos].DescrEvento, [T Cidades].DescrCidade, [T Ocorrencias].CodBairro, [T
Bairros].DescrBairro, [T Ocorrencias].Rua, [T Ocorrencias].Data, [T
Ocorrencias].Hora, [T Ocorrencias].Observacao, [T Ocorrencias].Usuario
FROM (([T Ocorrencias] INNER JOIN [T Eventos] ON [T Ocorrencias].CodEvento =
[T Eventos].CodEvento) INNER JOIN [T Cidades] ON [T Ocorrencias].CodCidade =
[T Cidades].CodCidade) INNER JOIN [T Bairros] ON [T Ocorrencias].CodBairro =
[T Bairros].CodBairro
WHERE
(
(
([T Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]
Or ([T Ocorrencias].CodEvento)=IsNull([Formulários]![F
Relatorios]![cmbEvento])
)
AND
(
([T Ocorrencias].CodBairro)=[Formulários]![F
Relatorios]![cmbBairro] Or ([T
Ocorrencias].CodBairro)=IsNull([Formulários]![F Relatorios]![cmbBairro]) )
AND
(
([T Ocorrencias].CodCidade)=[Formulários]![F Relatorios]![cmbCidade] Or
([T Ocorrencias].CodCidade)=IsNull([Formulários]![F
Relatorios]![cmbCidade])
)
)
OR
(
(
([T Ocorrencias].CodEvento)=[Formulários]![F
Relatorios]![cmbEvento] Or ([T
Ocorrencias].CodEvento)=IsNull([Formulários]![F Relatorios]![cmbEvento]) )
AND
(
([T Ocorrencias].CodBairro)=[Formulários]![F Relatorios]![cmbBairro] Or
([T Ocorrencias].CodBairro)=IsNull([Formulários]![F
Relatorios]![cmbBairro])
)
AND
(
([T Ocorrencias].CodCidade)=[Formulários]![F
Relatorios]![cmbCidade] Or ([T
Ocorrencias].CodCidade)=IsNull([Formulários]![F Relatorios]![cmbCidade]) )
);
###

Following your aswer, with this, my query should not ask me any value,
because in the case of a NULL value, it should return ALL VALUES, right?
But it's still asking for a value for EVENTOS and OCORRENCIA (the ones that
have a criteria).
Is there anything wrong?

Thanks,
Rodolfo Fontes

Joan Wild said:
Rodolfo said:
WHERE ((([T Ocorrencias].Data)>[Formulários]![F
Relatorios]![txtData_I] And ([T Ocorrencias].Data)<[Formulários]![F
Relatorios]![txtData_F]) AND (([T
Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]) AND
(([T Ocorrencias].CodCidade)=[Formulários]![F
Relatorios]![cmbCidade]));

Where i set some value to be equal from a Form, i wanna to see all
values, in the case it's null.
Is there anyway to do that?

Open your query in design view. Change each of the criteria from, for
example
[Formulários]![FRelatorios]![txtData_I]
to
[Formulários]![FRelatorios]![txtData_I] Or
[Formulários]![FRelatorios]![txtData_I] is null
(that's all on one line)

Change each one, and save the query. When you reopen it design view, you'll
see Access will have added four more columns and rearranged things, but
it'll be the same.
 
Thanks! it worked!


Gary Walter said:
Hi Rodolfo,

The following is the what Joan was
referring to:

WHERE
(([T Ocorrencias].CodEvento=[Formulários]![F Relatorios]![cmbEvento]
Or
[Formulários]![F Relatorios]![cmbEvento] Is Null)

AND

([T Ocorrencias].CodBairro=[Formulários]![F Relatorios]![cmbBairro]
Or
[Formulários]![F Relatorios]![cmbBairro] Is Null)

AND

([T Ocorrencias].CodCidade=[Formulários]![F Relatorios]![cmbCidade]
Or
[Formulários]![F Relatorios]![cmbCidade] Is Null))

OR

(([T Ocorrencias].CodEvento=[Formulários]![F Relatorios]![cmbEvento]
Or
[Formulários]![F Relatorios]![cmbEvento] Is Null)

AND

([T Ocorrencias].CodBairro=[Formulários]![F Relatorios]![cmbBairro]
Or
[Formulários]![F Relatorios]![cmbBairro] Is Null)

AND

([T Ocorrencias].CodCidade=[Formulários]![F Relatorios]![cmbCidade]
Or
[Formulários]![F Relatorios]![cmbCidade] Is Null));

Of course you wouldn't have lines between the
operators...I did that so you could more easily
see how they are "paired up."

Good luck,

Gary Walter


Rodolfo Fontes said:
My code now is like that:
###
SELECT [T Ocorrencias].CodOcorrencia, [T Ocorrencias].CodEvento, [T
Eventos].DescrEvento, [T Cidades].DescrCidade, [T Ocorrencias].CodBairro, [T
Bairros].DescrBairro, [T Ocorrencias].Rua, [T Ocorrencias].Data, [T
Ocorrencias].Hora, [T Ocorrencias].Observacao, [T Ocorrencias].Usuario
FROM (([T Ocorrencias] INNER JOIN [T Eventos] ON [T Ocorrencias].CodEvento =
[T Eventos].CodEvento) INNER JOIN [T Cidades] ON [T Ocorrencias].CodCidade =
[T Cidades].CodCidade) INNER JOIN [T Bairros] ON [T Ocorrencias].CodBairro =
[T Bairros].CodBairro
WHERE
(
(
([T Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]
Or ([T Ocorrencias].CodEvento)=IsNull([Formulários]![F
Relatorios]![cmbEvento])
)
AND
(
([T Ocorrencias].CodBairro)=[Formulários]![F
Relatorios]![cmbBairro] Or ([T
Ocorrencias].CodBairro)=IsNull([Formulários]![F Relatorios]![cmbBairro]) )
AND
(
([T Ocorrencias].CodCidade)=[Formulários]![F Relatorios]![cmbCidade] Or
([T Ocorrencias].CodCidade)=IsNull([Formulários]![F
Relatorios]![cmbCidade])
)
)
OR
(
(
([T Ocorrencias].CodEvento)=[Formulários]![F
Relatorios]![cmbEvento] Or ([T
Ocorrencias].CodEvento)=IsNull([Formulários]![F Relatorios]![cmbEvento]) )
AND
(
([T Ocorrencias].CodBairro)=[Formulários]![F Relatorios]![cmbBairro] Or
([T Ocorrencias].CodBairro)=IsNull([Formulários]![F
Relatorios]![cmbBairro])
)
AND
(
([T Ocorrencias].CodCidade)=[Formulários]![F
Relatorios]![cmbCidade] Or ([T
Ocorrencias].CodCidade)=IsNull([Formulários]![F Relatorios]![cmbCidade]) )
);
###

Following your aswer, with this, my query should not ask me any value,
because in the case of a NULL value, it should return ALL VALUES, right?
But it's still asking for a value for EVENTOS and OCORRENCIA (the ones that
have a criteria).
Is there anything wrong?

Thanks,
Rodolfo Fontes

Joan Wild said:
Rodolfo Fontes wrote:
WHERE ((([T Ocorrencias].Data)>[Formulários]![F
Relatorios]![txtData_I] And ([T Ocorrencias].Data)<[Formulários]![F
Relatorios]![txtData_F]) AND (([T
Ocorrencias].CodEvento)=[Formulários]![F Relatorios]![cmbEvento]) AND
(([T Ocorrencias].CodCidade)=[Formulários]![F
Relatorios]![cmbCidade]));

Where i set some value to be equal from a Form, i wanna to see all
values, in the case it's null.
Is there anyway to do that?

Open your query in design view. Change each of the criteria from, for
example
[Formulários]![FRelatorios]![txtData_I]
to
[Formulários]![FRelatorios]![txtData_I] Or
[Formulários]![FRelatorios]![txtData_I] is null
(that's all on one line)

Change each one, and save the query. When you reopen it design view, you'll
see Access will have added four more columns and rearranged things, but
it'll be the same.
 
Back
Top