DAO Workspace

Workspace creëren.

Soms kan het interessant zijn om een nieuwe Workspace te creëren. U werkt bijvoorbeeld met een niet bijveiligde database en vanuit deze database moeten er gegevens opgevraagd worden van een door Ms Jet beveiligde anderen database. In dit geval kan men een workspace creëren met de gebruikersnaam en het paswoord voor de beveiligde database. Daartoe moet men volgende twee stappen uitvoeren :

  1. Creëren van de nieuwe workspace met de CreateWorkspacemethode van het DBEngine object.
  2. De nieuwe workspace toevoegen aan de collectie van de workspaces.
Function fMaakWorkspace(strNaamWS As String, strGebruiker As String, strPaswoord As String) As Boolean
        Dim wsNieuw As DAO.Workspace
        fMaakWorkspace = False
            Set wsNieuw = DBEngine.CreateWorkspace(strNaamWS, strGebruiker, strPaswoord, dbUseJet)
            DBEngine.Workspaces.Append wsNieuw
        
            Debug.Print "Naam nieuwe workspace: " & wsNieuw.Name
        'sluiten
        
            wsNieuw.Close
            Set wsNieuw = Nothing
        fMaakWorkspace = True
        End Function
        

Bijkomende database openen.

Het is een zeer goede gewoonte om een Access database op te splitsen in een 'Frontend' met queries, formulieren, rapporten, macro's en modules en 'Backend' met enkel de tabellen. Men noemt deze techniek ook Linked database, waarbij dat de Link van de Frontend naar de Backend permanent is.
In de code van de Frontend kan men gebruik maken van de CurrentDB() er zal steeds verwezen woorden naar de Backend.

In bepaalde gevallen kan het opportuun zijn om met data uit een andere database te werken zonder dat er een permanente Link noodzakelijk is. Dat kan door een tijdelijke connectie te leggen met de OpenDatabase methode van het Workspace object.
Deze methode heeft vier argumenten :

  1. dbName een string waarde met het volledig pad en naam van de database die men wil openen.
  2. options Optioneel : True als men de database exclusief wil openen, False indien de database gedeeld moet geopend worden.
  3. Read-only Optioneel : True indein de database read-only mag geopend worden.
  4. Connect Connectie informatie zoals paswoord.
Function fOpenenVanDB(strnaamPad As String) As Boolean
        Dim dbExtern As DAO.Database
        Dim wsAccess As Workspace
        Dim tdf As DAO.TableDef
        fOpenenVanDB = False
        
            Set wsAccess = DBEngine.Workspaces(0) 'is de huidige Workspace
            Set dbExtern = wsAccess.OpenDatabase(strnaamPad, True, True)
        'de namen van de tabellen opvragen
                For Each tdf In dbExtern.TableDefs
                    Debug.Print tdf.Name
                Next
        fOpenenVanDB = True
            dbExtern.Close
            Set dbExtern = Nothing
        End Function
         
Begin