COMO VERIFICO SE UMA TABELA NO BD JA EXISTE??

USUARIO.EXCLUIDOS 30/12/2004 12:12:57
#57811
Olá Amigos, olha eu aí novamente..hehehe[S27]
Agora uma básica!! Abaixo segue o código que estou utilizando para pegar os dados, supondo que a tabela não existe... vejam:

Private Sub lstDiverg_DblClick()
Dim db As Database, rsDiverg As Recordset
Dim cadastrado As Boolean
Dim forn, nota

cadastrado = False
'--- abre o banco de dados
Set db = DBEngine(0).OpenDatabase(banco_divergencia)
'--- se a tabela não existir escapa da mensagem de erro
On Error Resume Next
'--- Cria a tabela Notas c/a estrutura
db.Execute "CREATE TABLE Notas ([Fornecedor] TEXT (35), [NF] TEXT (6), " _
& "[Entrada] TEXT (10), [Planilha] TEXT (10), [Data] TEXT (8))"

'--- abre a tabela para receber os dados
Set rsDiverg = db.OpenRecordset("Notas", dbOpenTable)
.... resto do código...
End Sub

O que eu quero evitar é se o cara entrar novamente neste evento nao criar novamente a tabela... Qual é o comando?? Como verifico se a tabela ja existe?
OBS: Utilizando um BD Access...

Muito obrigado a quem poder me ajudar nesta minha dúvida, como sempre preciso da resposta pra amanhã.. hehehe
[S43]
Jefferson
PAULOHSV 30/12/2004 12:20:43
#57814
Resposta escolhida
Para verificar se a tabela existe pode fazer o seguinte

Dim DatabaseOp As Object

Set DatabaseOp = CreateObject("ADOX.Catalog")
veja,
DatabaseOp.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:    este.mdb"
For i = 0 To DatabaseOp.Tables.Count - 1
If DatabaseOp.Tables(i).Name = "nomedatabelae" Then
MsgBox "Table found"
End If
Next i

-------------------------------------------------------------------------------
Ou desta Forma

Function TabelaExiste(TabelaNome as string)
on error resume next
set rs = db.openrecordset(Tabela)
TabelaExiste = (Err.Number = 0)
end if

--------------------------------------------------------------------------------
Aa segunda é melhor a , pois apesar de gerar um erro comum, é mais rápida, imagine você em bancos de dados com muitas tabelas, qual seria o fluxo de tempo do loop só para isso.

PAULOHSV 30/12/2004 12:44:21
#57825
Jefferson como vc é novo por aqui caso a sua duvida não exista mais por favor encerre o topico.
Tópico encerrado , respostas não são mais permitidas