USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Onde está o Erro? (CreateQueryDef)
Claudio EngeSys
PARANAGUA
PR - BRASIL
Postada em 17/02/2005 10:57 hs            
Pessoal,
Já fiz de tudo aqui mas não consigo criar uma consulta...
Uso VB6 e Access2000.
Lá vai o código:
 
    Dim vSQLString As String
    Dim dbSysTerm As New adodb.Connection
    Dim Queryx As QueryDef
    dbSysTerm.Open vConexao  
    vSQLString = "select * from TableEstoque"
    Set Queryx = dbSysTerm.CreateQueryDef("C_Teste", vSQLString )
Daí dá o seguinte erro:
 
Run-time error '3001':
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
 
Agradeço por qq ajuda.

Claudio Alves.
     
Sandro
não registrado
Postada em 17/02/2005 13:11 hs   
Olá Claudio,
 
Você está confundindo ADO com DAO. Você está acessando o banco de dados via ADO e tentando executar sobre ele um método da DAO. CreateQueryDef não pode ser usado em conexões ADO, apenas DAO. Altere o seu código para usar a DAO. Consulte o help do Access para maiores detalhes.
     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 17/02/2005 14:31 hs         
Dim vSQLString As String
Dim dbSysTerm As New adodb.Connection
Dim RsEstoque as New ADODB.Recordset
Set RsEstoque = new ADODB.Recordset
RsEstoque.Open("select * from TableEstoque"), dbSysTerm

 
Assim vai funcionar
     
Claudio EngeSys
PARANAGUA
PR - BRASIL
Postada em 18/02/2005 09:42 hs            
Obrigado kerplunk mas abrir um recordset eu sei, no exemplo eu postei uma string simples só pra mostrar como estava fazendo... na verdade a SQLString é bem complexa e eu precisava mesmo era criar como query.
 
Agradeço também ao Sandro... pois é né, depois é que eu li por inteiro o help e lá diz que no JetEngine só cria query se for com DAO. Bom, resolvi então criar uma table temporária e gerar os dados no momento do relatório; fica mais simples e até mais fácil de dar manutenção do que basear o relatório numa SQLString gigante e mais complicada pra entender.
 
Um abraço.
 

Claudio Alves.
     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 18/02/2005 16:07 hs         
Experimente também a cláusula INTO, assim:
 
"select NroDoc, DtVencimento, (select Descricao from clientes where clientes.codCliente = contasPagar.CodCliente) as Cliente INTO tblTemporaria from contaspagar, clientes where NroDoc = 'A535XY' order by DtVencimento"
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página