2012-05-01 47 views
7

Mam DB w programie Access z niesamowitą ilością tabel. Niestety, twórca używał bardzo nieokreślonych nazw, więc nie można nawet zgadnąć, co to jest stolik, tylko patrząc na jego nazwę. Muszę pilnie znaleźć tabelę zawierającą pewne dane i jestem pewien, że znam nazwę niektórych jej kolumn lub przynajmniej słów zawartych w nazwach kolumn. Zasadniczo potrzebuję czegoś w rodzaju "Wyszukaj według nazwy kolumny w każdej tabeli w całej bazie danych", która pokazuje wszystkie tabele zawierające określone nazwy kolumn.Znajdź tabelę, gdy znasz nazwę kolumny?

Czy jest jakiś sposób, aby to osiągnąć, zanim zacznę iść jeden po drugim jak małpa?

Odpowiedz

7

Ta procedura wyświetli nazwę tabeli i nazwę kolumny dla kolumn, których nazwy zawierają dostarczony tekst. Wyniki są drukowane w oknie Immediate (tam z Ctrl + g)

Public Sub ListTablesWithColumnNamesContaining(ByVal pText As String) 
Dim db As DAO.Database 
Dim tdf As DAO.TableDef 
Dim fld As DAO.Field 
Set db = CurrentDb 
For Each tdf In db.TableDefs 
    For Each fld In tdf.Fields 
     If InStr(1, fld.Name, pText, vbTextCompare) > 0 Then 
      Debug.Print tdf.Name & ":", fld.Name 
     End If 
    Next fld 
Next tdf 
Set fld = Nothing 
Set tdf = Nothing 
Set db = Nothing 
End Sub 
+0

Pracował jak czar, dzięki! – Antrim

2

Istnieje sposób na znalezienie wszystkich tabel mających określoną nazwę kolumny, ale wymaga to podania kodu (w przeciwieństwie do możliwości uruchomienia zapytania).

Najpierw należy ustawić tabele systemowe jako "widoczne" w bazie danych. Nie wspomniano, która wersja MS Access jest używana, ale okno dialogowe Opcja powinno zezwalać na coś innego: along these lines.

To powoduje wyświetlenie tabeli MSysObjects, która zawiera wszystkie nazwy tablic użytkowników.

Najprawdopodobniej chciałbyś przetestować wszystkie tabele użytkowników, przekazując nazwy do kodu, który otwiera tabele jako obiekty DAO.TableDef i bada atrybuty odpowiedniej kolekcji Fields.

Allen Browne ma some VBA code that displays these attributes. Możesz dostosować to do swoich potrzeb.

Powiązane problemy