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 :
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 :
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