GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Excutar SQL Exclusão via codigo
Go
Novo
Procurar
Notificar
Ferramentas
Responder
  
-star Rating Vote!  Login/Cadastrar 
Programador Sênior

postado
Pessoal Bom Dia,
Copiei Sql de uma consulta exclusão, e estou
tentando executar, via codigo.
Vou confessar, e a primeira vez que tento,
e esta dando erro geral.

Alguem pode tentar me ajudar, consertando e
me indicando os erros.
Muito obrigado



Private Sub ExcluirReg_Click()
On Error GoTo Err_ExcluirReg_Click

‘Ao Clicar no botao

Dim ExcluDeptSetor As String

‘ SQL de uma Consulta Exclusão

ExcluDeptSetor = "DELETE [00ArqTabDepartamento].CodDepart AS" & _
"00ArqTabDepartamento_CodDepart, [00ArqTabDepartamento].NomeDepart," & _
"[01ArqTabNomeSetorFunc].CodDepart, [01ArqTabNomeSetorFunc].NomeSetor" & _
"FROM "00ArqTabDepartamento INNER JOIN 01ArqTabNomeSetorFunc ON" & _
"[00ArqTabDepartamento].CodDepart = [01ArqTabNomeSetorFunc].CodDepart")," & _
"WHERE((([00ArqTabDepartamento].CodDepart) = [Forms]![D0FormExcluir]![CodDepart]))

‘ Excute
DoCmd.RunSQL ExcluDeptSetor


Exit_ExcluirReg_Click:
Exit Sub

Err_ExcluirReg_Click:
MsgBox Err.Description
Resume Exit_ExcluirReg_Click

End Sub
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Júnior

postado Hide Post
Olá!!!

Pelo que ví tem uma vírgula antes do WHERE e tá faltando fechar aspas duplas no fim do WHERE.

Tente isto:

"DELETE [00ArqTabDepartamento].CodDepart AS " & _
"00ArqTabDepartamento_CodDepart, [00ArqTabDepartamento].NomeDepart, " & _
"[01ArqTabNomeSetorFunc].CodDepart, [01ArqTabNomeSetorFunc].NomeSetor " & _
"FROM "00ArqTabDepartamento INNER JOIN 01ArqTabNomeSetorFunc ON " & _
"[00ArqTabDepartamento].CodDepart = [01ArqTabNomeSetorFunc].CodDepart") " & _
"WHERE 00ArqTabDepartamento.CodDepart = [Forms]![D0FormExcluir]![CodDepart]"

Se não der certo poste a mensagem de erro para melhor compreensão.

Sucesso!!!


Maurício
"O único lugar onde SUCESSO vem antes de TRABALHO é no dicionário" - Albert Einstein
 
Postagens: 80 | Localização: São Paulo | Registrado: 29 March 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Mauricio,
Mauricio,

Muito obrigado pela atenção.
O erro e o seguinte :

Erro de compilação
Era esperado : Fim da Instrução

Ai aponta para os dois zeros(00), "From 00

ExcluDeptSetor = "DELETE [00ArqTabDepartamento].CodDepart AS " & _
"00ArqTabDepartamento_CodDepart, [00ArqTabDepartamento].NomeDepart, " & _
"[01ArqTabNomeSetorFunc].CodDepart, [01ArqTabNomeSetorFunc].NomeSetor " & _
"FROM "00ArqTabDepartamento INNER JOIN 01ArqTabNomeSetorFunc ON " & _
"[00ArqTabDepartamento].CodDepart = [01ArqTabNomeSetorFunc].CodDepart") " & _
"WHERE 00ArqTabDepartamento.CodDepart = [Forms]![D0FormExcluir]![CodDepart]"
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Analista Pleno

Figura de  Avelino Sampaio
postado Hide Post
Olá Josevam

Faria algo assim:

ExcluDeptSetor = "DELETE DP.CodDepart AS DP_CodDepart, DP.NomeDepart,"
ExcluDeptSetor= ExcluDeptSetor & "SF.CodDepart, SF.NomeSetor "
ExcluDeptSetor= ExcluDeptSetor & "FROM 00ArqTabDepartamento AS DP "
ExcluDeptSetor= ExcluDeptSetor & "INNER JOIN 01ArqTabNomeSetorFunc AS SF "
ExcluDeptSetor= ExcluDeptSetor & "ON DP_CodDepart = SF.CodDepart "
ExcluDeptSetor= ExcluDeptSetor & "WHERE DP_CodDepart = " & Forms!D0FormExcluir!CodDepart & ";"  


Acho que fica melhor pra entender e corrigir.



Sucesso
...


www.usandoaccess.com.br
vídeo aulas, dicas e tutoriais
muita informação sobre Access 2007
 
Postagens: 1267 | Localização: Rio de Janeiro | Registrado: 06 September 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Ola Avelino,

Agrdeço muito pela atenção.

Esta dando o seguinte erro :
Especifique a tabela que contém os registros que voce deseja excluir
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Gerente

Figura de  rogerio oliveira
postado Hide Post
Voce esta tentando excluir registros de duas tabelas ao mesmo tempo não acredito seja possivel, (e tb não faz muito sentido, ao menos para mim)


