Access 97 versus Access 2000, XP, 2003 en 2007

Zie ook elders op deze site:

PCMenu Access Tips en trucs Programmavoorbeelden Access

In deze tekst:

Verschillende versies van Access
Opwaarts uitwisselbaar
Terug-converteren naar Access 97
Bestanden koppelen
Functionaliteit in Access 2000 en hoger 
Samenwerking Access 97 en Office 2000
Opbouwfunctie in Access NL
DAO versus ADO programmacode
Verwijzingen
Multi-user in Access 2000 en hoger
Traag werkende databases
MDE-bestand maken
Fout in Access 97 NL

Hebt u inhoudelijke vragen over Access die u niet in deze teksten beantwoord ziet, stel deze dan bij voorkeur bij het forum  http://office.webforums.nl/forum/, u krijgt meestal dezelfde dag nog een helder antwoord van een van de deelnemers van het forum.

Verschillende versies van Access

Tussen Access 97, Access 2000, Access XP (ook wel Acces 2002 genoemd) en Access 2003 zijn er enkele verschillen in de bestandsformaten, die het niet zonder meer mogelijk maken om deze bestanden onderling uit te wisselen. Microsoft heeft voor Access 2000 gekozen voor een ander bestandsformaat. Hierdoor is het niet mogelijk om bestanden die opgeslagen zijn in het Access 2000 bestandsformaat te openen in Access 97. Ook voor Access XP/2003 is er een nieuw bestandsformaat gekomen, maar in Access XP en 2003 kunt u met zowel Access 2000 als met Access XP/2003 bestanden werken. In Access 2007 is het bestandsformaat drastisch gewijzigd, maar u kunt wel in Access 2007 met bestanden in het Access 2000/XP/2003-formaat werken.

Opwaarts uitwisselbaar

Als u in Access 2000 of hoger een Access 97 bestand wilt openen, krijgt u eenmalig de vraag of u het bestand wilt converteren naar het Access 2000 bestandsformaat, of dat u het bestand wilt openen als Access 97 bestand.

Als u het Access 97 bestand niet converteert, kunt u het zonder meer openen en gebruiken in Access 2000 of hoger. U kunt de formulieren bekijken, query's uitvoeren, rapporten afdrukken, gegevens invoeren, bijwerken en verwijderen, modules gebruiken enz. U kunt echter niets veranderen aan de eigenschappen of de opmaak van tabellen, query's, formulieren, rapporten of modules, u moet het bestand dan eerst converteren naar het bestandsformaat van Access 2000.

Als u het Access 97 bestand wel converteert, dan vraagt Access u om de locatie en de nieuwe naam van het bestand. U kunt het Access 97 bestand niet laten overschrijven door het geconverteerde bestand, u moet een andere naam of locatie opgeven voor het geconverteerde bestand.

Bestanden die aan het geconverteerde bestand zijn gekoppeld, worden niet automatisch ook geconverteerd naar het Access 2000 bestandsformaat. Maar u kunt de tabellen uit de gekoppelde bestanden wel zonder meer blijven gebruiken in het geconverteerde bestand. Zie verderop in deze tekst.

Terug-converteren naar Access 97

