Raoni Santos Postado Março 11, 2009 Denunciar Share Postado Março 11, 2009 (editado) Olá,Gostaria que me ajudassem na seguinte questao:Estou fazer esta consulta no AccessTRANSFORM ((Count(*)) & " - R$" & (SUM([processos].[campo_livre5]))) AS ttotalSELECT [processos].[sERVIDOR1], Count(*) AS total, Sum([processos].[campo_livre5]) AS totalvalorFROM (processos RIGHT JOIN assunto ON [processos].[assunto]=[assunto].[Assunto]) LEFT JOIN servidor ON [processos].[sERVIDOR1]=[servidor].[servidor]WHERE (data_protocolo>[Forms]![Consultas]![data_inicio]) And (data_protocolo<[Forms]![Consultas]![data_final])GROUP BY [processos].[sERVIDOR1]ORDER BY [processos].[sERVIDOR1]PIVOT [assunto].[Assunto];Porém, sem a clausula WHERE ali, a consulta funciona certo, mas quando coloco a condição ele apresenta a seguinte msg:"O mecanismo de banco de dados Microsoft Jet não reconhece '[Forms]![Consultas]![data_inicio]' como um nome de campo ou expressão válida"O que estou fazendo errado? gostaria que me desse uma ajuda!Obrigao Editado Março 11, 2009 por Raoni Santos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 12, 2009 Denunciar Share Postado Março 12, 2009 WHERE (data_protocolo>[Forms]![Consultas]![data_inicio]) And (data_protocolo<[Forms]![Consultas]![data_final])Porém, sem a clausula WHERE ali, a consulta funciona certo, mas quando coloco a condição ele apresenta a seguinte msg:"O mecanismo de banco de dados Microsoft Jet não reconhece '[Forms]![Consultas]![data_inicio]' como um nome de campo ou expressão válida"a expressão é inválida poque voce não pode comparar datas com nomes de forms que contem datasexprimenteWHERE (data_protocolo>([Forms]![Consultas]![data_inicio])) And (data_protocolo<([Forms]![Consultas]![data_final]))ou ainda WHERE (data_protocolo>[data_inicio]) And (data_protocolo<[data_final])uma explicação melhor sobre a claúsula WhereSintaxeSELECT fieldlistFROM tableexpressionWHERE criteriaUma instrução SELECT contendo uma cláusula WHERE apresenta estas partes:Parte Descrição fieldlist O nome de um ou mais campos a serem recuperados juntamente com qualquer alias, predicados de seleção (ALL, DISTINCT, DISTINCTROW ou TOP ) ou outras opções da instrução SELECT. tableexpression O nome da tabela cujos dados serão recuperados. criteria Uma expressão à qual os registros precisarão satisfazer para serem incluídos nos resultados da consulta. ComentáriosO mecanismo de banco de dados do Microsoft Jet seleciona os registros que satisfazem às condições listadas na cláusula WHERE. Se você não especificar uma cláusula WHERE, a consulta retornará todas as linhas da tabela. Se especificar mais de uma tabela na consulta sem incluir uma cláusula WHERE ou JOIN, a consulta produzirá um produto cartesiano das tabelas.WHERE é opcional, mas, quando incluída, aparece depois de FROM. Por exemplo, você pode selecionar todos os funcionários do departamento de vendas (WHERE Dept = 'Vendas') ou todos os clientes com idade entre 18 e 30 (WHERE Idade Between 18 And 30).Se você não usar uma cláusula JOIN para executar operações join de SQL em várias tabelas, o objeto Recordset resultante não será atualizável.WHERE é semelhante a HAVING. WHERE determina quais registros serão selecionados. De maneira semelhante, após os registros serem agrupados por GROUP BY, HAVING determina quais registros serão exibidos.Use a cláusula WHERE para eliminar registros que você não deseja que sejam agrupados pela cláusula GROUP BY.Use várias expressões para determinar quais registros a instrução SQL retornará. Por exemplo, a instrução SQL a seguir seleciona todos os funcionários cujos salários são maiores que $21.000:SELECT LastName, SalaryFROM EmployeesWHERE Salary > 21000;Uma cláusula WHERE pode conter até 40 expressões vinculadas por operadores lógicos, como And e Or.Ao especificar um nome de campo contendo espaço ou pontuação, coloque o nome entre colchetes ([ ]). Por exemplo, uma tabela de informações de clientes pode incluir informações sobre clientes específicos:SELECT [Restaurante favorito do cliente]Quando você especifica o argumento criteria, os literais de data precisam estar no formato americano, mesmo que você não esteja usando a versão americana do mecanismo de banco de dados Microsoft® Jet. Por exemplo, 10 de maio de 1996, é escrito 10/5/96 no Brasil e 5/10/96 nos Estados Unidos. Certifique-se de colocar literais de data com o sinal de número (#), como mostram os próximos exemplos.Para localizar registros com a data 10 de maio de 1996 em um banco de dados do Brasil, é preciso usar esta instrução SQL:SELECT *FROM OrdersWHERE ShippedDate = #5/10/96#;Você também pode usar a função DateValue (ValData) que leva em consideração configurações internacionais estabelecidas pelo Microsoft Windows®. Por exemplo, use este código para os Estados Unidos:SELECT *FROM OrdersWHERE ShippedDate = DateValue('5/10/96');E use este código para o Brasil:SELECT *FROM OrdersWHERE ShippedDate = DateValue('10/5/96');Observação Se a coluna indicada pela seqüência de caracteres do critério for do tipo GUID, a expressão do critério usará uma sintaxe um pouco diferente:WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}Certifique-se de incluir as chaves aninhadas e os hífens conforme é mostrado.Neste endereço uma explicação mais detalhadahttp://www.juliobattisti.com.br/artigos/of...qlconsultas.aspabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raoni Santos Postado Março 12, 2009 Autor Denunciar Share Postado Março 12, 2009 Jhonas,não consegui fazer o que voce falou, li o que voce escreveu mas não deu certo...Ainda apresenta o mesmo erro...Na verdade a questao é como comprar um dado do formulario com um campo numa tabela na consulta do sql....abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Raoni Santos
Olá,
Gostaria que me ajudassem na seguinte questao:
Estou fazer esta consulta no Access
TRANSFORM ((Count(*)) & " - R$" & (SUM([processos].[campo_livre5]))) AS ttotal
SELECT [processos].[sERVIDOR1], Count(*) AS total, Sum([processos].[campo_livre5]) AS totalvalor
FROM (processos RIGHT JOIN assunto ON [processos].[assunto]=[assunto].[Assunto]) LEFT JOIN servidor ON
[processos].[sERVIDOR1]=[servidor].[servidor]
WHERE (data_protocolo>[Forms]![Consultas]![data_inicio]) And (data_protocolo<[Forms]![Consultas]![data_final])
GROUP BY [processos].[sERVIDOR1]
ORDER BY [processos].[sERVIDOR1]
PIVOT [assunto].[Assunto];
Porém, sem a clausula WHERE ali, a consulta funciona certo, mas quando coloco a condição ele apresenta a seguinte msg:
"O mecanismo de banco de dados Microsoft Jet não reconhece '[Forms]![Consultas]![data_inicio]' como um nome de campo ou expressão válida"
O que estou fazendo errado? gostaria que me desse uma ajuda!
Obrigao
Editado por Raoni SantosLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.