QUERY FUNCIONA NO ACCESS MAS NO VB 6.0 NAO
Marcelo, fiz as adaptações necessárias conforme você me explicou, porém está dando o seguinte erro:
Ponto e vÃrgula (;) faltando no final da instrução SQL.
Minha query ficou assim:
[Ô]SELECT Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição [Ô] + _
[Ô]FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.Código_convênio = Cred_desc.Código_convênio) ON Funcionários.Código = [Ô] + _
[Ô]Cred_desc.Código_funcionário [Ô] + _
[Ô]ORDER BY Funcionários.Nome, Funcionários.Código, Cred_desc.Data PIVOT Convênios.Descrição[Ô]
Já tentei colocar o (;) depois da instrução (PIVOT Convênios.Descrição), mas de nada adiantou.
Ponto e vÃrgula (;) faltando no final da instrução SQL.
Minha query ficou assim:
[Ô]SELECT Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição [Ô] + _
[Ô]FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.Código_convênio = Cred_desc.Código_convênio) ON Funcionários.Código = [Ô] + _
[Ô]Cred_desc.Código_funcionário [Ô] + _
[Ô]ORDER BY Funcionários.Nome, Funcionários.Código, Cred_desc.Data PIVOT Convênios.Descrição[Ô]
Já tentei colocar o (;) depois da instrução (PIVOT Convênios.Descrição), mas de nada adiantou.
tentou tirar o pivot
ficaria assim
[Ô]SELECT Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição [Ô] + _
[Ô]FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.Código_convênio = Cred_desc.Código_convênio) ON Funcionários.Código = [Ô] + _
[Ô]Cred_desc.Código_funcionário [Ô] + _
[Ô]ORDER BY Funcionários.Nome, Funcionários.Código, Cred_desc.Data;[Ô]
ficaria assim
[Ô]SELECT Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição [Ô] + _
[Ô]FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.Código_convênio = Cred_desc.Código_convênio) ON Funcionários.Código = [Ô] + _
[Ô]Cred_desc.Código_funcionário [Ô] + _
[Ô]ORDER BY Funcionários.Nome, Funcionários.Código, Cred_desc.Data;[Ô]
Tentei, e deu um outro erro mais doido ainda:
Nenhum valor foi fornecido para um ou mais parâmetros necessários.
Marcelo, como o nosso colega KERPLUNK já disse: será que o PIVOT em conexões ADO funciona mesmo? estou começando a achar que não.
Não teria algum outro método para montar essa query ???
Nenhum valor foi fornecido para um ou mais parâmetros necessários.
Marcelo, como o nosso colega KERPLUNK já disse: será que o PIVOT em conexões ADO funciona mesmo? estou começando a achar que não.
Não teria algum outro método para montar essa query ???
Tente novamente com esta alteração
[Ô]SELECT Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição [Ô] + _
[Ô]FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.Código_convênio = Cred_desc.Código_convênio) ON Funcionários.Código = [Ô] + _
[Ô]Cred_desc.Código_funcionário [Ô] + _
[Ô]ORDER BY Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição;[Ô]
[Ô]SELECT Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição [Ô] + _
[Ô]FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.Código_convênio = Cred_desc.Código_convênio) ON Funcionários.Código = [Ô] + _
[Ô]Cred_desc.Código_funcionário [Ô] + _
[Ô]ORDER BY Funcionários.Código, Funcionários.Nome, Cred_desc.Data, Cred_desc.Valor, Convênios.Descrição;[Ô]
Marcelo dessa forma ele realmente funciona, porém a consulta acaba ficando assim:
CÓDIGO NOME DATA VALOR CONVÊNIO
0001 JOÃO 21/03/2012 100,00 UNIMED
0002 MARIA 21/03/2012 150,00 SERPRAN
0003 JOSé 21/03/2012 200,00 GOOD-CARD
Na verdade eu utilizo (PIVOT Convênios.Descrição) para que a consulta fique assim:
CÓDIGO NOME DATA UNIMED SERPRAN CODD-CARD
0001 JOÃO 21/03/2012 100,00 0,00 0,00
0002 MARIA 21/03/2012 0,00 150,00 0,00
0003 JOSé 21/03/2012 0,00 0,00 200,00
No access ele aceita perfeitamente a query em questão, mas no VB eu não sei o que ocorre, ele sempre dá erro.
CÓDIGO NOME DATA VALOR CONVÊNIO
0001 JOÃO 21/03/2012 100,00 UNIMED
0002 MARIA 21/03/2012 150,00 SERPRAN
0003 JOSé 21/03/2012 200,00 GOOD-CARD
Na verdade eu utilizo (PIVOT Convênios.Descrição) para que a consulta fique assim:
CÓDIGO NOME DATA UNIMED SERPRAN CODD-CARD
0001 JOÃO 21/03/2012 100,00 0,00 0,00
0002 MARIA 21/03/2012 0,00 150,00 0,00
0003 JOSé 21/03/2012 0,00 0,00 200,00
No access ele aceita perfeitamente a query em questão, mas no VB eu não sei o que ocorre, ele sempre dá erro.
Cara. Então deixe a Consulta salva no BD, e faça a consulta com ADOCommand e ADOParameter.
Você testou da forma que postei antes?
Citação:[txt-color=#e80000]Obs: Não coloque acentos, caracteres especiais ou espaços em nome de campos de sua tabela.[/txt-color]
Use a própria consulta do Access, sem filtros, no select vb6 como você faz com as tabelas. Por exemplo, Se a tabela Pivot no Access for [Ô]ConsMedia[Ô], você faz um select assim:Select * From ConsMedia Where Cod_Aluno=[ô][Ô] & Txt1.Text & [Ô][ô][Ô]
Roberto,me desculpe, não entendi. O que eu deveria fazer com a Query abaixo?
TRANSFORM Min(Cred_desc.Valor) AS Valor
SELECT Funcionários.Nome, Funcionários.Código, Cred_desc.Data
FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.[Código convênio] = Cred_desc.[Código convênio]) ON Funcionários.Código = Cred_desc.[Código funcionário]
GROUP BY Funcionários.Nome, Funcionários.Código, Cred_desc.Data, Funcionários.Código
PIVOT Convênios.Descrição;
Essa query é a que funciona no Access
TRANSFORM Min(Cred_desc.Valor) AS Valor
SELECT Funcionários.Nome, Funcionários.Código, Cred_desc.Data
FROM Funcionários INNER JOIN (Convênios INNER JOIN Cred_desc ON Convênios.[Código convênio] = Cred_desc.[Código convênio]) ON Funcionários.Código = Cred_desc.[Código funcionário]
GROUP BY Funcionários.Nome, Funcionários.Código, Cred_desc.Data, Funcionários.Código
PIVOT Convênios.Descrição;
Essa query é a que funciona no Access
LLAIA, obrigado pela postagem.
Como faço essa consulta com ADOCommand e ADOParameter via VB, poderia me dar um exemplo ?
Como faço essa consulta com ADOCommand e ADOParameter via VB, poderia me dar um exemplo ?
Então, essa query no access é uma consulta access que tem um nome. Ela pode ser usada normalmente no vb6 como você usa uma tabela.
Ex.:
Tabela access [Ô]Select * From NomeDaTabela[Ô]
Consulta Access [Ô]Select * From NomeDaConsulta[Ô]
Ex.:
Tabela access [Ô]Select * From NomeDaTabela[Ô]
Consulta Access [Ô]Select * From NomeDaConsulta[Ô]
Tópico encerrado , respostas não são mais permitidas