Zie ook elders op deze site:
| PCMenu | Access Tips en trucs | Programmavoorbeelden Access |
| Access beveiliging | Access voor gevorderden |
Hebt u een inhoudelijke vraag over Access, stel deze dan op het forum http://office.webforums.nl.
|
|
Zie ook elders op Internet:
|
Een Access bestand bevat meestal een groot aantal verschillende gegevens:
| De tabellen met de gegevens (de cijfers, teksten, afbeeldingen enz. die in de records staan), | |
| Koppelingen met externe tabellen, | |
| Query's, | |
| Formulieren, Rapporten en Pagina's, | |
| Programmacode in Modules. |
In Access is dit alles in één bestand (of als de programmamaker hiervoor gekozen heeft twee bestanden) samengevoegd. Bij veel andere databaseomgevingen wordt elke tabel als een afzonderlijk bestand opgeslagen, bijvoorbeeld in .dbf tabellen.
Het voordeel van alles in één bestand opslaan is dat dit bestand makkelijk te beheren is. U hoeft maar één bestand te verplaatsen, er een backup van te maken en dergelijke.
Een nadeel van alles in één bestand opslaan is dat u, als het bestand beschadigd is, eerst moet uitpluizen welk onderdeel van het bestand beschadigd is. In het ergste geval maakt een beschadiging van één onderdeel van het bestand, het hele bestand onbruikbaar. Gelukkig kunt u dit meestal wel weer herstellen.
Zodra u een bestand opent, maakt Acces een tweede bestandje aan met de extensie .ldb, waarin staat wie op dat moment het bestand geopend heeft. Bij sommige Access-programma's zijn er nog aanvullende bestanden in gebruik, zoals een Werkgroepbestand, waarin beschreven staat wie van welk onderdeel van het programma welk gebruik mag maken.
Access bestanden raken niet snel beschadigd. Als een Access-bestand beschadigd is geraakt, dan is dit meestal te wijten aan een onverwacht afbreken van het geopende bestand:
| De harde schijf of de netwerkschijf of de netwerkverbinding crasht, | |
| De computer gaat onverwacht uit omdat iemand de reset-knop of aan-uitknop indrukt of omdat de stroom uitvalt, zonder dat Acces eerst afgesloten is. |
Bij het reparen van een bestand zult u mogelijk gebruik gaan maken van een backup bestand of van een kopie van uw originele bestand. Probeer goed in de gaten te houden wat uw originele bestand is en wat de kopie of het backup bestand is. Schrijf op wat u doet, geef duidelijke namen aan een backup of kopie en/of plaats de kopie of het origineel in een map die u een duidelijke naam geeft, bijv. _bakcup20050601. Het kan gemakkelijk voorkomen dat u een backup bestand en het originele bestand door elkaar haalt, waardoor u mogelijk het verkeerde bestand kopieert of repareert of - wat erger is - een backupbestand per ongeluk weggooit of overschrijft.
Als u bij een gesplitste database het backend bestand verplaatst of een andere naam geeft, dan kan het frontend bestand dit backend bestand niet meer vinden. Plaats na de reparatie het backend bestand weer op de oorspronkelijke locatie en geef het dezelfde naam, of werk in (Access 97:) Extra > Databasehulpprogramma's > Koppelingsbeheer / (Access 2000 en hoger:) Extra > Invoegtoepassingen > Koppelingsbeheer de koppeling van het front end bestand bij.
U kunt als eerste proberen of Access zelf het bestand kan repareren. Laat eventuele andere gebruikers eerst het programma afsluiten. Open het bestand (met de Shift-toets ingedrukt, zodat het programma niet gestart wordt maar u het Databasevenster ziet) en kies dan:
| In Acces 97: kies Extra > Databasehulpprogramma's > Database repareren. | |
| In Acces 2000 en hoger: kies Extra > Databasehulpprogramma's > Database comprimeren en repareren. |
Bij een gesplitst bestand: doe dit voor beide bestanden.
Als het beschadigde bestand op een netwerkschijf staat, dan lukt het niet altijd om reparatie uit te voeren. U kunt het bestand dan eerst kopiëren naar de harde schijf van uw eigen computer (C: of D:) en daar de reparatie uitvoeren. Plaats na de reparatie het bestand weer terug naar de orignele locatie. Let er op dat niemand in de tussentijd het oorspronkelijke bestand mag openen of gebruiken.
Als u het bestand al gesplitst heeft in een front end bestand en een back end bestand en u heeft tijdig een kopie van uw front end bestand gemaakt, dan kunt u mogelijk dit backup bestand gebruiken. Kopieer het bestand eerst, zodat u altijd een ongebruikte backup versie tot uw beschikking hebt.
Is een formulier of rappoot niet meer te openen, omdat het beschadigd is, probeer dan het volgende:
| Geef het beschadigde formulier of het rapport een andere naam. | |
| Kopieer het formulier of het rapport met Ctrl+C en plak het met Ctrl+V. Geef de kopie de naam van het oorspronkelijke formulier of rapport. | |
| Werkt het nieuwe formulier of rapport ook niet, gooi het dan weer weg en importeer het formulier of rapport vanuit een backupbestand waarin het nog wel werkte. Voor importeren, zie verderop. |
Kunt u het bestand niet openen, doe dan het volgende:
| Geef het huidige bestand een andere naam. | |
| Maak een nieuw leeg Access-bestand aan, met de naam en het pad van het beschadigde bestand. | |
| Kies voor Bestand > Externe gegevens ophalen > Importeren. | |
| Zoek het beschadigde bestand op en importeer alles uit dit beschadigde bestand: tabellen, query's, formulieren enz. | |
| Als er bij het importeren van een tabel of ander onderdeel een foutmelding optreedt, noteer deze dan zorgvuldig. | |
| Zet bij Extra > Opstarten de instellingen goed, zoals deze ook in het originele bestand stonden. |
Soms zijn alleen een of enkele records in een bestand beschadigd. Als u geen actuele backup hebt die bruikbaar is (zonder dat u vele records opnieuw moet aanmaken), dan kunt u op de volgende manier proberen uit te zoeken welke records beschadigd zijn en welke u zou moeten verwijderen:
| Open de tabel. Kijk na of u raar ingevulde velden ziet, bijvoorbeeld een aantal vreemde tekens op een plek waar u een cijfer of gewone tekst verwacht. Probeer dat veld in te vullen met de juiste gegevens. Lukt dat niet en is het record wel belangrijk, schrijf dan zo veel mogelijk over. Selecteer dit record en verwijder het. | |
| Ziet u geen afwijkend record, probeer dan alle records te selecteren (typ Ctrl+A) en vervolgens te kopiëren (typ Ctrl+C). U krijgt dan mogelijk de melding dat u de records niet kan kopiëren. Probeer dan een groepje records te selecteren en daarna te kopiëren, Lukt het en krijgt u geen foutmelding, dan zit het beschadigde record niet in deze selectie. Maak nu een nieuwe selectie, net zo lang totdat u wel een foutmelding krijgt. Probeer dan door het kiezen van de juiste selectie de beschadigde records op te sporen. Is het record belangrijk, schrijf dan zo veel mogelijk over. Selecteer dit record en verwijder het record, als het mogelijk is. | |
| U kunt ook proberen met een Tabelmaakquery alle records in een nieuwe tabel te zetten. Als dit lukt, geef de oorspronkelijke tabel dan een andere naam en de kopie-tabel de naam van de originele tabel. Werk daarna wel bij Extra > Relaties de Relaties bij met de nieuwe tabel! | |
| In plaats van een Tabelmaakquery kunt u ook zelf een nieuwe tabel maken. Klik in het Databasevenster op de oorspronkelijke tabel. Kopieer met Ctrl+C en daarna Ctrl+V de Structuur van de oorspronkelijke tabel (niet de gegevens!). Maak daarna een Toevoegquery en voeg alle records uit de oorspronkleijke tabel toe aan de nieuwe tabel. Als u deze query niet kunt starten omdat een of meer records beschadigd zijn, probeer dan een Criterium in te stellen in de query waarmee u alle goede records wel kunt toevoegen. Een Criterium kan bijvoorbeeld zijn: bij het ID-veld: <> 12345. Hiermee slaat u het record met in het ID-veld de waarde 12345 over in de Toevoegquery. Werk daarna wel bij Extra > Relaties de Relaties bij met de nieuwe tabel! | |
| Als u een record moest verwijderen of moest 'achterlaten' bij een Toevoeg- of Tabelmaakquery, maak dan desgewenst op de normale manier een nieuw record aan en zet hierin de gegevens van het beschadigde record. Houd er rekening mee dat een Autonummering veld een nieuwe waarde krijgt. |
Mocht bovenstaande allemaal niet lukken, leg uw probleem dan voor op bijvoorbeeld het Office-forum. Probeer zo goed mogelijk aan te geven welke foutmeldingen u op welk moment krijgt, hoe u databasebestanden in elkaar zitten, hoe deze gebruikt worden (op een netwerk of lokaal, door een of door meerdere gebruikers gelijktijdig, wel of niet gesplitst in een front end en een back end bestand) en wat u al geprobeerd heeft om het bestand te herstellen.
Op het internet worden diverse commerciële programma's aangeboden om een Access-bestand te repareren. Deze programma's zijn vaak niet goedkoop. Vraag op bijvoorbeeld het Office-forum om tips en ervaringen over zo'n herstelprogramma.
U kunt op de volgende manieren beschadigingen voorkomen:
| Sluit altijd het Access-programma netjes af, voordat u de computer uitzet of de netwerkverbinding verbreekt. | |
| Probeer te voorkomen dat iemand de Reset-knop indrukt op de computer, als het Access-programma nog open staat. | |
| Als het programma of de computer vastloopt, druk dan niet te snel op de reset-knop. Wacht eerst een of twee minuten en probeer dan via het Windows Taakvenster (typ Ctrl+Alt+Del en klik op Taakbbeheer) de toepassing Access te beëindigen. Vaak krijgt u dan na 10-20 seconde de vraag of u Access echt wilt beëindigen, klik dan op Nu beëindigen. Doe geen overhaaste acties. | |
| Comprimeer het bestand regelmatig, zie Extra > Databasehulpprogramma's > Database (repareren en) comprimeren. In Access 2000 en hoger kunt u het bestand automatisch laten comprimeren bij het afsluiten van het bestand, zie Extra > Opstarten. | |
| Een bestand waar met meerdere mensen tegelijk aan gewerkt wordt, moet u altijd splitsen in een backend en een frontend deel. Zie Access voor gevorderden. |
U kunt een Acces database met de optie /compact, /repair of /decompile
compact maken, repareren of decompileren. Decompileren
heeft enige risico's. Zie de tekst op http://www.trigeminal.com/usenet/usenet004.asp?1043
Houd de volgende volgorde aan voor het gewenste resultaat:
| access /decompile uwdatabase.mdb (de afmeting is nog hetzelfde maar wel schoon) | |
| access /compact uwdatabase.mdb (nu is het gekrompen tot wel een derde van de oorspronkelijke database). |
| Zorg voor een regelmatige backup. Als het bestand dagelijks gebruikt wordt en de gegevens doorlopend ververst worden, dan zou u minstens een keer per dag een backup moeten maken van het bestand. Bij een gesplitst bestand geldt dit alleen voor het backend deel, van het front end deel moet u in ieder geval een backup maken vlak voor en vlak na een wijziging. | |
| Sommige backupprogramma's kunnen geen backup maken van een bestand dat geopend is. Controleer of uw backupprogramma wel het bestand juist heeft gebackupd. Maak desnoods zelf handmatig een backup van het bestand. | |
| Geef een handmatig aangemaakt backupbestand een duidelijke naam en/of zet het op een plek waarvan duidelijk is dat het een backup is. | |
| Gebruik voor een backup niet hetzelfde medium als voor het origneel, dus sla een backupbestand niet op dezelfde harde schijf op als het origineel. Een veilig backup medium is een cd-rom van een goed merk, een tweede harde schijf, een USB memorystick of een backup tape. Als u het bestand eerst comprimeert (met bijvoorbeeld WinZip) dan neemt het meestal weinig ruimte in. Nog veiliger is het om twee verschillende media te gebruiken voor uw backups, bijvoorbeeld twee verschillende cd-roms of een tweede harde schijf plus een cd-rom. Het kan gemakkelijk voor komen dat een cd-rom die u als backup wilt gebruiken, niet meer leesbaar is door een kleine beschadiging. Een diskette is erg kwetsbaar en is daarom niet geschikt als enige backup medium, daarnaast is de capaciteit van een diskette vaak te klein voor een Access-bestand, Maak liever een backup te veel en te vaak, dan een keer te weinig, maar geef elk backup bestand wel een duidelijke naam, waardoor u weet van welke dag en welke versie en van welk bestand het bestand een backup is. |
| Het kan soms goed werken als u naar een nieuwe versie van Access overstapt. Nieuwere versies van Access zijn meestal beter en stabieler en kunnen zelf meer fouten herstellen. U moet wel zeker weten dat uw database goed overgezet kan worden en alle gebruikers van uw programma met de nieuwe versie kunnen werken. Zie ook de tekst Access 97 <> Access 2000 en hoger. |
| Als uw programma regelmatig fouten geeft, loop het dan eens helemaal door en probeer onderdelen te verbeteren (maak wel eerst een backup van uw huidige versie). Haal onderdelen die niet belangrijk zijn voor uw programma er uit en herschrijf programmacode waar dit mogelijk is. Probeer het principe 'back to basic' toe te passen op uw programma. Als uw programma weer stabiel draait, dan kunt u voorzichtig aan weer proberen onderdelen toe te voegen in uw programma. | |
| Veel probleem ontstaan door verkeerde Verwijzingen in de Visual Basic omgeving van Access. Zie Access voor gevorderden > Verwijzingen. | |
| Als uw programma door meerdere mensen wordt gebruikt en in het gebruik instabiel wordt, probeer dan te kijken of u de rechten voor anderen in het programma kunt beperken. Zie de tekst Access beveiliging. De eerste stappen zijn om uw programma te splitsen in een backend en een front end bestand en om het front end bestand naar een .mde bestand om te zetten, waardoor de gebruikers niets meer aan de programmacode kunnen aanpassen. | |
| Access 2000 en hoger gaan slecht om met meerdere gebruikers tegelijkertijd van de front end van een Access-programma. Als u hierbij problemen krijgt, probeer dan aan elke potentiële gebruiker een eigen front end bestand aan te bieden. U kunt het front end bestand bijvoorbeeld in de eigen homedirectory van de gebruiker laten plaatsen. Het onderhoud van zo'n gedistribueerde front end is vanzelfsprekend uiterst lastig. Probeer tevoren te bedenken op welke manier u een nieuwe versie van de front end aan de gebruikers wilt geven. | |
| Als uw backend bestand op een netwerklocatie staat, dan kunt u ook proberen om het bestand op een andere locatie te zetten, het liefst met een minder diep 'pad'. Mogelijk kun u een eigen mapping ('schijfletter') maken voor de backend. Zie Access voor gevorderden > Locaties van bestanden. | |
| Als uw programma groot wordt en door veel mensen gebruikt gaat worden, dan is het aan te raden om te overwegen om het Access programma opnieuw te bouwen in bijvoorbeeld Visual Basic en de backend end op SQL Server over te zetten. Visual Basic heeft in tegenstelling tot Access 2000 en hoger geen problemen met multi-user gebruik. Daarnaast is een Visual Basic programma beter te beveiligen tegen oneigenlijk gebruik. |