JJF
|
GUARULHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 13/05/2005 07:03 hs
Uso ADO, Acess2000 preciso saber via código, se existe uma tabela no Banco de Dados. fvr informar onde estou errando. Obrigado. ORS = OpenSchema(adSchemaTables, Array(Empty, Empty, \servidoranco.mdb, "TABELA"))
|
|
|
|
Martini
|
PAROBÉ RS - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 13/05/2005 10:29 hs
Private Sub Form_Load() Set vgdb = OpenDatabase("C:Documentos_AndréTempBancoDeDados.mdb") End Sub
Private Sub Command4_Click() Dim Encontrou As Boolean Dim TipoObjeto As Integer '1 = tabela, 2 = consulta Dim NomeObjeto As String Encontrou = False TipoObjeto = 2 NomeObjeto = "soma fatura2" subVerificaObjeto NomeObjeto, TipoObjeto, 0, Encontrou If Encontrou Then MsgBox "A " & IIf(TipoObjeto = 1, "Tabela", "Consulta") & " '" & NomeObjeto & "' existe!", vbInformation, "Aviso" Else MsgBox "A " & IIf(TipoObjeto = 1, "Tabela", "Consulta") & " '" & NomeObjeto & "' não existe!", vbInformation, "Aviso" End If End Sub 'Sub troca SQL da consulta no banco de dados Public Sub subVerificaObjeto(NomeObjeto As String, TipoObjeto As Integer, Indice As Integer, ByRef Encontrou As Boolean) If TipoObjeto = 1 Then 'se for uma tabela que está procurando If Indice < vgdb.TableDefs.Count Then If NomeObjeto = vgdb.TableDefs(Indice).Name Then Encontrou = True Else subVerificaObjeto NomeObjeto, TipoObjeto, Indice + 1, Encontrou End If End If ElseIf TipoObjeto = 2 Then 'se for uma consulta que está procurando If Indice < vgdb.QueryDefs.Count Then If NomeObjeto = vgdb.QueryDefs(Indice).Name Then Encontrou = True Else subVerificaObjeto NomeObjeto, TipoObjeto, Indice + 1, Encontrou End If End If End If End Sub
|
|
|
Rodrigo
|
RIO DE JANEIRO RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 13/05/2005 11:28 hs
A resposta anterior funciona porém com DAO usando ADO vc tem usar Catalog. Vc tem q adicionar "Microsoft ADO Ext. 2.7 for DLL Security" nas referências do VB ai é só seguir o exemplo abaixo: dim con as NEW ADODB.Connection dim cat as NEW ADOX.Catalog dim i as Integer dim strTables() as String con.ConnectionString="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=seubanco.mdb; User Id=admin; password=" con.open cat.ActiveConnection = con redim strTables(cat.Tables.Count) For i = 0 To cat.Tables.Count - 1 strTables(i)=cat.Tables(i).Name
Next Isto resolve seu problema. O For está colocando o nome das tabelas do banco de dados no vetor strTables, feito isso, vc pode testa se a tabela que vc quer estah no vetor ou simplesmente fazer o teste direto dentro do FOR. ateh rodrigo
|
TÓPICO EDITADO
|
|
|
|
JJF
|
GUARULHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 13/05/2005 17:49 hs
Rodrigo, obrigado por ter respondido. mais um probleminha eu não tenho a referendia abaixo para escolher, o que eu tenho é o 2.1 for DLL Security aonde eu consigo a atualização. Obrigrado.
Vc tem q adicionar "Microsoft ADO Ext. 2.7 for DLL Security" nas referências do VB ai é só seguir o exemplo abaixo:
|
|
|
Rodrigo
|
RIO DE JANEIRO RJ - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 13/05/2005 17:54 hs
Kra vc pode baixar em: vc vai ver versão 2.8 não tem problema, baixe e instale que vai logo te dar a dll nova.
|
TÓPICO EDITADO
|
|
|
|
JJF
|
GUARULHOS SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 13/05/2005 17:57 hs
Rodrigo Deu Certo já consegui a atualização. Muito Obrigado já estava tentando solucionar este problema a dois dias. Obrigado tb ao martini por se interessar.
|
|
|