Come Esegui codice VBA in Access 2007/2010/2013/2016/2019

Indubbiamente, la creazione di database in Access con diversi oggetti come report, moduli e tabelle è abbastanza semplice. Ma quando si tratta di aggiungere un po ‘di programmazione per l’esecuzione simultanea di oggetti di database o per automatizzare determinati processi. Quindi questo può essere un compito scoraggiante da eseguire…. non è vero?

Principalmente per coloro che non hanno molta conoscenza della programmazione dei programmi. se anche tu sei tra questi, questo post ti aiuterà sicuramente molte più informazioni sull’esecuzione del codice VBA in Access.

Comprendere il codice VBA di MS Access con l’esempio:

Comprendere il codice VBA di MS Access con l'esempio

In MS Access, la programmazione è il modo in cui possiamo aggiungere funzionalità al nostro database. fondamentalmente è fatto in due modi:

  • utilizzando le macro di Access
  • o codice Visual Basic, Applications Edition (VBA)

Supponiamo, ad esempio, di aver creato un report o un modulo nel database di Access. ora vuoi aggiungere un pulsante di comando in quel modulo. In modo che quando viene cliccato, aprirà automaticamente il rapporto.

In tal caso, la programmazione viene utilizzata per creare una procedura macro o VBA per l’impostazione della proprietà dell’evento OnClick del pulsante di comando. Quando si fa clic sul pulsante di comando, la macro e la procedura verranno eseguite automaticamente in background. Pertanto, facendo clic sul modulo del pulsante di comando del modulo si aprirà il rapporto.

Quindi, tutto ciò che puoi dire, il codice VBA in Access ti consente di aggiungere automazione e diverse funzionalità all’applicazione del database di Access.

Cos’è l’editor VBA?

Cos'è l'editor VBA

  • Bene per la programmazione in Access utilizziamo l’editor VBA. Per avviare l’editor VBA, devi prima andare all’opzione di creazione.
  • Quindi toccare il pulsante del modulo nella finestra del database.
  • Questo aprirà l’editor VBA.

Come puoi vedere nella figura, ci sono diverse parti in questo editor VBA. Quindi, discutiamo in dettaglio di ogni sezione:

  • l’angolo in alto a sinistra è chiamato Finestra del progetto. Questo contiene un elenco di tutti gli elementi e moduli definiti nel database.
  • sotto la finestra del progetto, c’è una finestra delle proprietà. In questo puoi specificare diversi attributi per gli oggetti che hai usato nella finestra del progetto.
  • Nella parte inferiore dello schermo, c’è una finestra immediata. Qui è possibile testare le parti della procedura nel frattempo lo sviluppo. Oltre a ciò può essere utilizzato anche per ottenere risultati immediati di vari comandi. La finestra immediata è molto utile durante la procedura di test e debug.

Vantaggi dell’utilizzo del codice VBA Nel Access:

Vantaggi dell'utilizzo del codice VBA Nel Access

Di seguito sono riportati alcuni motivi di base per cui è necessario utilizzare le aree di codice VBA di MS Access.

  1. Gestire le procedure riutilizzabili più piccole (a livello globale)
  2. Crea le tue funzioni definite
  3. in memoria tenere variabili (a livello globale)
  4. Allegare il codice a un evento, ad esempio un pulsante su un modulo
  5. Gestire procedure più potenti di cui manca una macro di Access
  6. Facile conclusione con altre applicazioni e piattaforme
  7. gestire in modo intelligente gli errori di runtime di Access

Per imparare Access codice VBA, non è necessario essere un programmatore.  Il fattore importante per programmare con successo con Access VBA è quanto conosci la struttura di MS Access, spesso chiamata tabelle, query, moduli, report e macro. È una funzionalità molto potente di Access per identificare dove VBA deve superare e migliorare le funzionalità.

Come eseguire il codice VBA in MS Access

Come eseguire il codice VBA in MS Access

Codice VBA per eseguire una query in MS Access

Cerchi il codice VBA per eseguire query in MS Access? in tal caso, dai un’occhiata alla procedura completa per eseguire questa attività.

È possibile utilizzare la sintassi VBA per eseguire query in MS Access.

DoCmd.OpenQuery “Nome query”

