Akademia VBA

czyli jak uzyskać władzę nad światem … danych

Jak załadować nazwy tabel do listy na formularzu

Kategorie: Access VBA — Dariusz Kolasa o 16:25, 22 Cze 2010

Czasem chcemy aby użytkownik mógł wygodnie wskazać nazwę tabeli, np aby użyć jej jako parametru metody transport arkusza. Aby poniższy kod zadział:

  • Na formularzu musi znajdować się kontrolka typu Pole listy.
  • Musi się nazywać ListaTabel.
  • Procedura musi być umieszczona w module formularza.

Procedura zostanie wywołana automatycznie na starcie dzięki wywołaniu jej na zdarzeniu Load formularza. Bardzo podobnie możemy załadować nazwy kwerend. Dodatkowo procedura nie wyświetla tabel systemowych (ich nazwy zaczynają się na „MSys”)

Private Sub Form_Load()
    LadujListeTabel
End Sub
 
Sub LadujListeTabel()
    Dim db As DAO.Database
    Dim tb As DAO.TableDef
 
    ListaTabel.RowSourceType = "Value List"
    ListaTabel.RowSource = ""
 
    Set db = CurrentDb
    For Each tb In db.TableDefs
        If Left(tb.Name, 4) <> "MSys" Then
            ListaTabel.AddItem tb.Name
        End If
    Next
 
    Set db = Nothing
    Set tb = Nothing
 
End Sub

5 komentarzy »

23

Komentarz- zbigniew k

20 Wrz 2011 @ 10:54

dla pola kombi też działa, sprawdziłem, wystarczy je tak samo nazwać.

24

Komentarz- Dariusz Kolasa

20 Wrz 2011 @ 10:58

oczywiście, chociaż nazwałbym wtedy kontrolkę raczej KombiTabela

Komentarz- Andrzej

14 Lis 2016 @ 14:13

A nie lepiej jako źródło dla pola Combi/listy podać SQL:”SELECT MSysObjects.Name FROM MSysObjects WHERE (((Left([MSysObjects]![Name],4)”MSys”)=-1) AND ((MSysObjects.Type)=1 Or (MSysObjects.Type)=4) Or (MSysObjects.Type)=6)) ORDER BY MSysObjects.Name;
TYPE 1 oznacza tabele lokalne, 4 podlinkowane ODBC, 6 podlinkowane
Dla Kwerend jest to 5

Komentarz- Darek Kolasa

14 Lis 2016 @ 20:51

odwołania do tabel systemowych są całkiem fajne, ale w kolejnych wersjach może się w nich coś zmienić…

Komentarz- Damian Cebulski

12 Cze 2017 @ 10:08

Ładowanie strony trwa bardzo długo…

RSS komentarzy do wpisu. Adres trackback

Zostaw komentarz

Dozwolone znaczniki XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>