MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido]Execulta comando SQL via DAO

    avatar
    Convidad
    Convidado


    [Resolvido]Execulta comando SQL via DAO Empty [Resolvido]Execulta comando SQL via DAO

    Mensagem  Convidad 20/4/2012, 17:38

    Olá amigos, tudo bem? Quero mais uma ajuda.
    Tenho que execultar uma determinada exclusão no banco. Gostaria de saber como faço isso usando SQL e DAO. Se possível algo como o "Execute" que temos no currenteprojet.execute.

    Grato
    avatar
    Convidad
    Convidado


    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Convidad 20/4/2012, 17:45


    Olá

    Pesquise com o Buscar por estes termos mesmo: DoCmd.RunSQL e CurrentDb.Execute e vai resolver sua dúvida.
    avatar
    Convidad
    Convidado


    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Convidad 20/4/2012, 18:00

    Então, Norberto, dessa forma eu seu fazer. O que preciso é utilizando DAO. Pois o banco é desvinculado. Daí queria que ao abrir a conexão, podesse de alguma maneira execultar uma sql que apagasse os resgistros. Pois se eu for ter que apagar registro a registro, utilizando um Loop, terei que abrir várias conexãos, pois os dados são de várias tabelas, entendeu? E em SQL, eu simplesmente montaria a consulta exclusão (isso eu sei fazer) e a execultaria utilizando o DAO.

    Já procurei desde ontem aqui, mas sempre que encontro é utlizando um laço, isso é complicado, pois se trata de umas 5 tabela relacionadas. Uma SQL que fizesse a exclusão, imagino que seria o mais viável.

    Alguma sugestão?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Alexandre Neves 20/4/2012, 18:55

    Boa tarde, Marcos

    Não entendi bem o que pretende.
    Para utilizar DAO, só se for para fazer um ciclo pelos registos.
    Se pretende apagar com o comando SQL "DELETE * FROM ..." indicando tabelas relacionadas para que os registos relacionados sejam apagados, o SQL não suporta (que eu saiba) a relação de tabelas na cláusula FROM da instrução DELETE.
    Se for isto que pretende, utilize Currentdb.execute "DELETE * FROM Tabela1 WHERE CampoX IN (SELECT CampoY FROM Tabela2 ...)"
    avatar
    Convidad
    Convidado


    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Convidad 20/4/2012, 19:17

    Alexandre, mas o back-end não é vinculado... O Currentdb.execute é para bancos vinculados. O meu totalmente desvinculado. Uso Recordset do DAO para o vículo...
    Meu problema consiste noseguente: Tenho as tabelas: pedido, detalhe do pedido, produto, categoria... Uma relacionada com a outra... Para apagar um pedido, tenho que apagar os detalhes do pedido, que por suas vez tem apagar os produtos e categorias...

    Da maneira que eu sei fazer, seria abrir um recordset para cada tabela... (muito trabalhoso).

    Teria então uma forma mais simples de se apagar os registros nesse meu caso?
    avatar
    Convidad
    Convidado


    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Convidad 20/4/2012, 19:28

    o Currentdb.execute funciona para bancos desvinculados,

    Currentdb.execute "DELETE * FROM tabela IN 'C:\externo.mdb' WHERE ..."
    avatar
    Convidad
    Convidado


    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Convidad 20/4/2012, 19:35

    Olá...
    Eu sempre tive problemas com esse IN (nunca aprendi a usa-lo Laughing)...
    Se a consulta tem mais de uma tabela, onde por o IN?

    Grato
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Alexandre Neves 20/4/2012, 20:52

    Olá, Marcos

    A cláusula IN tem duas versões
    - pode indicar a localização da base dados onde se encontra a tabela. Nesta acepção, vem a seguir ao nome da tabela
    Como o colega Ricardo indicou: Currentdb.execute "DELETE * FROM tabela IN 'C:\externo.mdb' WHERE ..."
    - pode expressar um conjunto do registos em que o primeiro campo satisfaça a condição indicada relativamente ao campo especificado. Nesta acepção, vem na cláusula WHERE
    Currentdb.execute "DELETE * FROM tabela WHERE Campo IN (SELECT CampoX FROM ...)"
    avatar
    zackzb
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 27
    Registrado : 24/10/2011

    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  zackzb 20/4/2012, 21:35

    Ola amigos,

    Bem realizei um projeto em que acessei bases diferentes inclusive para utilizar algumas funções de outro accdb.
    O que fiz foi instanciar outro obj como access aplication, resolveria o problema tb.

    Código:

    Dim ob1 As New Access.Application
    ob1.OpenCurrentDatabase ("C:\Base.accdb")

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Alexandre Neves 30/7/2012, 19:01

    Tópico resolvido, por falta de retorno atempado.

    Conteúdo patrocinado


    [Resolvido]Execulta comando SQL via DAO Empty Re: [Resolvido]Execulta comando SQL via DAO

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 03:53