Tieni presente che il “nome query” non deve essere mantenuto tra parentesi “[]”.

I passaggi per creare un VBA per eseguire una query in MS Access

Supponiamo di avere un database di Access che contiene una query denominata “max_sales”.

Quindi, ecco il passaggio completo che devi seguire per creare un VBA per eseguire la query “max_sales”:

Passaggio 1: aggiungere un forma di Access

Prima di tutto, apri l’applicazione di MS Access, quindi aggiungi un Access forma.

Codice VBA per eseguire una query in MS Access 1

Per aggiungere un forma, devi andare alla scheda di creazione, quindi toccare l’icona del modulo presentata sulla barra multifunzione di MS Access:

Passaggio 2: posizionare un pulsante

Nel passaggio successivo, è necessario inserire un pulsante nel modulo. Per questa attività, fai clic sull’icona “pulsante” presente sulla barra degli strumenti. Dopo quella posizione quel pulsante sul modulo.

Codice VBA per eseguire una query in MS Access 2

Noterai che dopo aver posizionato il pulsante nel modulo Accesso, sullo schermo apparirà la procedura guidata del pulsante di comando. Se non hai bisogno di questa procedura guidata per i pulsanti di comando, puoi premere il pulsante Annulla.

Passaggio 3: aprire la schermata VBA

Per scrivere il codice VBA per il pulsante, è necessario aprire la schermata dell’editor VBA. Tocca il pulsante destro del mouse e quindi seleziona l’opzione “Crea evento …”.

Codice VBA per eseguire una query in MS Access 3

Dopodiché scegli l’opzione Code Builder e tocca l’opzione OK:

Codice VBA per eseguire una query in MS Access 4

Passaggio 4: scrivere il VBA per eseguire la query

È tempo di scrivere il codice VBA per eseguire la query.

Controlla il codice VBA completo come mostrato nell’esempio seguente (dove “max_sales” è il nome della query):

Private Sub Command0_Click() 

DoCmd.OpenQuery “max_sales” 

End Sub

Ecco come apparirà VBA in Access:

Codice VBA per eseguire una query in MS Access 5

Passaggio 5: visualizzare i risultati

Dopo aver cancellato questi codici VBA, è il momento di salvare il tuo lavoro. Ora torna al modulo di accesso e passa alla visualizzazione del modulo.

Per passare facilmente alla vista modulo, fai clic sull’icona della vista presente nella scheda disegno. Ora dall’elenco a discesa, selezionare la vista modulo.

Codice VBA per eseguire una query in MS Access 6

Infine, tocca il pulsante per eseguire la query “max_sales”. Ora puoi eseguire una query utilizzando il codice VBA semplicemente toccando il pulsante.

Codice VBA per eseguire una query in MS Access 7

Codice VBA per eseguire il report Nel Access

Codice VBA per eseguire il report Nel Access

Il metodo DoCmd.OpenReport viene utilizzato per l’apertura del report. È possibile utilizzare questo metodo DoCmd.OpenReport per aprire il report in visualizzazione struttura, Stampa report, Visualizza report, Anteprima di stampa, Visualizzazione layout.

Ecco la sintassi che devi usare:

DoCmd.OpenReport (ReportName, View, Filter, WhereCondition, DataMode, WindowMode, OpenArgs)

Descrizione della sintassi sopra:

– ReportName:

Indica che il nome del report nell’attuale database.it necessita di argomenti e deve essere scritto tra virgolette.

– Vista:

Alcuni tipi comuni di visualizzazione del report come acViewNormal, acViewPreview, acViewLayout, acViewDesign e così via.

Puoi selezionare uno di questi tipi per specificare il rapporto quando viene aperto.

– Filtro:

È un nome di query presente nel database corrente. quindi, impostalo tra virgolette doppie.

Potrebbe piacerti anche:

4 modi per trasformare i messaggi di avviso di query di azione di MS Access Su/disinserito Utilizzo di “Setwarnings”

– WhereCondition:

In questo luogo la clausola SQL viene utilizzata senza la parola WHERE. Quindi, è necessario tenerlo tra virgolette doppie.

– Modalità dati:

