DROP TABLE ERRO 3211

SERGIO.CARDOSO 27/08/2007 13:37:04
#232850
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

USUARIO.EXCLUIDOS 27/08/2007 13:52:06
#232859
Você precisa fechar algum recordset aberto para esta tabela antes de excluí-la.


SERGIO.CARDOSO 27/08/2007 14:02:41
#232860
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.
SILVERDRAGON 27/08/2007 14:05:21
#232861
Resposta escolhida
Faz isso...


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.Close



T+


USUARIO.EXCLUIDOS 27/08/2007 14:05:50
#232862
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.
SERGIO.CARDOSO 27/08/2007 14:21:25
#232867
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 ?

USUARIO.EXCLUIDOS 27/08/2007 14:53:17
#232878
Tenta fechar o recordset dele... e depois vc abre denovo...

tipo assim:

    Data1.Recordset.Close
'Deleta Tabela
Data1.Recordset.Open

SERGIO.CARDOSO 27/08/2007 15:25:52
#232897
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)
SILVERDRAGON 27/08/2007 15:33:31
#232902
Tenta

set Data1.Recordset = nothing


ou algo assim...



SERGIO.CARDOSO 27/08/2007 15:46:13
#232911
Continua dando ...
Nao tem uma maneira mais radical de fechar a conexao do Data ?
SERGIO.CARDOSO 27/08/2007 15:49:34
#232915
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
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas