Список таблиц в базе Access

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
XPress
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 02.07.2005 (Сб) 10:54
Откуда: Из-за компа!

Список таблиц в базе Access

Сообщение XPress » 26.02.2006 (Вс) 12:14

Дорогия братья, обожаемые коллеги!
Не подскажите, возможно ли из MS ACCESS извлечь посредством SQL имена таблиц в базе, если нет, то каким образом возможно? Если к базе я подключаюсь следующим образом:
Код: Выделить всё
Public db As New ADODB.Connection
Public rs As New ADODB.Recordset
db.CursorLocation = adUseClient
db.ConnectionString = "Provider=Microsoft.Jet.OLEdB.4.0;Data Source=" & App.Path & "\Sotrudniki.mdb"
db.Open
Или вообще подскажите как подключится по другому, если этим способом не получится изять список таблиц моей базы!
Всем огромное спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.02.2006 (Вс) 12:26

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 26.02.2006 (Вс) 12:36

Код: Выделить всё
Dim db As Database
Dim tb As TableDef

fn$ = "C:\dddd\mybase.mdb"
Set db = OpenDatabase(fn, , , "Access")

For Each tb In db.TableDefs
    MsgBox tb.Name
Next tb

XPress
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 02.07.2005 (Сб) 10:54
Откуда: Из-за компа!

Сообщение XPress » 26.02.2006 (Вс) 14:17

Вот нашел :lol: ...
Код: Выделить всё
Private Sub op()
    On Error GoTo ErrorHandler

    Dim Cnxn As ADODB.Connection
    Dim rstSchema As ADODB.Recordset
    Dim strCnxn As String
       
    Set Cnxn = New ADODB.Connection
    strCnxn = "Provider=Microsoft.Jet.OLEdB.4.0;Data Source=Sotrudniki.mdb;"
    Cnxn.Open strCnxn
       
    Set rstSchema = Cnxn.OpenSchema(adSchemaTables)
   
    Do Until rstSchema.EOF
        If rstSchema!TABLE_TYPE = "TABLE" Then
            List1.AddItem rstSchema!TABLE_NAME
        End If
        rstSchema.MoveNext
    Loop
   
    ' clean up
    rstSchema.Close
    Cnxn.Close
    Set rstSchema = Nothing
    Set Cnxn = Nothing
    Exit Sub
   
ErrorHandler:
    ' clean up
    If Not rstSchema Is Nothing Then
        If rstSchema.State = adStateOpen Then rstSchema.Close
    End If
    Set rstSchema = Nothing
   
    If Not Cnxn Is Nothing Then
        If Cnxn.State = adStateOpen Then Cnxn.Close
    End If
    Set Cnxn = Nothing
   
    If Err <> 0 Then
        MsgBox Err.Source & "-->" & Err.Description, , "Error"
    End If

End Sub


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 125

    TopList