in questo argomento è necessario specificare la modalità di immissione dei dati per il report. bene, la modalità può essere la modalità di modifica o solo la modalità di lettura.

– Modalità finestra:

Quando viene aperto un rapporto, specificare la modalità finestra.

Oltre a ciò, è possibile aprire il report nella seguente modalità: acDialog, acHidden, acIcon o acWindowNormal.

     + acDialog: il rapporto aperto è fisso e non può essere spostato.

     + acHidden: in questa modalità, il report aperto è nascosto.

     + acIcon: il rapporto aperto appare come un’icona.

     + acWindowNormal: in questa modalità, il report aperto viene visualizzato come report di visualizzazione.

– OpenArgs:

Utilizzando questo argomento, è necessario specificare il record quando viene aperto il report.

E devi tenerlo tra le doppie virgolette.

Commento:

Tutti gli argomenti sopra menzionati nella sintassi DoCmd.OpenReport sono facoltativi escludendo l’argomento ReportName.

supponiamo di avere un modulo come questo:

se si apre un modulo per la prima volta, il record corrente è Cate001. Per stampare questa categoria, toccare il pulsante Stampa rapporto. Verrà visualizzato il rapporto Cate001 insieme ai prodotti in esso contenuti.

Per stampare il record Cate002, è innanzitutto necessario passare a questo record. Quindi tocca il pulsante Stampa rapporto.

Ma se è necessario stampare Cate003, Cate004, Cate005 e così via. Quindi devi creare un rapporto dettagliato principale come mostrato in figura:

Successivamente, è necessario applicare il codice VBA nella procedura dell’evento CmdPrint_Click, in questo modo:

Private Sub CmdPrint_Click()
DoCmd.OpenReport “RptProductByCategory” _
, acViewReport, , “CategoryID='” & txtCategoryID & “‘”
End Sub

Per chiamare il rapporto da VBA, prova il seguente codice VBA:

Sub runReport()

    Dim con As ADODB.Connection

     Set con = New ADODB.Connection

     con.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _

       “Data Source=C:\mydb.mdb;”

     DoCmd.OpenReport “rptCustomer”, acViewPreview

End Sub

Codice VBA di MS Access per aprire un altro database

Codice VBA di MS Access per aprire un altro database

Sai che puoi avviare un altro database dall’interno del database corrente? Bene, questo può essere fatto in tre modi diversi. Quindi dai un’occhiata …!

  • Metodo FollowHyperlink
  • Conchiglia
  • Automazione dell’accesso

Metodo 1: Metodo FollowHyperlink

FollowHyperlink è un metodo nativo del database di Access e l’utente può aprire qualsiasi tipo di file utilizzando il programma predefinito ad esso associato.

Come, è un comando nativo di MS Access, quindi non è consentito utilizzare per altri programmi come (Word, Excel, PowerPoint …).

Public Function OpenDb3(sDb As String)  

 On Error GoTo Error_Handler    

Application.FollowHyperlink sDb Error_Handler_Exit: 

   On Error Resume Next  

 Exit Function Error_Handler:   

MsgBox “The following error has occurred” & vbCrLf & vbCrLf & _         

 “Error Number: ” & Err.Number & vbCrLf & _         

 “Error Source: OpenDb3” & vbCrLf & _        

   “Error Description: ” & Err.Description & _         

  Switch(Erl = 0, “”, Erl <> 0, vbCrLf & “Line No: ” & Erl) _       

    , vbOKOnly + vbCritical, “An Error has Occurred!”  

 Resume Error_Handler_Exit

End Function

Metodo 2: Conchiglia

Shell è un comando universale che può essere utilizzato per eseguire molte attività. Oltre ad avere un lungo elenco di funzionalità, viene anche utilizzato per avviare programmi e per aprire file. Devi quindi assegnare il file .exe dopo ciò che le opzioni della riga di comando vengono riconosciute da ogni singolo file exe.

Poiché MS Office è ben registrato ed è una parte della variabile path. Quindi, non è necessario fornire il percorso per il file msaccess.exe semplicemente fornire il file o il percorso per aprirsi.

Se sul tuo PC sono installate più versioni di MS Office e devi utilizzarne una specifica. quindi in tal caso è necessario includere il percorso / file del database di Access eseguibile.

