Jump to content
Seabra

Query - Falta operador

Recommended Posts

Seabra

Boas

Tenho esta query.

  cmd.CommandText = "Select * From Registos as R INNER JOIN Ferramentas as F ON R.Cod_Ferramenta=F.ID INNER JOIN Clientes as C ON R.Cliente=C.ID Where " & SubSQL & " Data BETWEEN @Campo1 and @Campo2"

dá um erro de falta de um operador.

Se eu retirar a primeira junção funciona

Se eu retirar a seunda junção e mantiver aprimeira, também funciona.

As duas junções juntas dá erro de falta de operador.

Base de dados Access 2007

Ende estará o problemas?

Cumprimentos

Seabra

Share this post


Link to post
Share on other sites
Caça

Data BETWEEN @Campo1 and @Campo2

Deve-te faltar um AND antes disto


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Seabra

Data BETWEEN @Campo1 and @Campo2

Deve-te faltar um AND antes disto

Não não. Esse And está a ser enviado pela string "SubSQL"

Assim não funciona:

            cmd.CommandText = "Select * From Registos as R INNER JOIN Ferramentas as F ON R.Cod_Ferramenta=F.ID INNER JOIN Clientes as C ON R.Cliente=C.ID Where " & SubSQL & " Data BETWEEN @Campo1 and @Campo2"

Assim funciona:

            cmd.CommandText = "Select * From Registos as R  INNER JOIN Clientes as C ON R.Cliente=C.ID Where " & SubSQL & " Data BETWEEN @Campo1 and @Campo2"

Assim funciona:

            cmd.CommandText = "Select * From Registos as R INNER JOIN Ferramentas as F ON R.Cod_Ferramenta=F.ID Where " & SubSQL & " Data BETWEEN @Campo1 and @Campo2"

O problema deve estar mesmo na junção das tabelas.

A Access permite unir mais do que 2 tabelas?

Seabra

Share this post


Link to post
Share on other sites
Caça

Para te podermos ajudar melhor, precisamos de saber o que está dentro da variável SubSQL quando dá erro.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Seabra

Para te podermos ajudar melhor, precisamos de saber o que está dentro da variável SubSQL quando dá erro.

Coloquei um textbox e deu isto:

Select * From Registos as R  INNER JOIN Ferramentas as F ON R.Cod_Ferramenta = F.ID  INNER JOIN Clientes as C ON R.Cliente = C.ID Where  R.Data BETWEEN @Campo1 and @Campo2

Nesse momento em que dá erro a String final é essa.

Seabra

Share this post


Link to post
Share on other sites
Seabra

Obrigado mas já resolvi.

Select * From (Registos as R  INNER JOIN Ferramentas as F ON R.Cod_Ferramenta = F.ID)  INNER JOIN Clientes as C ON R.Cliente = C.ID Where  R.Data BETWEEN @Campo1 and @Campo2

Faltavam os parênteses

Eu nunca tinha unido 3 tabelas!

Cumprimentos

Seabra

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.