MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Criar tabela com SQL VBA

    Compartilhe

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    [Resolvido]Criar tabela com SQL VBA

    Mensagem  ilvecchio em Seg 27 Out 2014, 04:50

    Buenas!
    Estou substituindo, dentro de códigos VBA, de alguns formulários, as consultas por SQL. Estava indo tudo muito bem, até substituir uma que cria tabela.
    Vinha criando a partir do SQL da própria consulta, mas aí não funcionou (erro 13, tipos incompatíveis : não mostra onde está o erro, marca toda a instrução SQL).
    Na Web não encontrei exemplos que usem duas tabelas para criar outra. Só tem para criar a partir do zero.

    O SQL da minha consulta é este

    SELECT [TabBase].Cliente, Left([TabBase]!Setor,3) & " - " & [TabBase]![Tipo] AS SetorTipo, [TabBase].Empresa1, [TabBase].CodCliente, False AS Marcar, [TabEndereco].CodEnd INTO TabTemporariaFormControle
    FROM TabBase INNER JOIN TabEndereco ON [TabBase].CodCliente = [TabEndereco].CodCliente
    WHERE ((([TabEndereco].CodCliente)=FunCodCliente()));

    CodCliente é texto, FunCodCliente é uma função com uma variável que contém o CodCliente (com o SQL colocarei a variável ).

    Alguém pode me ajudar?
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]Criar tabela com SQL VBA

    Mensagem  Avelino Sampaio em Seg 27 Out 2014, 05:33

    Olá!

    Coloque a função fora da string e observe o uso dos apóstrofes já que o campo codCliente é do tipo String:

    currentdb.execute = "SELECT... WHERE TabEndereco.CodCliente= '" & FunCodCliente() & "';"

    Aguardamos

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Re: [Resolvido]Criar tabela com SQL VBA

    Mensagem  ilvecchio em Seg 27 Out 2014, 06:15

    Obrigado, Avelino.

    O Erro continua. Descobri que não aceita a concatenação dos campos Setor e Tipo, ambos do tipo texto:

    SELECT [TabBase].Cliente, Left([TabBase]!Setor,3) & " - " & [TabBase]![Tipo] AS SetorTipo, ...

    Se eu tirar  um dos segmentos  Left([TabBase]!Setor,3) & " - " & ou  & " - " & [TabBase]![Tipo], aí funciona.

    Como contorno esse problema? É um erro na sintaxe?
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]Criar tabela com SQL VBA

    Mensagem  Avelino Sampaio em Seg 27 Out 2014, 06:47

    Escreva aqui exatamente como está a SQL no seu VBA

    Aguardamos

    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Re: [Resolvido]Criar tabela com SQL VBA

    Mensagem  ilvecchio em Seg 27 Out 2014, 07:01

    Avelino, está igual o post:

    DoCmd.RunSQL "SELECT [TabBase].Cliente, Left([TabBase]!Setor,3) & " - " & [TabBase]![Tipo] AS SetorTipo, [TabBase].Empresa1, [TabBase].CodCliente, False AS Marcar, [TabEndereco].CodEnd INTO TabTemporariaFormControle
    FROM TabBase INNER JOIN TabEndereco ON [TabBase].CodCliente = [TabEndereco].CodCliente
    WHERE ((([TabEndereco].CodCliente)=FunCodCliente()));"

    E como disse, o problema está na concatenação.
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3383
    Registrado : 04/04/2010

    Re: [Resolvido]Criar tabela com SQL VBA

    Mensagem  Avelino Sampaio em Seg 27 Out 2014, 07:10

    Experimente trocar por apóstrofes:

    ...Left([TabBase]!Setor,3) & ' - ' & [TabBase]![Tipo] AS SetorTipo...

    Aguardamos


    ilvecchio
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 132
    Registrado : 16/11/2012

    Re: [Resolvido]Criar tabela com SQL VBA

    Mensagem  ilvecchio em Seg 27 Out 2014, 07:28

    É isso aí Grande!

    Valeu, muito obrigado.


      Data/hora atual: Seg 26 Jun 2017, 05:09