Public Function OpenDb2(sDb As String)

    On Error GoTo Error_Handler

     Shell “cmd /c ” & Chr(34) & sDb & Chr(34), vbHide Error_Handler_Exit:  

 On Error Resume Next  

 Exit Function Error_Handler:  

  MsgBox “The following error has occurred” & vbCrLf & vbCrLf & _       

    “Error Number: ” & Err.Number & vbCrLf & _      

     “Error Source: OpenDb2” & vbCrLf & _        

   “Error Description: ” & Err.Description & _     

      Switch(Erl = 0, “”, Erl <> 0, vbCrLf & “Line No: ” & Erl) _

    , vbOKOnly + vbCritical, “An Error has Occurred!”  

 Resume Error_Handler_Exit

End Function

Metodo 3: Access Automation

Access Automation è la superba opzione per eseguire qualsiasi azione desiderata e ovviamente anche l’apertura del database.

Public Function OpenDb(sDb As String)  

 On Error GoTo Error_Handler   

‘Legatura anticipata

  ‘Utilizzare la seguente riga se utilizzato in Access o utilizzando Access reference

    ‘fornisce intellisense!

 Dim oAccess               As Access.Application   

  ‘Rilegatura in ritardo

  “Utilizza la riga seguente se utilizzato al di fuori di Access senza un riferimento di Access”

Dim oAccess        As Object  

   Set oAccess = CreateObject(“Access.Application”)    ‘Create a new Access instance  

 With oAccess      

  .OpenCurrentDatabase sDb    ‘Open the specified db     

   .Visible = True             ‘Ensure it is visible to the end-user       

.UserControl = True‘    

    .DoCmd.OpenForm “YourFormName”   ‘Open a form?’     

   .DoCmd.RunMacro “YourMacroName”  ‘Run a Macro?    

End With 

Error_Handler_Exit: 

 On Error Resume Next 

   If Not oAccess Is Nothing Then Set oAccess = Nothing  

 Exit Function 

Error_Handler: 

   MsgBox “The following error has occurred” & vbCrLf & vbCrLf & _     

      “Error Number: ” & Err.Number & vbCrLf & _      

     “Error Source: OpenDb” & vbCrLf & _     

      “Error Description: ” & Err.Description & _       

    Switch(Erl = 0, “”, Erl <> 0, vbCrLf & “Line No: ” & Erl) _       

    , vbOKOnly + vbCritical, “An Error has Occurred!”  

 Resume Error_Handler_Exit

End Function

Automatizzare Access Da un’altra applicazione MS Office tramite VBA

Automatizzare Access Da un'altra applicazione MS Office tramite VBA

 VBA Access libreria di oggetti

Per automatizzare l’accesso da altre applicazioni MS Office tramite VBA. O se è necessario utilizzare oggetti di altre applicazioni come Microsoft Excel o Word in Access. Per rendere possibili tali attività, aggiungere riferimenti alla libreria di oggetti. Fondamentalmente, ci sono due opzioni per eseguire questa attività:

  1. Legatura anticipata
  2. Rilegatura tardiva

Primo metodo, viene utilizzato per aggiungere riferimento alla libreria di oggetti di Microsoft Access, appena prima dell’esecuzione. Si esegue più velocemente e otterrai un facile accesso all’editor VBA intellisense.

Oltre a ciò, è possibile che si verifichino problemi di compatibilità durante l’esecuzione di un programma per PC con una versione diversa della libreria installata.

Metodo 1: Legatura anticipata

In questo metodo specifico è necessario aggiungere un riferimento a Microsoft Access Object.

  1. Vai alla finestra dell’editor VBA e tocca il pulsante “Strumenti” presente nella barra dei menu.
  2. Ora dall’elenco a discesa, selezionare l’opzione “Riferimenti”.
  3. Successivamente, verrà visualizzata la finestra di dialogo “Riferimenti – Progetto 1”.
  4. In questa finestra di dialogo, è possibile trascinare la barra di scorrimento fino a ottenere ciò che si desidera come “Libreria oggetti di Microsoft Access14.0”.
  5. Ora metti un segno nella casella presente davanti a questo oggetto.
  6. Alla fine, toccare l’opzione “OK”.
  7. Dopo questo passaggio, è stato aggiunto correttamente il riferimento alla libreria degli oggetti Access.