Zodra u het bestand in het bestandsformaat van Access 2000 hebt opgeslagen, kunt u het niet meer openen in Access 97. Wel kunt u het programma terug-converteren naar het bestandsformaat van Access 97 (zie Extra >> Databasehulpprogramma's >> Naar eerdere Access-databaseversie), waardoor het bestand weer de eigenschappen heeft van een Access 97 bestand. Dat betekent ook dat u het terug-geconverteerde bestand dan wel weer in Access 2000 kunt gebruiken, maar in Access 2000 of hoger niet meer de eigenschappen en opmaak kunt wijzigen.

Als u een Access 2000 of hoger bestand hebt terug-geconverteerd naar het Access 97 bestandsformaat, zult u in de meeste gevallen de Verwijzingen in Visual Basic moeten herstellen. Zie verderop in deze tekst.

Sommige eigenschappen in een Access 2000 bestand komen niet voor in een Access 97 bestand. U zult deze onderdelen in Access 97 moeten herschrijven. Zie DAO versus ADO programmacode.

Bestanden koppelen

Programma's die op meerdere werkplekken tegelijk worden gebruikt, zullen  bij voorkeur gesplitst zijn in een Gegevensbestand en een Programmabestand. Zie Access voor gevorderden: bestand splitsen.

Een gegevensbestand dat in Access 97 is gemaakt kunt u zonder problemen koppelen met een programmabestand in Access 97 of Access 2000 of Access XP.  U kunt hierdoor het gegevensbestand desgewenst gelijktijdig gebruik met twee verschillende versies van het programmabestand: een Access 97 versie en een Access 2000 of Access XP of Access 2003 versie. U kunt de eigenschappen van het gegevensbestand (de eigenschappen van (de velden in) de tabellen) echter niet in Access 2000 aanpassen. Daarvoor moet u eerst het gegevensbestand converteren naar het Access 2000 bestandsformaat.

Een gegevensbestand dat naar Access 2000 of XP is geconverteerd, kunt u niet openen of koppelen in Access 97: u moet het gegevensbestand dan eerst ‘terug’ converteren naar Access 97 (Extra >> Databasehulpprogramma’s >> Database converteren >> Naar eerdere Access-databaseversie). 

Functionaliteit in Access 2000, XP en 2003

Access 97 en 2000, XP en  2003 hebben bijna dezelfde functionaliteit. Voor Access 2007 zie de tekst hierover, elders op deze site.

In Access 2000 en hoger kunt u gebruik maken van Data Access Pagina's, dit zijn formulieren die u op een intranet kunt plaatsen. In Access 2007 wordt dit overigens niet meer goed ondersteund.

Een andere handige aanvulling in Access 2000 en hoger is, dat het relatieschema (het schema waarin u de tabellen aan elkaar koppelt) direct als rapport in Access kunt opnemen en dan kunt afdrukken. U doet dit als volgt:

Open het Relatievenster bij Extra >> Relaties...

Klik op Bestand >> Relatievenster afdrukken.
Klik op Bestand >> Paginainstelling >> tabblad Pagina  en kies voor paginaformaat: Liggend.
Als uw rapport er goed uit ziet, sla het dan met Ctrl+S op, het komt dan tussen de andere Rapporten te staan. Met Ctrl+P kunt u, zoals gebruikelijk, het rapport afdrukken. Als de weergave niet goed is, pas deze dan eerst aan in het Relatievenster zelf en druk het dan alsnog af.

Ook kunt u in Access 2000 en XP en 2003 geneste formules maken, u kunt bijvoorbeeld een vergelijking in een vergelijking maken:

bWaar = (nWaarde1 > nWaarde2)

Wanneer u vergelijkingen als deze in uw programmacode of in een formulier hebt verwerkt, dan kunt u de programmacode of het formulier mogelijk niet meer terug-converteren naar Access 97, u krijgt dan bijvoorbeeld de melding dat het formulier beschadigd is. Herstel in Access 2000 het formulier of de programmacode en converteer het bestand opnieuw naar Access 97. U kunt bovenstaande formule bijvoorbeeld als volgt wijzigen:

If nWaarde1 > nWaarde2 Then
    bWaar = True
Else
    bWaar = False
End If

Een andere functionaliteit die alleen vanaf Access 2000 geldt, is dat u in een query kunt groeperen op een Memo-veld. In Access 97 kunt u alleen groeperen op tekst- en numerieke velden.  Wilt u in Access 97 toch groeperen op een memoveld, maak dan eerst een query met een extra veld waarin u het memoveld omzet naar een tekstveld: Tekst: CStr([memoveld]). Maak een nieuwe query waarin u groepeert op dit nieuwe tekstveld.

In Access 2000 en hoger kunt u bij tekstvelden, keuzelijsten en degelijke ook gebruik maken van de optie Voorwaardelijke opmaak. Hiermee kunt u bijvoorbeeld de kleuren van een tekstveld laten wijzigen wanneer het veld een bepaalde inhoud heeft.  U stelt Voorwaardelijke opmaak als volgt in:
Open een formulier of rapport in ontwerpweergave.
Klik op een tekstveld, keuzelijst of aankruisvakje.
Klik in de Menubalk op Opmaak >> Voorwaardelijke opmaak.

In Access 97 kunt u dit alleen met veel moeite bereiken: zet een tekstveld in een bepaalde kleur achter het gekozen tekstveld en laat de inhoud van het achterliggende tekstveld afhangen van een voorwaarde.

In Access 2000/XP/2003 zijn enkele woorden gedefinieerd die niet in Access 97 gedefinieerd zijn. Het belangrijkste voorbeeld is db: in Access 97 kunt u het woord db als een variabele-naam gebruiken, terwijl dit woord in Access 2000 gereserveerd is voor een Access 2000 begrip. Vermijd dus, ook in Access 97, het woord db als variabele-naam, maak hier bijvoorbeeld dbs van: Dim  dbs As Database.
In Access 2000 en hoger wordt standaard van ActiveX Data Object (ADO) code gebruik gemaakt om externe bestanden te koppelen aan een Access programmabestand. Access 97 kent alleen Data Access Objects (DAO). Zie verderop bij DAO versus ADO programmacode.
In Access XP en hoger kunt u een draaitabel en een draaitabelgrafiek maken. Een draaitabel, bekend van Excel, is een uitbreiding op de kruistabelquery in Access. Met een draaitabel kunt u snel gegevens ordenen, groeperen en totaliseren. In een draaitabelgrafiek kunt u snel in keuzelijstjtes aangeven welke gegevens u in de grafiek wilt zien.
In Access 2003 is integratie met XML ingebouwd. XML is een universeel toepasbare methode die het mogelijk maakt om gegevens uit te wisselen, onder meer op het internet. XML is in korte tijd een belangrijke standaard geworden.
In Access 2003 kunt u snel een Data Access Pagina (webpagina van de gegevens van de Access database, met name bedoled voor in een intranet) maken, doro ene formulier of rapport op te slaan als Data Access Pagina. 

Terug naar inhoudsopgave

Opbouwfunctie in Access: corrigeren

Als u in een Nederlandstalige versie van Access 97 de Opbouw-functie gebruikt in query's of voor besturingselementen van formulieren en rapporten, dan neemt Access de Nederlandse namen Formulieren!... , Formulier!..., Rapporten!... en Rapport!... op in de programmacode of expressie. Vertaal deze termen altijd in het Engelstalige Forms, Form, Reports en Report, omdat de Nederlandse termen in andere taalversies van Access niet herkend worden. In Access 2000 en hoger gebruiken de opbouwfuncties automatisch de Engelstalige termen.

DAO (Access 97) versus ADO (Access 2000, XP en 2003) programmacode

Om records in tabellen te selecteren, te bewerken, aan te maken of te verwijderen zult u vaak gebruiken maken van een querie in Access.

U kunt echter ook programmacode schrijven om tabellen te raadplegen, te bewerken of aan te maken. U maakt dan gebruik van opdrachten uit de DAO of ADO bibliotheek van Access. Access 97 kent alleen de Data Access Objects (DAO) bibliotheek, Access 2000 en XP gebruiken standaard de ActiveX Data Objects (ADO) bibliotheek. In de Help van de VBA en in boeken over programmeren in VBA kunt u meer lezen over de verschillen hiertussen. 

ADO code is de beste keuze als u niet-Access gegevensbestanden aan een Access programmabestand wilt koppelen. DAO is de beste keuze als u een Access gegevensbestand aan een Access programmabestand wilt koppelen.

In de Visual Basic Editor (het venster waarin u programmacode schrijft) kunt u bij Extra >> Verwijzingen Microsoft ActiveX Data Object en/of Microsoft Data Access Object aanzetten. Als u beide wilt gebruiken, dan is de volgorde van belasng: meestal heeft het de voorkeur om DAO boven ADO te zetten.

Wilt u een Access 2000 of 2002/XP of 2003 programma terug converteren naar Access 97 dan moet u de eventuele ADO programmacode uit Access 2000 en hoger in Access 97 herschrijven naar DAO.

In de tekst Macro's en modules: Tabellen maken in VBA programmacode ziet u enkele voorbeelden van DAO en ADO programmacode en de verschillen in het gebruik hiervan.

Verwijzingen

Binnen Access zijn enkele functies niet in Access zelf opgenomen, maar in afzonderlijke bibliotheek-bestanden in de Windows-map of elders op uw pc of netwerk. Als u zo'n functie start dan ziet u foutmeldingen wanneer deze onderdelen niet gevonden zijn. U krijgt bijvoorbeeld een foutmelding te zien over een datum-waarde die niet gevonden kan worden of over het onbekend zijn van het commando Err. Controleer bij foutmeldingen de verwijzigen naar deze onderdelen handmatig (zie hierna) en pas deze zo nodig aan.

Wanneer u overstapt van Access 97 naar 2000 of XP of 2003 dan past Access 2000 automatisch de verwijzigen aan. In Access XP en hoger ontbreken vaak de juiste verwijzingen naar de DAO bestanden, u moet deze dan handmatig aanpassen. Ook wanneer u vanuit Access 2000 of hoger terugschakelt naar Access 97 dan moet u de verwijzingen vaak handmatig aanpassen.

U kunt als volgt de verwijzingen controleren:

Open het Databasevenster van het programmabestand.
Klik op het tabblad Modules.
Klik op Beeld > Code. U ziet nu de code van een van de modules.
Access 2000 of XP:  de code wordt in een apart werkvenster van Visual Basic for Applications geopend.
Wijzig in dit stadium niets aan de code: de code is essentieel voor een goed functioneren van het programma.
Klik op Extra > Verwijzingen (in Access 2000 of hoger: binnen het VBA werkvenster).

Controleer eerst of alle verwijzingen bestaan. Bij een niet-bestaande, maar wel geactiveerde verwijzing, ziet u voor de naam van de verwijzing staan: ONTBREEKT: … Een ontbrekende verwijzing  moet u uitzetten.

Controleer daarna of in ieder geval de volgende verwijzingen bestaan. Als een verwijzing niet bestaat, kies deze dan uit de lijst en vink de verwijzing aan:

Visual Basic for Applications

Microsoft Access x.x Object library.
Bij x.x staat het versienummer van Access, bijvoorbeeld 8.0 voor Access 97.

Microsoft DAO x.x Compatibility library.
Bij x.x. staat het versienummer dat bij de Access versie hoort, voor Access 2000 of XP of 2003 ziet u bijvoorbeeld Microsoft DAO 3.6. Kies het hoogste nummer uit de lijst.

Access 2000 en hoger hebben standaard geen verwijzing voor DAO aan, maar gebruiken ADO als manier om gegevens te benaderen. Als u een programma alleen in Access 2000 of hoger gaat gebruiken en u geen conversie naar Access 97 gaat uitvoeren, dan kunt u ook alle betreffende programmacode in ADO schrijven. U hoeft dan niet de verwijzing voor Microsoft DAO aan te zetten. Omgekeerd geldt ook dat u geen ADO-code mag gebruiken in een Access 2000 of hoger programma, als u het programma later ook wilt terugconverteren naar Access 97. Zie voor de verschillen tussen DAO en ADO hiervoor in deze tekst.

Ziet u een van de essentiële verwijzingen niet in de lijst staan, dan is Access niet volledig geïnstalleerd. Installeer Acces opnieuw, nu inclusief de ontbrekende onderdelen.

Om te controleren of VBA nu volledig werkt, kunt u nu alle modules compileren en opslaan bij (Access 97) Foutopsporing >> Alle modules compileren en opslaan /  (Access 2000 of XP of 2003) Foutopsporing >> (naam_van_het_programma) compileren.

Multi-user in Access 2000 en hoger

In Access 97 kunt u zonder meer met meerdere gebruikers tegelijkertijd een Access bestand gebruiken. In de hogere versies van Access kunnen problemen optreden wanneer u hetzelfde bestand op meerdere computers gelijktijdig open hebt. U kunt bijvoorbeeld meldingen krijgen dat het bestand al in gebruik is en niet een tweede keer geopend kan worden. Dit komt vooral voor in een omgeving waar met thin clients gewerkt wordt. De berichten hierover zijn wisselend: soms levert multiuser gebruik van Access 2000 of hoger geen enkel probleem op.

Een manier om eventuele optredende problemen te omzeilen, is om het programma te splitsen in een frontend (het programma met de formulieren, rapporten en modules) en een backend bestand (de tabellen) en daarna de frontend voor elke gebruiker als een apart bestand aan te bieden. De backend kunt u centraal op een gedeelde netwerkschijf plaatsen. U maakt dan verschillende kopieën van de front end en zet deze bij de diverse gebruikers op een eigen netwerkschijf of op de lokale pc neer. Het beheer van de verschillende kopieën van de front end is lastig, u moet  na elke aanpassing in het programma (de front end) elke kopie bijwerken.  

Traag werkende databases

Na conversie van een bestand van Access 97 naar Acces 2000 of hoger kunt u performanceproblemen tegenkomen, die u niet in Access 97 had. Voor tips om deze porblemen op te lossen, zie de tekst Access voor gevorderden, elders op deze site.

MDE-bestand maken

U kunt een Acces MDB-bestand opslaan als een MDE-bestand. Een MDE-bestand is een Acces bestand waarin alle programmacode gecomprimeerd (samengepakt) is en waaruit alle commentaarregels verwijdert zijn. Een MDE-bestand biedt dezelfde functionaliteit als een MDB-bestand, maar u kunt echter geen wijzigingen aanbrengen in de databasestructuur, formulieren, rapporten, macro’s en modules. Het is een makkelijke manier om uw formulieren, rapporten en programmacode te beveiligen tegen aanpassingen of onbedoelde inzage van het ontwerp of de broncode. In een MDE-bestand zijn de gegevens (de tabellen en de query's) echter wel zichtbaar en aanpasbaar. Zie voor meer informatie de tekst Access beveiliging.

Aandachtspunten bij een MDE-bestand zijn:

Een MDE-bestand dat u in Access 97 hebt gemaakt werkt niet in Access 2000 of hoger en omgekeerd. Als u het programma in zowel Access 97 als in Access 2000 of hoger wilt aanbieden, moet u voor Access 97 en voor Access 2000 of hoger een een MDE-bestand maken vanuit de desbetreffende Access-versie.
Voor alle versies van Access geldt dat u alleen een MDE-bestand kunt maken als u het bestand is opgeslagen in het bestandsformaat van uw huidige Access versie. Voorbeeld: als u Access 2003 gebruikt en een MDE-bestand wilt maken van een bestand dat gemaakt is in Access 2000, moet u dit bestand eerst converteren naar Access 2003. Open het bestand, houd de Shift-toets ingedrukt als u op de knop Openen klikt en klik op Extra > Databasehulpporgramma's > Bestand converteren naar Access 2003. Een MDE-bestand van Access 2003 of XP kunt u wel in Access 2000 gebruiken, en omgekeerd, maar niet in Access 97. 
Om een MDE-bestand te gebruiken, start u Access , klikt op Bestand Openen. Bij Access  97 kiest u bij Bestandstype voor MDE-bestanden. In Access 2000 of hoger worden zowel MDB- als MDE-bestanden direct getoond.

Terug naar inhoudsopgave

Fout in Access 97 NL

Access 2000 maakt onderdeel uit van Office 2000 Professional en Premium versie. In de Nederlandse versie van Office 97 SR 1 zit een bug. Als u Access 97 op uw pc heeft en daarna een programma van Office 2000 (bijvoorbeeld Frontpage 2000) op deze pc installeert, dan wil Access 97 niet meer starten. U bent dan verplicht om of ook Access 2000 te installeren, of een nieuwe versie van Office 97 (service release 2) te installeren: de Access versie van Office 97 SR2 werkt wel samen naast Office 2000 programma's.

Terug naar inhoudsopgave

Meer weten

Op de site van Microsoft vindt u een tool om Access 97 database te converteren naar Access 2003.

Er zijn enkele goede boeken verschenen over Access 2000, XP en 2003. Omdat de functionaliteit in nieuwere versies altijd wat uitgebreid is, is het aan te raden om een boek aan te schaffen dat gaat over de door u gebruikte versie.