AGRUPAR E MOSTAR O ULTIMO
sem problema amigo!
eu espero!
eu espero!
Ufa.... Essa foi meio hard mas, vamos lá...
Fiz o SELECT e vc completa alterando para a string do VB. Não esquece de trocar as datas pelas variáveis do VB....
Fiz o SELECT e vc completa alterando para a string do VB. Não esquece de trocar as datas pelas variáveis do VB....
SELECT prd.DESCRICAO AS var_Desc, prd.CODIGO AS var_codEnt, prd.QUANT_ESTOQUE AS var_Quant, peiult.CUSTO AS var_Custo, peiult.FRETE AS var_Frete, peiult.IMPOSTO_VALOR_COMPRA AS var_ImpCompra, peiult.CUSTO_COMPRA AS var_VlrCompra, peiult.VENDA AS var_VENDA FROM (Produtos AS prd INNER JOIN Produtos_Entrada_Itens AS peiult ON prd.CODIGO = peiult.CODIGO_PRODUTO) INNER JOIN (SELECT pei1.CODIGO_PRODUTO, MAX(pei1.DATA_ENTRADA) AS DATA_ENTRADA, Max(pei1.CODIGO) AS Codigo FROM Produtos_Entrada_Itens AS pei1 WHERE pei1.DATA_ENTRADA BETWEEN #2009-11-10# AND #2009-11-13# GROUP BY pei1.CODIGO_PRODUTO) AS pei ON (peiult.CODIGO_PRODUTO = PEI.CODIGO_PRODUTO) AND (peiult.DATA_ENTRADA = PEI.DATA_ENTRADA) AND (peiult.CODIGO = PEI.Codigo) ORDER BY prd.descricao
Deu erro ao executar assim:
Run-time error [ô]3131[ô]:
Erro de sintaxe de clausula FROM
olha meu codigo conforme me passou com as modificações:
Run-time error [ô]3131[ô]:
Erro de sintaxe de clausula FROM
olha meu codigo conforme me passou com as modificações:
SQL = [Ô]SELECT prd.DESCRICAO AS var_Desc, prd.CODIGO AS var_codEnt, prd.QUANT_ESTOQUE AS var_Quant, peiult.CUSTO AS var_Custo, peiult.FRETE AS var_Frete, peiult.IMPOSTO_VALOR_COMPRA AS var_ImpCompra, peiult.CUSTO_COMPRA AS var_VlrCompra, peiult.VENDA AS var_VENDA FROM (Produtos AS prd INNER JOIN Produtos_Entrada_Itens AS peiult ON prd.CODIGO = peiult.CODIGO_PRODUTO) INNER JOIN (SELECT pei1.CODIGO_PRODUTO, MAX(pei1.DATA_ENTRADA) AS DATA_ENTRADA, Max(pei1.CODIGO) AS Codigo FROM Produtos_Entrada_Itens AS pei1 WHERE pei1.DATA_ENTRADA between #[Ô] & Format(Mask1, [Ô]mm/dd/yy[Ô]) & [Ô]# and #[Ô] & Format(Mask2, [Ô]mm/dd/yy[Ô]) & [Ô]# GROUP BY pei1.CODIGO_PRODUTO) AS pei ON (peiult.CODIGO_PRODUTO = PEI.CODIGO_PRODUTO) AND (peiult.DATA_ENTRADA = PEI.DATA_ENTRADA) AND (peiult.CODIGO = PEI.Codigo) ORDER BY prd.descricao[Ô]
Então, reparei que o Banco está em ACCESS 97 e eu precisei converter para ACCESS 2000/2003 pois eu não tinha o 97.
Esse SELECT funcionou com o banco que me enviou, em 2000/2003 sem problemas. Será que o 97 não tem problemas com SUB-SELECT?? Tenho 99% de certeza que é isso. Não quer experimentar com um ACCESS 2000 ou 2003 e ver se funciona? Se funcionar, é só fazer o update da versão, sem problemas, e atualizar o ADO para o 2.7 ou 2.8.
Tentei fazer sem uzar sub-selects mas sinseramente, assumo a minha limitação... Não consegui.
Esse SELECT funcionou com o banco que me enviou, em 2000/2003 sem problemas. Será que o 97 não tem problemas com SUB-SELECT?? Tenho 99% de certeza que é isso. Não quer experimentar com um ACCESS 2000 ou 2003 e ver se funciona? Se funcionar, é só fazer o update da versão, sem problemas, e atualizar o ADO para o 2.7 ou 2.8.
Tentei fazer sem uzar sub-selects mas sinseramente, assumo a minha limitação... Não consegui.
amigo, fiz os seguintes passos:
-Convertir de Access 97 para 2000
-no menu Project, escolhi a Preferences e depois Microsoft DAO 2.8
Quando executo o programa ele diz que não reconhece o formato do banco de dados.
quando dou um Debug ele seleciona a linha q tá em negrito abaixo:
Sub ABRIR_BD_SEM_DATA1()
Set AreaTrabalho = DBEngine.Workspaces(0)
Set BD = AreaTrabalho.OpenDatabase(App.Path & [Ô]\cyberbase.mdb[Ô], False, False)
End Sub
-Convertir de Access 97 para 2000
-no menu Project, escolhi a Preferences e depois Microsoft DAO 2.8
Quando executo o programa ele diz que não reconhece o formato do banco de dados.
quando dou um Debug ele seleciona a linha q tá em negrito abaixo:
Sub ABRIR_BD_SEM_DATA1()
Set AreaTrabalho = DBEngine.Workspaces(0)
Set BD = AreaTrabalho.OpenDatabase(App.Path & [Ô]\cyberbase.mdb[Ô], False, False)
End Sub
Opss.... Se está usando DAO, tenta usar a [Ô]Microsoft DAO 3.51 Object Library[Ô] ou [Ô]Microsoft DAO 3.6 Object Library[Ô]. Pensei que usava ADO. Acredito que a 2.8 possa não ser compatÃvel com o ACCESS 2000
Amigo, usando DAO 3.6 funcionou perfeitamente...
O problema eh q meu projeto tem uns 40 formularios usando DAO 3.51...
tem como fazer essa consulta ai no formado de DAO 3.51 ?
O problema eh q meu projeto tem uns 40 formularios usando DAO 3.51...
tem como fazer essa consulta ai no formado de DAO 3.51 ?
Ao que parece, o DAO 3.51 não tem um pré-compilador tão completo de SQL (ou algo parecido com isso), por isso talvez ele não consiga trabalhar com sub-queries.
De qualquer forma, parece que os benefÃcios são grandes e, se os 40 forms estiverem todos no mesmo projeto, não precisa alterar os forms, só apontando para o DAO 3.6 no projeto e apagando a referência para o 3.51 que funcionará...
Seria trabalhoso se vc quizesse mudar para ADO.
De qualquer forma, parece que os benefÃcios são grandes e, se os 40 forms estiverem todos no mesmo projeto, não precisa alterar os forms, só apontando para o DAO 3.6 no projeto e apagando a referência para o 3.51 que funcionará...
Seria trabalhoso se vc quizesse mudar para ADO.
um exemplo de erro por causa da mudança:
[ô]codigo do botão
ABRIR_BD_com_Data Me.Data2
Data2.RecordSource = [Ô]SELECT DISTINCT DESCRICAO FROM PRODUTOS ORDER BY DESCRICAO[Ô]
Data2.Refresh
[ô]função ABRIR_BD_com_Data
Sub ABRIR_BD_com_Data(objData As Data)
objData.DatabaseName = (App.Path & [Ô]\CYBERBASE.mdb[Ô])
End Sub
ai ele dar o erro de banco de dados nao conhecido.
O que preciso fazer ai para corrigir esse problema?
[ô]codigo do botão
ABRIR_BD_com_Data Me.Data2
Data2.RecordSource = [Ô]SELECT DISTINCT DESCRICAO FROM PRODUTOS ORDER BY DESCRICAO[Ô]
Data2.Refresh
[ô]função ABRIR_BD_com_Data
Sub ABRIR_BD_com_Data(objData As Data)
objData.DatabaseName = (App.Path & [Ô]\CYBERBASE.mdb[Ô])
End Sub
ai ele dar o erro de banco de dados nao conhecido.
O que preciso fazer ai para corrigir esse problema?
Aproveitando que abriu um novo tópico só com a dúvida do DAO e que este já pode encerrar, fecha ele e me pontua afinal, este deu um belo trampo (rs).
Entretando, vou pesquisar sobre a alteração do DAO e continuamos no novo tópico.
Abraços.
Entretando, vou pesquisar sobre a alteração do DAO e continuamos no novo tópico.
Abraços.
Tópico encerrado , respostas não são mais permitidas