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


3 participantes

    [Resolvido]Mensagem de Erro 3211

    asimoes
    asimoes
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    [Resolvido]Mensagem de Erro 3211 Empty [Resolvido]Mensagem de Erro 3211

    Mensagem  asimoes 2/12/2014, 13:59

    Ola Pessoal!
    Alguém sabe porque está gerando a mensagem abaixo ao tentar excluir uma tabela criada via CREATE TABLE?

    "O mecanismo de banco de dados não pôde bloquear a tabela porque ela já está sendo usada por outra pessoa ou processo. (Erro 3211)"

    Eu vi vários Post sobre o assunto já testei de todas as formas, mas esse msg ñ sai.


    Abaixo estou colocando os códigos para criar tabela e dos eventos em um form


    Cria a tabela desta forma:
    Código:
       StrTabela = StrEntradaPlan
       strPlan = Replace(StrTabela, " ", "")

       ' Cria Tabela conforme planejador
       CurrentDb.Execute "CREATE TABLE [" & strPlan & "]" _
       & "(Ordem TEXT, Item TEXT, Qtde INTEGER, Tipo TEXT, Linha TEXT, [Tipo Reporte] TEXT, Alocada TEXT, Cliente TEXT, [Grupo     Cliente] TEXT, [Pedido Cliente] TEXT, Sequência TEXT, Narrativa TEXT, Inicio TEXT, Termino TEXT, Dep TEXT, Plan TEXT, Entrega TEXT, Abrir YESNO);"

       'Cria propriedades "Abrir" da tabela
       Set db = CurrentDb
       Set tdf = db.TableDefs(strPlan)
       Set fld = tdf.Fields("Abrir")
       Set prp = fld.CreateProperty("DisplayControl", dbInteger, acCheckBox)
       fld.Properties.Append prp

    Eventos do form (Declaração):
    Código:
    Option Compare Database
    Option Explicit
    Dim BConfirmacaoAnali As Byte

    Eventos do form (Form_Load):
    Código:
       Me.Caption = strPlan
       Me.RecordSource = "SELECT * FROM " & strPlan & ";"

    Eventos do form (Unload):
    Código:
       BConfirmacaoAnali = MsgBox(Prompt:="Se você clicar em SIM, estará finalizando a Análise Semana " & StrEntradaSemana & " e será gerado o arquivo .XML.", Buttons:=vbYesNo + vbInformation, Title:="Finalizar Analise Semana " & StrEntradaSemana & "?")
       If BConfirmacaoAnali = 7 Then
          DoCmd.CancelEvent
       End If
       CurrentDb.Execute "INSERT INTO HistoricoGeradorOrdem ( Ordem, Item, Qtde, Tipo, Linha, [Tipo Reporte], Alocada, Cliente, [Grupo  Cliente], [Pedido Cliente], Sequência, Narrativa, Inicio, Termino, Dep, Plan, Entrega, Abrir ) SELECT [" & strPlan & "].[Ordem], [" & strPlan & "].[Item], [" & strPlan & "].[Qtde], [" & strPlan & "].[Tipo], [" & strPlan & "].[Linha], [" & strPlan & "].[Tipo Reporte], [" & strPlan & "].[Alocada], [" & strPlan & "].[Cliente], [" & strPlan & "].[Grupo Cliente], [" & strPlan & "].[Pedido Cliente], [" & strPlan & "].[Sequência], [" & strPlan & "].[Narrativa], [" & strPlan & "].[Inicio], [" & strPlan & "].[Termino], [" & strPlan & "].[Dep], [" & strPlan & "].[Plan], [" & strPlan & "].[Entrega], [" & strPlan & "].[Abrir] FROM [" & strPlan & "]"
       ExportaParaXls

    Eventos do form (Close):
    Código:
       Me.RecordSource = ""
       Me.Caption = ""

    Existem outros eventos, mas esses é q estão relacionados com o erro!

    Desde já agradeço a ajuda!


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.
    LiveBrain
    LiveBrain
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 15/05/2011

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  LiveBrain 2/12/2014, 16:18

    Aonde você passa o valor para a variável strPlan na função Load do seu form?


    .................................................................................
    Abraços

    Live Brain Tutoriais

    "Fraca é a pessoa que não conhece a força que possui nos amigos"
    asimoes
    asimoes
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  asimoes 2/12/2014, 16:22

    strPlan é uma variável publica de outro modulo recebida por um inputbox!


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  Avelino Sampaio 2/12/2014, 16:37

    Olá!

    Creio que a exclusão da tabela só possa acontecer depois de desconectar o RecordSource. Algo assim:

    Me.RecordSource = ""
    currentdb.execute "Drop Table NomedaTabela;"

    Aguardamos


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    asimoes
    asimoes
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  asimoes 2/12/2014, 17:46

    Então Avelino, no código q coloquei acima, coloco no evento close do form os cod abaixo:

    Código:
       Me.RecordSource = ""
       Me.Caption = ""

    e mesmo assim ñ deu!


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  Avelino Sampaio 2/12/2014, 18:09

    Não deu porque ele deve estar atuando depois do DROP. Coloque pontos de interrupção em cada linha dos eventos e veja quem tá na frente de quem na execução.

    Aguardamos



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    asimoes
    asimoes
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  asimoes 2/12/2014, 23:46

    O estranho q o Drop é o ultimo comando a ser executado! mesmo colocando logo pós desconectar do recordset o erro permanece!

    Código:
       Me.RecordSource = ""
       Me.Caption = ""
       CurrentDb.Execute "Drop Table " & strPlan & ";"


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  Avelino Sampaio 3/12/2014, 08:28

    Você está limpando as variáveis que se utilizam da tabela ? Exemplo:

    Set tdf = nothing


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    asimoes
    asimoes
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  asimoes 3/12/2014, 11:14

    Ola Avelino!

    Sim limpei todas as variáveis e nada! Continua o erro! Já revi tudo e quanto mais procuro na internet mais pessoas com o mesmo problema eu acho, os que tiveram solução são os que estavam utilizando o arquivo em rede com problemas de compartilhamento, restrição de segurança, mais no meu caso está no C: da máquina, pois ainda estou desenvolvendo!


    Código:
       db.Close
       Set db = Nothing
       Set tdf = Nothing
       Set fld = Nothing
       Set prp = Nothing


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.
    asimoes
    asimoes
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 30/04/2013

    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  asimoes 3/12/2014, 11:38

    Avelino, pensando no que vc disse sobre limpar as variáveis comecei a ler o meu código linha por linha e focando em fechar aberturas e esvaziar variáveis, nisso encontrei o problema!

    Acontece que eu me conecto a um outro BD com o comando
    Código:
    Set dbs = OpenDatabase("c:\caio\NECESSIDADE ITENS.accdb")

    e apos me conectar fazer os eventos que precisava fazer no BD conectado eu apelas o fechava com
    Código:
    dbs.Close
    mas eu não estava esvaziando a variável dbs! então coloquei o comando
    Código:
    Set dbs = Nothing
    logo acima do comando Close e "Vu alá"!

    Fica a dica pra quem passar pelo mesmo problema!

    Muito Obrigado


    .................................................................................
    Não tenho medo de compartilhar conhecimento.
    Essa é a unica coisa que as pessoas não poderão roubar de mim, pois ninguém nunca sabe igual, mesmo que saiba a mesma coisa.

    Conteúdo patrocinado


    [Resolvido]Mensagem de Erro 3211 Empty Re: [Resolvido]Mensagem de Erro 3211

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 12:20