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

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    avatar
    LailaNS
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 09/02/2017

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  LailaNS 9/5/2017, 16:17

    Olá, bom dia. Estou tentando fazer isso:

    Código:
    On Error GoTo Err_BApagaTabelas_Click

      Dim tabela As Recordset
      Dim banco As Database
      Set banco = CurrentDb()
      Set tabela = banco.OpenRecordset("SELECT MSysObjects.Name FROM MSysObjects WHERE (((MSysObjects.type) = 4))")
            Do While Not tabela.EOF
                tabela.Delete
                tabela.MoveNext
            Loop

    Exit_BApagaTabelas_Click:
        Exit Sub

    Err_BApagaTabelas_Click:
        MsgBox Err.Description
        
        Resume Exit_BApagaTabelas_Click

    Porém ao executar, dá erro de permissão! Já tentei de tudo, porém não consigo. EU gostaria de saber, é possível alterar o MSysObjects, se sim, como eu posso fazer isso?


    Última edição por LailaNS em 11/5/2017, 14:29, editado 1 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10614
    Registrado : 04/11/2009

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  JPaulo 9/5/2017, 17:01

    Para que é que você quer fazer isso ?

    Além de ser uma tabela de sistema "intocável", não vejo motivo para você modificar ou deletar.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Instruções SQL como utilizar...
    avatar
    LailaNS
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 09/02/2017

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  LailaNS 9/5/2017, 17:09

    Olá JPaulo.

    Acho que você não entendeu o que eu quis dizer e o que o código está fazendo.

    No meu sistema, possui tabelas vinculadas, várias tabelas, e eu preciso ficar apagando uma por uma.E para não precisar apagar uma por vez, a maneira que encontramos é apaga-las na tabela "MsysObjects", selecionando elas pelo type. Eu não quero apagar o MsysObjects e sim as tabelas com type = 4. Por isso fiz um select, pegando todas as tabelas, com type = 4, e depois fiz o delete.

    Espero que você tenha entendido melhor, talvez eu não esteja sabendo explicar da melhor forma, mas é isso, preciso apagar outras tabelas por ela e não ela.
    Há alguma maneira de fazer isso?

    Obrigada pela atenção

    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10614
    Registrado : 04/11/2009

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  JPaulo 9/5/2017, 17:16

    O que você estava a tentar fazer no código passado, era apagar na tabela do sistema;

    Código:
    Public Function RemoveLinksTables()
    'maximoaccess 2017
      Dim db As DAO.Database
      Dim tdfTableDef  As DAO.TableDef
      Dim intContaLinks  As Long
      Dim intPosicaoLinks  As Long

      On Error GoTo 1
      Set db = CurrentDb
      intContaLinks = db.TableDefs.Count - 1

      For intPosicaoLinks = intContaLinks To 0 Step -1
          Set tdfTableDef = db.TableDefs(intPosicaoLinks)
          If Len(tdfTableDef.Connect) > 0 Then
            Debug.Print tdfTableDef.Name
            DoCmd.DeleteObject acTable, tdfTableDef.Name
            Application.RefreshDatabaseWindow
          End If
      Next
     
    sai:
      Exit Function

    1:
      MsgBox "Error " & Err.Number & " (" & _
              Err.Description & ")"
      GoTo sai
    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Instruções SQL como utilizar...
    avatar
    LailaNS
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 09/02/2017

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  LailaNS 9/5/2017, 17:26

    JPaulo,

    muito obrigada pela ajuda! Irei tentar com o seu código


    avatar
    LailaNS
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 09/02/2017

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  LailaNS 10/5/2017, 14:11

    O código do JPaulo deu certo, muito obrigada mesmo Very Happy Very Happy

    Aproveitando o tópico, se caso eu quisesse apagar todas as tabelas locais também do .mdb, como ficaria a função?
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10614
    Registrado : 04/11/2009

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  JPaulo 10/5/2017, 15:45

    Todas as locais e todas as ligadas ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10614
    Registrado : 04/11/2009

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  JPaulo 10/5/2017, 16:01

    Cuidado, porque este código não pergunta se quer mesmo deletar, ok ?

    Código:
    Public Function DeletaTodasTabelas()
    'www.maximoaccess.com
    'Maio 2017
      Dim dbs As DAO.Database
      Dim i As Integer
      
      On Error GoTo 1
      
      Set dbs = CurrentDb
      'delete todas as relações em primeiro lugar
      For i = dbs.Relations.Count - 1 To 0 Step -1
        dbs.Relations.Delete dbs.Relations(i).Name
      Next i
      For i = dbs.TableDefs.Count - 1 To 0 Step -1
      'não deleta as tabelas de sistema
      'nem as tabelas que eu não quero deletar, a tblExemplo1 e a tblExemplo2
      'este segundo passo pode ser ignorado.
        If Left(dbs.TableDefs(i).Name, 4) <> "MSys" _
        And dbs.TableDefs(i).Name <> "tblExemplo1" _
        And dbs.TableDefs(i).Name <> "tblExemplo2" Then
          dbs.TableDefs.Delete dbs.TableDefs(i).Name
        End If
      Next i
      Set dbs = Nothing
      
    sai:
       Exit Function

    1:
       MsgBox "Error " & Err.Number & " (" & _
               Err.Description & ")"
       GoTo sai
    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Folder_announce_new Instruções SQL como utilizar...
    avatar
    LailaNS
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 09/02/2017

    [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código? Empty Re: [Resolvido]Como mudar permissão do MSysObjects para poder alterá-lo via código?

    Mensagem  LailaNS 10/5/2017, 16:20

    Somente as locais!

    Obrigada mais uma vez JPaulo, irei tentar com esse.

      Data/hora atual: 23/6/2021, 06:32