Dat is gewoon niet normaal—lege Access-tabellen normaliseren
Een van de moeilijkste dingen om te doen (maar het belangrijkste bij het bouwen van een database) is het correct bouwen van de tabelstructuren. Dit proces staat bekend als normalisatie. Een goed genormaliseerde database mag nooit slechts één tabel bevatten met overbodige informatie. Bekijk de volgende tabel:Klant | Adres | Stad | Status | Zip | Telefoon |
Jones | Hoofdstraat 125 | Jonestown | NJ | 08000 | 609-555-1244 |
Jones | Hoofdstraat 125 | Jonestown | NJ | 08000 | 609-555-7890 |
Smith | 1542 Jones Highway | Laramie | WY | 82051 | 307-555-5412 |
Wilson | 78 Smith Circle | Jones | CA | 90000 | 451-555-8645 |
Als u problemen ondervindt bij het normaliseren van lege tabellen, vult u elke tabel met vijf tot tien records. Door de tabellen met gegevens te bekijken, is het meestal gemakkelijker om normalisatieproblemen op te sporen.
Ga als volgt te werk om uw tabellen te normaliseren:- Bekijk elke tabel zoals deze momenteel is gestructureerd. Herhaalt u onnodig informatie (zoals u eerder bij het adres en de naam van de klant zag)?
- Als u dubbele informatie heeft, bepaal dan waarom u deze herhaalt (bijvoorbeeld de meerdere telefoonnummers voor één klant).
- Breek de ene tafel in twee tabellen om de redundantie te elimineren.
- Herhaal stap 1 tot en met 3 voor elke tafel totdat alle redundantie is geëlimineerd.
Het kan zijn dat het splitsen van een tabel in twee nog steeds niet alle redundantie in een tabel elimineert. Blijf in dat geval de tabellen splitsen totdat alle redundantie is verdwenen.
Je typt 73.725, maar Access verandert dit in 74
Automatische afronding kan de levende daglichten uit je frustreren, maar corrigeren is eenvoudig. Standaard stelt Access alle nummervelden in om lange gehele getallen te accepteren. Zoals je je misschien herinnert van je wiskundetijd op de middelbare school, is een geheel getal een negatief of positief geheel getal. Om rekening te houden met decimalen, wijzigt u de instelling voor de veldgrootte zodat deze decimalen accepteert. Hier is hoe:- Open de tabel in de ontwerpweergave en klik vervolgens op het veld dat niet meewerkt.
- Klik op het tabblad Algemeen van het gebied Eigenschappen onder aan het scherm op het vak Veldgrootte.
- Klik op de pijl omlaag aan het einde van het vak en selecteer vervolgens Enkelvoudig, Dubbel of Decimaal in het vervolgkeuzemenu dat verschijnt.
- Sla de tabel op en je probleem met automatisch afronden is voorbij.
Voor meer informatie over het verschil tussen enkele, dubbele en decimale veldgroottes, drukt u op de F1-toets terwijl u zich in het eigenschappenvenster Veldgrootte bevindt. Het Help-scherm geeft een gedetailleerde beschrijving van elke veldgrootte, de nummers die erin zullen staan en de hoeveelheid ruimte die voor die grootte is gereserveerd. Toegang vereist een internetverbinding om het helpsysteem te gebruiken.
De woorden veranderen - problemen met Access AutoCorrectie
Soms kunnen die "handige" functies in Access hinderlijk worden. Een dergelijke functie wordt AutoCorrectie genoemd. Je kent het misschien van Microsoft Word, waar het vaak een groot goed is. Databases bevatten echter vaak acroniemen, onderdeelnummers en dergelijke. AutoCorrectie kan een velddag hebben met dergelijke "woorden". U realiseert het zich misschien niet eens als u uw gegevens invoert.
Je hebt twee keuzes om dit probleem op te lossen.
- Maak de effecten van AutoCorrectie ongedaan zodra ze zich voordoen. Druk op Ctrl+Z direct nadat AutoCorrectie uw gegevensinvoer heeft verprutst. Access zet de gegevens terug naar de manier waarop u ze hebt getypt. Helaas, om dit te laten werken, moet je echt opmerken dat Access heeft veranderd wat je hebt ingevoerd.
- Zet AutoCorrectie helemaal uit. Volg deze stappen om AutoCorrectie uit te schakelen:
1. Klik op het tabblad Bestand in de linkerbovenhoek van het toegangsscherm.
2. Klik op de knop Opties in het menu aan de linkerkant van het scherm.
Het dialoogvenster Toegangsopties verschijnt.
3. Klik op Proeflezen in de lijst aan de linkerkant.
Je proefdrukkeuzes verschijnen.
4. Klik op de knop AutoCorrectie-opties.
Het dialoogvenster AutoCorrectie verschijnt.
5. Schakel sommige of alle selectievakjes in het dialoogvenster AutoCorrectie uit.
Je kunt sommige of alle AutoCorrectie-functies uitschakelen, afhankelijk van wat AutoCorrectie doet om je op dit moment te ergeren. Schakel de optie Tekst vervangen terwijl u typt uit als u niet langer wilt dat Access uw "spelfouten" voor u "repareert".
6. Klik tweemaal op OK om uw wijzigingen op te slaan.
U kunt nu uw probleemtekst correct typen, zonder tussenkomst van AutoCorrectie, en ervoor zorgen dat deze blijft zoals u hem hebt getypt.
Was er en nu is het weg—per ongeluk verwijderen van gegevens in Access
Misschien heb je deze in de loop der jaren veel gehoord:"De database heeft mijn record verwijderd!" Nou, ik heb nieuws voor je:de database doet niets zonder dat wij mensen er de leiding over hebben. En mensen kunnen een paar fouten maken:- Onbedoelde verwijdering: Er zijn verschillende manieren om een record per ongeluk te verwijderen. Gewoonlijk wordt een sneltoets voor Verwijderen ingedrukt, zoals Ctrl+– (record verwijderen) of Ctrl+X (knippen).
De opdracht Ongedaan maken (Ctrl+Z) maakt het verwijderen van een record niet ongedaan.
- Gegevensfout: Een record kan verschijnen verwijderd als iemand per ongeluk een bijzonder belangrijk stuk informatie wijzigt. Stel dat het betreffende record een besteldatum van 15-12-2019 bevat en iemand per ongeluk de datum verandert in 15-12-09. De besteldatum is niet de verwachte datum, dus het lijkt erop dat het record is verwijderd.
- Als een gegevensfout ervoor zorgt dat het record lijkt te zijn verwijderd, zijn er verschillende mogelijke oplossingen, zoals beschreven in de volgende secties.
Ongedaan maken
Geen paniek. Druk voordat u iets anders doet op Ctrl+Z. Dat is de opdracht Ongedaan maken. Als het record terugkomt, heb je geluk. Met Ongedaan maken worden fouten bij het invoeren van gegevens ongedaan gemaakt die ertoe kunnen leiden dat de record als verwijderd lijkt te worden weergegeven. Dit werkt echter alleen als u Ongedaan maakt direct nadat de gegevensinvoerfout heeft plaatsgevonden.
Zoeken naar het ontbrekende record
Als u de opdracht Ongedaan maken probeert en het record komt niet terug, is er nog steeds een kans dat een gegevensinvoerfout het verbergt door het te plaatsen waar u het niet verwacht. Open de tabel die het record bevat en zoek ernaar op een andere manier dan u normaal zou doen. Zoek naar iets ongewoons op vergelijkbare records. Hier zijn enkele voorbeelden:- Als je normaal naar bestellingen zoekt op datum, zoek dan op klant. Kijk of er een bestelling bestaat die lijkt op de ontbrekende bestelling voor die klant en heeft een ongebruikelijke datum (bijvoorbeeld dezelfde maand en dag als de ontbrekende bestelling maar met het verkeerde jaartal).
- Probeer alle bestellingen op de betreffende datum te bekijken om te zien of de klant bij elke bestelling correct lijkt te zijn. Het kan zijn dat de klant per ongeluk is gewijzigd op de ontbrekende bestelling.
Back-up herstel
Als u het record nergens kunt vinden, kopieert u het record uit een back-up van het databasebestand.Deze oplossing werkt alleen als u een back-up van uw database hebt gemaakt sinds het record oorspronkelijk is toegevoegd. Als u 's nachts een back-up maakt en het record is ingevoerd op dezelfde dag dat het verdween, staat dat record niet in uw back-up.
U voert een Access-query uit, maar de resultaten zijn onverwacht
Query-schrijven is een kunstvorm. Zelfs de experts verprutsen zo nu en dan. Hier zijn enkele veelvoorkomende oplossingen voor onverwachte queryresultaten:- Controleer de criteria op juistheid. Een enkele misplaatste toetsaanslag is voldoende om van uw vraag een blindganger te maken. Controleer uw criteria op spel- of syntaxisfouten — en voer de query vervolgens opnieuw uit.
- Probeer de eigenschap Unieke waarden. Ooit twee exemplaren van elk record in uw zoekopdrachtresultaten gezien terwijl u er maar één verwachtte? Een snelle oplossing komt vaak van het gebruik van de eigenschap Unieke waarden. Deze eigenschap vertelt Access om te stoppen met de verdubbeling, al - en, als de queryresultaten een groep exacte duplicaten bevatten, om slechts één rij uit de groep te retourneren. Zo gebruikt u deze eigenschap:
1. Open de probleemquery in de ontwerpweergave.
Het tabblad Ontwerpen op het lint verschijnt.
2. Klik op de knop Eigenschappenblad in de groep Lint weergeven/verbergen van het tabblad.
Het venster Eigenschappenvenster wordt rechts van het queryraster geopend.
3. Klik in het grijze gebied tussen de veldlijsten in de bovenste helft van het queryraster.
Het eigenschappenblad zou nu Query-eigenschappen moeten weergeven. (Kijk rechts onder de titelbalk van het eigenschappenblad om dit te bevestigen.)
4. Klik in de rij Unieke waarden van het eigenschappenblad.
Er verschijnt een pijl in de vervolgkeuzelijst aan het einde van de rij Unieke waarden.
5. Selecteer Ja in de vervolgkeuzelijst en voer de query uit.
De verdubbeling zou moeten verdwijnen.
- Corrigeer de selectielogica. Het jongleren met een aantal EN- en OF-verbindingen in een query kan zelfs de meest geharde databaseontwerpers snel in de war brengen.
- Tabelrelaties herstellen. Als uw zoekopdrachtresultaten manier laten zien te veel records en de query gebruikt twee of meer tabellen, zijn onjuiste relaties (ook wel joins genoemd) de waarschijnlijke oorzaak.
- Controleer typen tabelrelaties. Als uw query twee of meer tabellen omvat en u minder records krijgt dan u had verwacht, is dit waarschijnlijk de oorzaak. Als u bijvoorbeeld een database voor orderinvoer hebt en een query uitvoert met alle klanten en hun bestellingen, ziet u standaard alleen die klanten die een bestelling hebben geplaatst. Ga als volgt te werk om alle klanten te zien, ongeacht of ze al dan niet bestellingen hebben geplaatst:
1. Klik in de ontwerpweergave met de rechtermuisknop op de join (de lijn die de twee tabellen verbindt) en kies Join-eigenschappen in het menu dat verschijnt.
2. Bekijk de soorten joins die worden aangeboden en kies degene die iets zegt als "Neem ALLE records van 'Klanten' op en alleen die records van 'Bestellingen' waar de samengevoegde velden zijn gelijk”.
De daadwerkelijke tekst die je ziet verschilt afhankelijk van de namen van je tabellen. Om liefhebbers te ondervragen, wordt dit een outer join genoemd. Heel gaaf.
3. Klik op OK en voer de query uit.
U zou nu alle records uit de tabel Klanten moeten hebben, ongeacht of er overeenkomstige records in de tabel Bestellingen zijn.
Als uw zoekopdracht meerdere criteria, enkele berekende velden en talrijke relaties omvat, kunt u proberen de taak op te splitsen in verschillende kleinere stappen in plaats van het probleem in één keer op te lossen. Met de stapsgewijze aanpak kunt u zich op elk stuk concentreren, één voor één, om ervoor te zorgen dat elk stuk perfect werkt voordat u doorgaat naar het volgende.
Als uw vraag nog steeds niet werkt, wat u ook doet, vraag dan iemand anders om een kijkje te nemen. Ik heb vaak uren aan een moeilijk vraagprobleem gewerkt, het aan iemand anders laten zien en die magische woorden gehoord:"Dat is eenvoudig. Doe dit gewoon.” En het probleem is opgelost. Door met een frisse blik naar het probleem te kijken, worden dingen vaak snel opgelost.
Het gevreesde dialoogvenster Parameter in Access
Op een bepaald moment, wanneer u een query, formulier of rapport opent, ziet u een dialoogvenster Parameter wanneer u geen dialoogvenster Parameter wilt zien. Gooi jij je handen in de lucht en vervloek je het universum? Natuurlijk niet! Telkens wanneer u onverwacht een Parameter-dialoogvenster ziet (u kunt deze expres instellen), betekent dit dat Access geen veld kan vinden waarnaar wordt verwezen door het formulier of rapport of de query achter het formulier of rapport. Stel dat het probleem bij een rapport ligt. Om problemen op te lossen, begint u met de vraag achter het rapport. Open die query in de gegevensbladweergave en kijk of u de parameter krijgt. Zo ja, om welk veld wordt gevraagd? Dat veld is het veld dat Access niet kan vinden. Schakel de query dus naar de ontwerpweergave en zoek de kolom met het veld dat Access niet kan vinden. Het probleemveld is meestal een Berekend veld dat verwijst naar andere velden. Is elk veld en elke tabelnaam correct gespeld? Zo niet, corrigeer dan de spelfouten. Is elk veld in de tabel waarin het hoort te staan? Als uw referentie bijvoorbeeld Orders.LastName is en het veld LastName in de tabel Klanten staat, corrigeert u de fout door Customers.LastName te typen .
Als de query wordt uitgevoerd zonder een parameter, ligt het probleem in het rapport. Open dus het rapport in de ontwerpweergave en controleer elk besturingselement op het rapport dat aan een veld is gekoppeld. Als Access een van de velden die het besturingselement moet weergeven niet kan vinden, wordt er een groene driehoek in de linkerbovenhoek van het besturingselement geplaatst. Controleer elk voor de groene driehoek. Als u de groene driehoek vindt, controleer dan de spelling van het veld waarnaar wordt verwezen door het besturingselement. Als het besturingselement bijvoorbeeld Achternaam (geen spatie) moet weergeven en de verwijzing in het besturingselement Achternaam (spatie) zegt, verwijdert u de spatie zodat het besturingselement in het rapport overeenkomt met de veldnaam van de query. Controleer ook de onderliggende query van het rapport om te bevestigen dat het probleemveld in de query is geselecteerd.
De langzaamste Access-database in de stad
Een Access-database kan op de gedeelde schijf van een bedrijf terechtkomen, zodat deze beschikbaar is voor iedereen die hem nodig heeft. Het probleem met het plaatsen van de hele Access-database op de gedeelde schijf is dat deze vaak traag werkt op het werkstation van elke gebruiker (dat is een mooi woord voor een individuele computer). U zult waarschijnlijk ook fouten tegenkomen als meerdere mensen tegelijkertijd proberen de database te gebruiken. De klachten komen binnen en je weet niet wat je moet doen.
De oplossing voor dit probleem ligt in het splitsen van het Access-databasebestand in twee afzonderlijke bestanden:
- Voorkant: Bevat alle database-objecten behalve de tafels
De front-end bevindt zich op het gebruikerswerkstation.
- Achterkant: Bevat alleen de tabellen
De back-end bevindt zich op de gedeelde server.
De voorkant is gekoppeld aan tabellen in de achterkant.
Het enige dat u echt deelt, zijn de gegevens - dus de gegevens zijn alles wat op de gedeelde schijf moet. Door dingen op deze manier in te stellen, is de enige informatie die over het netwerk moet reizen de gegevens die door de gebruiker worden gevraagd. Een dergelijke configuratie versnelt de databaseprestaties aanzienlijk en stelt meerdere gebruikers in staat om gegevens tegelijkertijd in te voeren en te bewerken.
Het splitsen van de dataset is niet zo moeilijk als je zou denken. Access maakt het een fluitje van een cent met de Database Splitter Wizard. Volg deze stappen om uw database te splitsen:- Maak een back-up van de database die u wilt splitsen. Als er iets misgaat (onwaarschijnlijk, maar goed, je kunt nooit te veilig zijn als het om gegevens gaat!), kun je het opnieuw proberen met de reservekopie.
- Verplaats indien nodig de database die u wilt splitsen naar een map op uw gedeelde schijf. Met deze stap kan de Database Splitter tabelkoppelingen correct voor u instellen.
- Open het databasebestand dat u uit de gedeelde map wilt splitsen. Zorg ervoor dat u een reservekopie van deze database hebt voordat u verder gaat. Zorg er ook voor dat alle database-objecten gesloten zijn.
- Klik op het tabblad Databasehulpmiddelen op het lint. De groep Gegevens verplaatsen verschijnt op het lint. Het bevat een knop genaamd Access Database.
- Klik op de knop Toegang tot database. Het dialoogvenster Wizard Database Splitter verschijnt.
- Klik op de knop Database splitsen en laat de wizard zijn werk doen. U wordt gevraagd om een back-end-databasebestandsnaam. Voer een naam in, leun achterover en kijk hoe het plezier zich voor je ogen ontvouwt.
- Kopieer het front-endbestand (het originele bestand dat u splitst) naar het werkstation van elke gebruiker. Laat de gebruikers het bestand openen vanaf hun werkstations - en kijk hoe ze zich verbazen over de verbeterde snelheid van de database! Je bent een held. Ja!
Heb je geen gedeelde Drive of wil je van je share af? U kunt nog steeds meerdere gebruikers tegelijk in uw database hebben door uw gegevens in de cloud te plaatsen.
Uw Access-databasebestand is zo groot als een huis
Naarmate de tijd verstrijkt, merkt u dat uw databasebestand steeds groter wordt. Dit is het gevolg van het verwijderen van objecten en records in de loop van de tijd. Als u bijvoorbeeld een query maakt en deze later verwijdert omdat deze niet langer nodig is, verwijdert Access niet automatisch de ruimte die door die query wordt ingenomen uit het databasebestand. Hetzelfde geldt voor records. Als u records uit een tabel verwijdert, blijft de ruimte die deze records innemen in het databasebestand. Uiteindelijk kan het bestand vier of vijf keer zo groot worden als nodig is om de gegevens en objecten erin te bewaren.
Waarom zou u zich zorgen maken als de bestandsgrootte toeneemt? Hier zijn twee redenen:
- Een kleiner databasebestand werkt sneller. Prestaties zijn een belangrijk onderdeel voor tevreden databasegebruikers. U wilt dat uw formulieren snel worden geladen en dat uw vragen en rapporten zo snel mogelijk worden uitgevoerd.
- Een regelmatig gecomprimeerde database is stabieler. Als de database vaak wordt gebruikt, helpt het regelmatig comprimeren om corruptie van bestanden en tabellen te voorkomen.
- Open de opgeblazen database en klik op het tabblad Databasehulpmiddelen op het lint. De groep Hulpmiddelen verschijnt helemaal links van het lint.
- Klik op de knop Database comprimeren en repareren in de groep Tools. De statusbalk (rechtsonder op uw scherm) geeft een voortgangsbalk weer die u informeert over de voortgang van het comprimeringsproces. Wanneer de voortgangsbalk verdwijnt, is het comprimeren voltooid - en houdt u een veel trimmer (sneller en stabieler) databasebestand over. Als je je database hebt opgesplitst, vergeet dan niet om zowel de front- als back-endbestanden te comprimeren.
Wilt u dat een databasebestand wordt gecomprimeerd telkens wanneer u het sluit? Volg deze stappen:
- Klik op het tabblad Bestand op het lint.
- Klik op de knop Toegangsopties in de menubalk aan de linkerkant van het scherm. Het dialoogvenster Toegangsopties verschijnt.
- Klik op Huidige database in de lijst aan de linkerkant. Opties voor de huidige database verschijnen.
- Vink het selectievakje Comprimeren bij sluiten aan.
- Klik op OK om uw wijzigingen op te slaan.
- Klik op OK in het resulterende berichtvenster.
- Sluit de database en let op de statusbalk rechtsonder. De database wordt gecomprimeerd voordat deze wordt gesloten!
Compact bij sluiten wordt het beste alleen gebruikt voor het front-end-bestand. Het comprimeren van de back-end bij het sluiten kan corruptie van het back-end-bestand veroorzaken als er een andere gebruiker in zit wanneer u het afsluit. Schakel Compact on Close niet in op het back-endbestand.
Je krijgt een puinhoop bij het importeren van je spreadsheet in Access
Het is gebruikelijk om een verzameling spreadsheets te upgraden naar een Access-database nadat de spreadsheetoplossing niet langer aan uw behoeften voldoet. Het is ook gebruikelijk om de geïmporteerde spreadsheetgegevens (nu tabel) in een staat van wanorde te vinden. De eenvoudigste manier om dit probleem op te lossen, is door de spreadsheet vóór . op te schonen je importeert het. Hier zijn een paar tips voor een opgeruimde import:- Controleer de informatie die uit een spreadsheetprogramma komt, om er zeker van te zijn dat het consistent is en voltooid. Zorg er vooral voor dat alle vermeldingen in elke kolom (veld) van hetzelfde gegevenstype zijn (alle getallen, alle tekst of wat dan ook).
- Verwijder titels en lege rijen boven aan de spreadsheet. Een ideale spreadsheet voor import heeft veldnamen (kolomkoppen) in rij 1 en gegevens die beginnen in rij 2.
- Zorg ervoor dat de kolomkoppen van uw spreadsheet kort en uniek zijn, zodat Access ze tijdens het importeren gemakkelijk kan vertalen naar veldnamen.
Het spijt ons; uw Access-databasebestand is beschadigd
Het begon als een dag zoals alle andere. Op deze dag krijgt u echter een foutmelding wanneer u de voorkant van uw gesplitste Access-database opent. U lijkt geen formulieren of rapporten te openen. Het is grappig hoe een paar kleine berichtjes je dag kunnen verpesten. Je begint je af te vragen of je gisteravond een back-up van het gegevensbestand hebt gemaakt en wanneer het bestand daadwerkelijk is beschadigd. Dan begin je je af te vragen hoe je uit deze puinhoop komt.
Wees niet bang. Er is een eenvoudige oplossing voor een corrupte database. Dit zijn de stappen:
- Blader naar de map die het back-endbestand bevat.
- Dubbelklik op het bestand om het te openen. Access wordt gestart en probeert het bestand te herstellen. U zou een voortgangsbalk voor reparaties moeten zien aan de rechterkant van de statusbalk. Als alles goed gaat, wordt het bestand geopend.
- Sluit het back-end-gegevensbestand.
- Open het front-end-bestand opnieuw en alles zou normaal moeten werken.
Als het beschadigde bestand na het volgen van de voorgaande instructies nog steeds niet wordt geopend, hebt u een serieus probleem dat enige moeite kan kosten om het op te ruimen. De volgende stap is om een reservekopie van de database te gebruiken. Controleer welke gegevens ontbreken tussen de back-up en uw herinnering aan het beschadigde bestand. Ja, u moet ontbrekende gegevens opnieuw invoeren. Sorry!
Als je geen back-up hebt, is alle hoop niet verloren. U kunt software kopen die speciaal is ontworpen om beschadigde Access-databasebestanden te repareren. Zoek op internet naar repareer corrupte Microsoft Access-databasebestanden. Zorg ervoor dat de software werkt met Microsoft Access 2019 en dat deze van een legitiem bedrijf is.