DROP TABLE ERRO 3211
                    vb6+Access97
Boa Tarde.
A rotina e a seguinte:
Dim bd As Database
Dim sql8 As String
Set bd = OpenDatabase(Caminho2)
sql8 = "DROP TABLE Contas" & CboPlano
bd.Execute sql8 <---- o erro da aqui
bd.Close
                
            Boa Tarde.
A rotina e a seguinte:
Dim bd As Database
Dim sql8 As String
Set bd = OpenDatabase(Caminho2)
sql8 = "DROP TABLE Contas" & CboPlano
bd.Execute sql8 <---- o erro da aqui
bd.Close
                    Você precisa fechar algum recordset aberto para esta tabela antes de excluÃÂÂ-la.
                
            
                    Estou tentando, mas nao ta dando certo.
Ja tentei CLOSE ALL.
Ja tentei print bd.TableDefs("Contas01").Connect na immediate window e deu "" (vazio).
Tentei agora tambem abrir o formulario sozinho em um projeto vazio e tambem nao deu.
                
            Ja tentei CLOSE ALL.
Ja tentei print bd.TableDefs("Contas01").Connect na immediate window e deu "" (vazio).
Tentei agora tambem abrir o formulario sozinho em um projeto vazio e tambem nao deu.
                    Faz isso...
T+
                
            Dim bd As Database
Dim sql8 As String
rs.close        '''''''''' Antes de abrir para exclisao Feche-o recordset antes
bd.Close        '''''''''' Antes de abrir para exclisao Feche-a antes
Set bd = OpenDatabase(Caminho2)
sql8 = "DROP TABLE Contas" & CboPlano
bd.Execute sql8                         
bd.CloseT+
                    Alguma coisa está usando a tabela...
Pode ser alguma coisa de outro projeto, de algum outro formulário.
Talvez o teste do Print bd.TableDefs tenha retornado vazio por alguma outra conexão do BD estar usando a tabela...
Mas é certo que a mesma está sendo utilizada em algum outro local.
                
            Pode ser alguma coisa de outro projeto, de algum outro formulário.
Talvez o teste do Print bd.TableDefs tenha retornado vazio por alguma outra conexão do BD estar usando a tabela...
Mas é certo que a mesma está sendo utilizada em algum outro local.
                    Obs: Tenho dois controles DATA que 'alimentam' dois TDBgrids no form.
Talvez um deles seja o mordomo, digo, o culpado.
Qual a melhor maneira de desabilita-los temporariamente ?
                
            Talvez um deles seja o mordomo, digo, o culpado.
Qual a melhor maneira de desabilita-los temporariamente ?
                    Tenta fechar o recordset dele... e depois vc abre denovo...
tipo assim:
                
            tipo assim:
    Data1.Recordset.Close
    'Deleta Tabela
    Data1.Recordset.Open
                    Deu ...
Run-time error '91':
Object variable or With block variable not set
Dai eu coloquei na Immediate
print DatOrigem.connect ... e deu ...
Access
(acho que ja eh alguma coisa)
                
            Run-time error '91':
Object variable or With block variable not set
Dai eu coloquei na Immediate
print DatOrigem.connect ... e deu ...
Access
(acho que ja eh alguma coisa)
                    Tenta 
set Data1.Recordset = nothing
ou algo assim...
                
            set Data1.Recordset = nothing
ou algo assim...
                    Continua dando ...
Nao tem uma maneira mais radical de fechar a conexao do Data ?
                
            Nao tem uma maneira mais radical de fechar a conexao do Data ?
                    A proposito acabei de fazer um teste em um projeto vazio, apenas com um botao de comando e funcionou ...
Private Sub Command1_Click()
Dim bd As Database
Dim sql8 As String
Set bd = OpenDatabase("c:\Contabil\Contabil.mdb")
sql8 = "DROP TABLE Contas01"
bd.Execute sql8
bd.Close
End Sub
                
            Private Sub Command1_Click()
Dim bd As Database
Dim sql8 As String
Set bd = OpenDatabase("c:\Contabil\Contabil.mdb")
sql8 = "DROP TABLE Contas01"
bd.Execute sql8
bd.Close
End Sub
                        Tópico encerrado , respostas não são mais permitidas