Bom dia caros colegas do fórum, estou com um probleminha em uma exclusão baseada em consulta via código e gostaria do apoio de vocês. Aqui mesmo no fórum achei um tópico semelhante, porém, não consegui aplicar ao que eu quero fazer.
Seguinte, tenho duas tabelas, cadastro de cliente e ordem de serviço, existem critérios para exclusão como por exemplo somente usuário com controle total poderá faze-lo, e gostaria que quando o usuário pressiona-se o botão excluir ele valida-se quem é o usuário logado, se for administrativo ele consulte na tabela processos se não há registros para este cliente, se tiver retorne mensagem : "Não é possível exclusão, existe registro para este cliente" e se não haver registro ele exclui-se e retornava mensagem: "Registro excluido com sucesso" e se não for usuário administrativo retorna-se a mensagem: "Somente usuário administrativo poderá excluir este registro". Acho que expliquei bem a situação...
Abaixo o código que estou querendo implantar mas não estou tendo sucesso
Private Sub btn_excluir_registro_Click()
On Error GoTo TrataErro
Dim Permissao As Boolean
Dim ClienteSQL As String
Dim ConsultaSQL As String
MsgBox "Deseja realmente excluir este Cliente? Esta ação não terá mais volta !", vbYesNo, "Exclusão de registros"
If vbYes = true
Permissao = Forms![Form_Menu]![cxPermissao]
If Permissao = -1 Then
ConsultaSQL = ("SELECT * FROM TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = TAB_CLIENTES.IDCLIENTE")
CurrentDb.Execute ConsultaSQL
MsgBox "Existem Registros para este cliente, não será possível sua exclusão !", vbInformation, "Exclusão confirmada"
Else
ClienteSQL = "DELETE * FROM TAB_CLIENTES WHERE IDCLIENTE = " & Me.IDCLIENTE
CurrentDb.Execute ClienteSQL
MsgBox "Registro apagado com sucesso!", vbInformation, "Exclusão de registro"
End If
If Permissao = False Then
MsgBox "Somente usuário administrativo poderá excluir este registro", vbInformation, "Exclusão de registro"
End If
End If
SaiDaSub:
Exit Sub
TrataErro:
If Err.Number = 2105 Then
Exit Sub
Else
MsgBox "Exclusão cancelada", vbInformation, "Exclusão de registro"
End If
Resume SaiDaSub
End Sub
Me retorna erros do tipo 13, incompatíveis com a expressão, ou conforme vou alterando ele exclui todos os registros que não estão na tabela processos sendo que queria que exclui-se somente o cliente selecionado.
ja tentei o seguinte codigo também no bloco If
ClienteSQL = "Delete * From TAB_Clientes where not exists (Select * From TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = TAB_CLIENTES.IDCLIENTE) O problema quando usei este código excluiu todos os registros de clientes que não estavam na tabela processos e o que eu quero é excluir somente o cliente selecionado selecionado
Estou errando em algum ponto que não enxergo, gostaria da análise dos experientes colegas para resolver mais essa bucha...rsr
Seguinte, tenho duas tabelas, cadastro de cliente e ordem de serviço, existem critérios para exclusão como por exemplo somente usuário com controle total poderá faze-lo, e gostaria que quando o usuário pressiona-se o botão excluir ele valida-se quem é o usuário logado, se for administrativo ele consulte na tabela processos se não há registros para este cliente, se tiver retorne mensagem : "Não é possível exclusão, existe registro para este cliente" e se não haver registro ele exclui-se e retornava mensagem: "Registro excluido com sucesso" e se não for usuário administrativo retorna-se a mensagem: "Somente usuário administrativo poderá excluir este registro". Acho que expliquei bem a situação...
Abaixo o código que estou querendo implantar mas não estou tendo sucesso
Private Sub btn_excluir_registro_Click()
On Error GoTo TrataErro
Dim Permissao As Boolean
Dim ClienteSQL As String
Dim ConsultaSQL As String
MsgBox "Deseja realmente excluir este Cliente? Esta ação não terá mais volta !", vbYesNo, "Exclusão de registros"
If vbYes = true
Permissao = Forms![Form_Menu]![cxPermissao]
If Permissao = -1 Then
ConsultaSQL = ("SELECT * FROM TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = TAB_CLIENTES.IDCLIENTE")
CurrentDb.Execute ConsultaSQL
MsgBox "Existem Registros para este cliente, não será possível sua exclusão !", vbInformation, "Exclusão confirmada"
Else
ClienteSQL = "DELETE * FROM TAB_CLIENTES WHERE IDCLIENTE = " & Me.IDCLIENTE
CurrentDb.Execute ClienteSQL
MsgBox "Registro apagado com sucesso!", vbInformation, "Exclusão de registro"
End If
If Permissao = False Then
MsgBox "Somente usuário administrativo poderá excluir este registro", vbInformation, "Exclusão de registro"
End If
End If
SaiDaSub:
Exit Sub
TrataErro:
If Err.Number = 2105 Then
Exit Sub
Else
MsgBox "Exclusão cancelada", vbInformation, "Exclusão de registro"
End If
Resume SaiDaSub
End Sub
Me retorna erros do tipo 13, incompatíveis com a expressão, ou conforme vou alterando ele exclui todos os registros que não estão na tabela processos sendo que queria que exclui-se somente o cliente selecionado.
ja tentei o seguinte codigo também no bloco If
ClienteSQL = "Delete * From TAB_Clientes where not exists (Select * From TAB_PROCESSOS WHERE TAB_PROCESSOS.IDCLIENTE = TAB_CLIENTES.IDCLIENTE) O problema quando usei este código excluiu todos os registros de clientes que não estavam na tabela processos e o que eu quero é excluir somente o cliente selecionado selecionado
Estou errando em algum ponto que não enxergo, gostaria da análise dos experientes colegas para resolver mais essa bucha...rsr