Rogério Oliveira
"A inteligência artificial não é páreo para a estupidez natural."
http://www.vhumano.com.br
 
Postagens: 2516 | Localização: Guarulhos - SP | Registrado: 03 February 2005Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Voce tem razao, são 2 tabelas.

E uma SQL de uma consulta exclusao.

Veja o inicio do topico.
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Analista Pleno

Figura de  Avelino Sampaio
postado Hide Post
O Rogério tem razão

Mirei apenas na montagem da string e não observei o resultado disso.

O máximo que vc consegue com isso aí talvez seja assim:

ExcluDeptSetor = "DELETE SF.* "
ExcluDeptSetor= ExcluDeptSetor & "FROM 00ArqTabDepartamento AS DP "
ExcluDeptSetor= ExcluDeptSetor & "INNER JOIN 01ArqTabNomeSetorFunc AS SF "
ExcluDeptSetor= ExcluDeptSetor & "ON DP.CodDepart = SF.CodDepart "
ExcluDeptSetor= ExcluDeptSetor & "WHERE DP.CodDepart = " & Forms!D0FormExcluir!CodDepart & ";"  


Ou seja, vai deletar os registros da tabela "01ArqTabNomeSetorFunc" relacionados com o "codDepart" , que poderia também ser feito assim:

ExcluDeptSetor = "DELETE FROM 01ArqTabNomeSetorFunc WHERE CodDepart = " & Forms!D0FormExcluir!CodDepart & ";"  


Se as tabelas estão relacionadas com exclusão em cascata dos registros da tabela 01ArqTabNomeSetorFunc , bastaria fazer assim:

ExcluDeptSetor = "DELETE FROM 00ArqTabDepartamento WHERE DP.CodDepart = " & Forms!D0FormExcluir!CodDepart & ";"  


Ou seja, ao deletar os registros específicos da tabela 00ArqTabDepartamento todos os registros relacionados da tabela 01ArqTabNomeSetorFunc serão deletados.

Sucesso
...


www.usandoaccess.com.br
vídeo aulas, dicas e tutoriais
muita informação sobre Access 2007
 
Postagens: 1267 | Localização: Rio de Janeiro | Registrado: 06 September 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Avelino e Rogerio,

Agradeço imensamente a orientação de voces,
mas, terei de arrumar outra opção, por que
estas não foram possiveis.

Um grande abraço

Josevam
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Analista Pleno

Figura de  Avelino Sampaio
postado Hide Post
O que vc esta precisando então ?


www.usandoaccess.com.br
vídeo aulas, dicas e tutoriais
muita informação sobre Access 2007
 
Postagens: 1267 | Localização: Rio de Janeiro | Registrado: 06 September 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Estagiário

postado Hide Post
Josevam,

quando necessito excluir dados de uma tabela com select em outra utilizo uma Sub-Query, exemplo:

DELETE Clientes.CódigoDoCliente
FROM Clientes
WHERE Clientes.CódigoDoCliente In (select [CódigoDoCliente] from tbl_2)

Não sei se ajuda ou se é o seu caso.

Att

Fabiano
 
Postagens: 73 | Localização: São Paulo | Registrado: 24 May 2005Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Fabiano,

Muito obrigado.
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Avelino,
Muito obrigado, pela sua atenção
So agora pude responder, Eis a questão :

Tenho um Formulário com um SubFormulario

No Formulário : D0FormExcluir
Fonte de Registro -> 00ArqTabDepart ( CodDepart, NomeDepart,.......)

NoSubFormulario : D1FormExcluir SubFormulario
Fonte de Registro -> SELECT [01ArqTabNomeSetorFunc].CodDepart, NomeSetor,....

ObS : Onde CodDepart são iguais, e estão relacionados

Ao Abrir o Formulário ( D0FormExcluir ), fica assim :

CodDepart NomeDepart
256 AAAAA

CodDepart NomeSetor
256 ZZZZZZZZZZZZ
256 YYYYYYYYYY
256 NNNNNNNNNN

No Formulario consta
Um Botao para Exlcuir o CodDepart, NomeDepart

No SubFormulário consta
Um Botao para Exlcuir o CodDepart, NomeSetor

O Formulário e o SubFormulario, estão “funcionando”, quase perfeitamente., isto é :
Qdo quero excluir o Departamento, OK
Qdo quero excluir o(s) Setor(s) OK

Eu quero excluir o Departamento(CodDepart, NomeDepart), inclusive,
todos os Setores deste departamento(CodDepart, NomeSetor)
Confuso
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Gerente

Figura de  rogerio oliveira
postado Hide Post
Suas tabelas não estão relacionadas?


Rogério Oliveira
"A inteligência artificial não é páreo para a estupidez natural."
http://www.vhumano.com.br
 
Postagens: 2516 | Localização: Guarulhos - SP | Registrado: 03 February 2005Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Rogerio :
Sim as tabelas estão relacionadas.

Avelino, nota 10 pelo exemplo.
Caso Resolvido.

Muito obrigado a todos
Valeuuuuuuuuuuuuuuuu
 
Postagens: 334 | Localização: RIO DE JANEIRO | Registrado: 28 November 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
 Tópico Anterior | Próximo Tópico Powered by Eve For Enterprise  
 

GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Excutar SQL Exclusão via codigo

©