Bene, puoi utilizzare i passaggi precedenti per aggiungere librerie di oggetti in base alle tue esigenze.

Avere uno sguardo:

Come Per fissare Access Oggetto dipendenze Non Lavorando O Mancante Problema?

Nota:

Utilizzare il codice seguente per definire un oggetto Access.Application e iniziarlo:

Dim objAccess As Access.Application
set objAccess = new Access.Application

Metodo 2: Rilegatura tardiva

Questo metodo non richiede alcuna aggiunta di riferimento alla libreria di oggetti. L’oggetto Access.Application viene dichiarato come oggetto normale e avviato come mostrato qui:

Dim objAccess As Object
Set objAccess = CreateObject(“Access.Application”)

Come collegare Access ed Excel tramite VBA:

Come collegare Access ed Excel tramite VBA

In questa sezione discuteremo di come connettere il database di Access con Excel usando il codice VBA.

Ecco come è possibile impostare la connessione con il database di Access. La stringa di connessione utilizzata per Access 2003 (*. Mdb) e Access 2007/2010 (* .accdb) è diversa perché entrambe le versioni del database hanno driver diversi.

Per Access 2003 Database il provider è: Provider = Microsoft.Jet.OLEDB.4.0.

Per Access 2007/2010 il provider è Provider = Microsoft.ACE.OLEDB.12.0

Prima di eseguire il codice riportato di seguito, è necessario aggiungere riferimenti per ADO DB Connection.

 Seguire questi passaggi per l’aggiunta di riferimento:

Come aggiungere riferimenti in Excel

  1. Aprire la schermata dell’editor VB premendo Alt + F11
  2. Strumenti -> Riferimenti …
  3. Nell’elenco dei riferimenti disponibili, cercare la “Libreria Microsoft ActiveX Data Objects 2.0”. Scegli la versione 2.0 o qualsiasi altro riferimento della versione successiva.
  4. Toccare l’opzione OK.

Connessione con il database di Access 2003

Sub ADO_Conn() 

Dim conn As New Connection

Dim rs As New Recordset    

strcon = “Provider=Microsoft.Jet.OLEDB.4.0;” & _   

“Data Source=E:\Student.accdb;” & _  

“User Id=admin;Password=”    

conn.Open (strcon)    

qry = “SELECT * FROM students”  

rs.Open qry, conn, adOpenKeyset    

rs.Close 

conn.Close 

End Sub

Connessione con il database di Access 2007/2010

Sub ADO_Conn()

Dim conn As New Connection

Dim rs As New Recordset    

strcon = “Provider=Microsoft.ACE.OLEDB.12.0;” & _  

 “Data Source=E:\Student.accdb;” & _ 

“User Id=admin;Password=”     conn.Open (strcon)  

qry = “SELECT * FROM students”   

rs.Open qry, conn, adOpenKeyset    

rs.Close   

conn.Close

End Sub

Incartare:

Se capisci il concetto di come eseguire il codice VBA in Access in varie circostanze, fai un buon inizio usando queste tecniche. non aver paura di sperimentare … ..!

Hai ancora problemi? Risolvili con la Stellar riparazione per Access:

Questo software garantisce riparazione e recupero di senza soluzione di continuità del database ACCDB e MDB. Esso ripristina tutti gli oggetti tra cui tabelle, report, query, record, moduli e indici insieme a moduli, macro, ecc. Fissare Microsoft Access problemi di ora in 3 semplici passaggi:

  1. Scarica Stellar Access database riparazione strumento rated ottima su Cnet.
  2. Fai clic sull'opzione Sfoglia e Cerca per individuare il database di Access corrotto.
  3. Fai clic su Ripara Pulsante per riparae visualizzare in anteprima gli oggetti del database.

Pearson Willey è uno scrittore di contenuti di siti Web e lungo-forma pianificatore di contenuti. Oltre a questo, è anche un avido lettore. Quindi sa benissimo come scrivere un contenuto accattivante per i lettori. Scrivere è come un vantaggio crescente per lui. Ama esplorare le sue conoscenze su MS Access e condividere blog tecnici.