Come ottenere l'accesso nelle query VBA per elencare le tabelle nel database

Autore: Lewis Jackson
Data Della Creazione: 12 Maggio 2021
Data Di Aggiornamento: 1 Dicembre 2024
Anonim
Come ottenere l'accesso nelle query VBA per elencare le tabelle nel database - Articoli
Come ottenere l'accesso nelle query VBA per elencare le tabelle nel database - Articoli

Contenuto

Microsoft Access è un sistema di gestione di database che consente agli utenti di creare i propri database, report e moduli. L'accesso contiene tutti i blocchi costitutivi per lo sviluppo di piccole applicazioni. È possibile creare tabelle di dati, stored procedure, funzioni e macro, nonché moduli e report. Tutti questi componenti hanno i propri puntatori o definizioni dei record memorizzati in una tabella di sistema nascosta. L'accesso conserva i record di ogni tabella, report, modulo, ecc. che crei e memorizzi anche dati come la data di creazione o di aggiornamento e i flag di sistema.


indicazioni

L'accesso memorizza le informazioni sulla struttura del database nella tabella MSysObjects (immagine di archiviazione dei dati di Kir da Fotolia.com)

    Ottenere un elenco di tabelle

  1. Creare una query che esegua il comando SQL di seguito. Questa query visualizza un elenco di tutte le tabelle nel database di Access corrente. La clausola "where" che usa il numero 1 serve a indicare che vogliamo solo le tabelle quotate.

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1

  2. Restituisce la query delle tabelle non sistematiche nel database, con l'esempio seguente:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Name Non mi piace "MSys *";


  3. Immettere l'elenco delle tabelle del database nascosto eseguendo la query di seguito:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8

  4. Ordina l'elenco delle tabelle non nascoste e non sistematiche utilizzando il seguente codice SQL:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8 AND MSysObjects.Name Non mi piace "MSys"; ORDINA DA MSysObjects.Name

    Utilizzare l'elenco di tabelle in VBA

  1. Carica il tuo elenco di tabelle in un oggetto record, utilizzando il codice VBA di seguito:

    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery")

  2. Scorri tra i record della query completata.


    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery")

    Do While Not rsMyTables.EOF 'Codice per manipolare i dati

    rsMyTables.MoveNext Loop

  3. Aggiungi un nome a ciascuna tabella per un elenco modificando il suo ciclo:

    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery") Me.cmbMyComboBox.Clear

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

    rsMyTables.MoveNext Loop

  4. Chiudere l'oggetto del registro per liberare la memoria che sta utilizzando:

    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery") Me.cmbMyComboBox.Clear

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

    rsMyTables.MoveNext Loop

    rsMyTables.Close Set rsMyTables = Nothing

suggerimenti

  • Macro create in Visual Basic, Applications Edition (VBA), che è un linguaggio di programmazione Microsoft Office Standard.
  • Puoi elencare qualsiasi di questi oggetti in Access cambiando il filtro "MSysObject.Type". Le opzioni per questo valore sono elencate di seguito:
  • Tabella = 1
  • Query = 5
  • Tabella collegata = 4, 6 o 8
  • Modulo = -32768
  • Rapporto = -32764
  • Modulo = -32761