Come ottenere accesso VBA Query nella Lista le tabelle di un database

October 2

Come ottenere accesso VBA Query nella Lista le tabelle di un database


Microsoft Access è un sistema di gestione di database per gli individui a creare le basi di dati propri, report e moduli utente. Accesso contiene tutti i blocchi di costruzione per lo sviluppo di piccole applicazioni. È possibile creare tabelle per i dati, stored procedure, funzioni definite dall'utente e macro, oltre a report e moduli. Tutti questi componenti hanno i propri puntatori o le definizioni di record memorizzati in una tabella di sistema nascosto. L'accesso tiene traccia di ogni tabella, relazione, forma, ecc si crea e memorizza le informazioni come ad esempio quando è stato creato o aggiornato e flag di sistema.

istruzione

Ottenere un elenco di tabelle

1 Creare una query per eseguire il comando SQL di seguito. Questa query recupera un elenco di tutte le tabelle del database di Access corrente. La clausola in cui utilizza il numero 1 per indicare che vogliamo solo le tabelle restituiti.

SELEZIONARE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
DA MSysObjects
DOVE MSysObjects.Type = 1

2 Restituire un elenco di solo le tabelle non di sistema nel database con l'esempio fornito:

SELEZIONARE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
DA MSysObjects
DOVE MSysObjects.Type = 1, MSysObjects.Name non mi piace "MSys *"

3 Restituire un elenco di solo le tabelle non nascosti nel database eseguendo la query di seguito:

SELEZIONARE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
DA MSysObjects
DOVE MSysObjects.Type = 1, MSysObjects.Flags & lt; & gt; 8

4 Ordinare l'elenco delle tabelle non nascosta, non di sistema utilizzando il codice SQL di seguito:

SELEZIONARE MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
DA MSysObjects
DOVE MSysObjects.Type = 1, MSysObjects.Flags & lt; & gt; 8 E MSysObjects.Name non mi piace "MSys *"
ORDER BY MSysObjects.Name

Utilizzare l'elenco delle tabelle in VBA

5 Caricare l'elenco di tabelle in un oggetto record insieme utilizzando il codice VBA riportati di seguito:

rsMyTables fiochi come DAO.Recordset
Set rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")

6 Loop attraverso ogni record restituito nella query.

rsMyTables fiochi come DAO.Recordset
Set rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")

Do While Non rsMyTables.EOF
& # 039; Il codice per manipolare i dati

rsMyTables.MoveNext
Ciclo continuo

7 Aggiungere ogni nome di tabella a un elenco a discesa per modificare il ciclo while:

rsMyTables fiochi come DAO.Recordset
Set rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")
Me.cmbMyComboBox.Clear

Do While Non rsMyTables.EOF
Me.cmbMyComboBox.AddItem rsMyTables! [Nome]

rsMyTables.MoveNext
Ciclo continuo

8 Chiudere il set oggetto record in modo che rilascia la memoria che sta utilizzando:

rsMyTables fiochi come DAO.Recordset
Set rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")
Me.cmbMyComboBox.Clear

Do While Non rsMyTables.EOF
Me.cmbMyComboBox.AddItem rsMyTables! [Nome]

rsMyTables.MoveNext
Ciclo continuo

rsMyTables.Close
Set rsMyTables = Nothing