access

Status
Niet open voor verdere reacties.

hakensteker

Nieuwe gebruiker
Lid geworden
24 mrt 2009
Berichten
2
Ik moet in een access bestands werken wat iemand ook voor een bedrijf heeft gemaakt.
maar als ik de selectie query ( die noem ik gemaks halve A) open dan kan ik er geen record bij maken, ik kan ook geen record verwijderen. Ik heb verschillende selectie guery's en als ik een andere open dan kan ik wel record toevoegen en verwijderen.

Met de query ( A) waar ik geen record kan aanmaken heb ik nog een probleem, als ik in het hoofdmenu gegevens in vul dan wordt het niet meegenomen naar de query.
Ok in rapporten zie ik niet wat ik in het hoofdmenu heb ingevoerd.

Wie kan mij vertellen wat er niet goed is, mijn kennis van access gaat niet is goed, dus...

vast bedankt voor het antwoord

Bill
 
Of je records kunt toevoegen of verwijderen m.b.v. een query is afhankelijk van de basisvelden die je selecteert, als je de query opbouwt uit meerdere tabellen. Bij een query op basis van één tabel zal het meestal wel kunnen, tenzij je bijvoorbeeld de knop Totalen hebt aangezet om te groeperen en totalen te berekenen.
Als je relaties legt tussen tabellen doe je dat om gegevens uit de ene tabel te koppelen met gegevens uit een andere tabel.

Je vraagt bijvoorbeeld adresgegevens op uit de tabel Klanten om ze te koppelen aan de tabel Orders, om een nette factuur te kunnen maken.
Er vanuitgaande in dit voorbeeld, dat het KlantID veld uniek is, en dus je sleutelveld, zul je dit veld opslaan in de tabel Orders, want je wilt uiteraard vastleggen welke klant welke order plaatst. Normaliter zul je niet alle adresgegevens bij elke order overnieuw willen intypen; dat is veel werk dat je dubbel doet, en je vergroot de kans op fouten.

Je hebt dus in de tabel Klanten een KlantID, en in de tabel Orders een veld KlantID.
Tot zover zal het wel duidelijk zijn, hoop ik.

Nu dan de query. Je hebt dus een query gemaakt met de tabel Klanten en Orders als basis. Je hebt het veld KlantID uit Klanten netjes gekoppeld aan het veld KlantID uit Orders. Uit de tabel Orders selecteer je alle ordergegevens, en uit de tabel Klanten alle klantgegevens. Welk veld KlantID zet je in de query? Je hebt er namelijk twee! En het antwoord hangt af van het doel waarvoor je de query wilt gebruiken.

Om orders toe te kunnen voegen, moeten alle verplichte velden in de tabel orders worden ingevuld. KlantID is er daar ook één van. Je pakt dus het veld KlantID uit de tabel orders.

Wat gebeurt er nu als je het veld KlantID uit de tabel Klanten gebruikt? Als je een record wilt toevoegen m.b.v. de query, zullen alle gegevens uit de query worden opgeslagen in de onderliggende tabellen. Haal je het KlantID uit de tabel Klanten, dan zal bij opslaan dus geprobeerd worden om het veld KlantID toe te voegen aan de tabel Klanten. Dat zal normaliter niet lukken, omdat ten eerste het veld KlantID een sleutelveld zal zijn, en dus uniek. Je mag het KlantID er dus niet nog een keer in mogen zetten. Verder zullen, als je een nieuwe klant toevoegt, ook andere gegevens zoals adresgegevens ingevuld moeten worden. En als laatste aspect: in de tabel orders ontbreekt een KlantID, als je een record zou toevoegen aan orders.

Om al deze redenen, en waarschijnlijk nog wel een paar andere, is de query, als hij op deze manier wordt gemaakt, niet geschikt om records toe te voegen of te verwijderen. Bij verwijderen zou in dit geval een Klantrecord worden weggegooid, wat uiteraard nooit de bedoeling zal zijn!

Samenvattend: om een query te gebruiken om records toe te voegen of te verwijderen, moet je uitgaan van één tabel waarin de gegevens worden opgeslagen of verwijderd; je mag wel gegegevens uit andere tabellen weergeven in de query, maar dat mogen nooit sleutelvelden zijn.

Een heel verhaal, maar ik hoop dat je hier weer verder mee kan!

Michel
 
Michel

Bedankt voor de uitgebreide uiteenzetting. echter dit gaat mij te ver.

Ik ben geen nieuwe datebase aan het maken. ik moet voor bepaalde werkplekken, verstrekt materieel invoeren, dat kan ik via het hoofdmenu doen nieuw record of ik ga naar de query en daar kan ik ook een nieuw record maken door op >* te drukken.
Ga ik nu naar het hoofdmenu om materieel op naam in te voeren, via de button nieuw rerord dan zie ik het niet in de query,ik kan in deze query ook geen record aanmaken. >* deze is niet geactiveerd.

Bill
 
Mijn verhaal was dan ook bedoeld om je enigszins de goede kant op te sturen, zodat je zelf kan kijken waar het probleem zit. Je zou eens in de query-eigenschappen van de query <Materiaal op Naam> hoe die is gemaakt.
Ik vermoed dus dat er een sleutelveld in zit uit een andere tabel, zodat je met deze query niet kan invoeren. De query die gebruikt wordt voor Verstrekt materiaal zit dus wel goed in elkaar.
Zonder de db met daarin de formulieren/queries kan ik je zo ook niet veel verder helpen, omdat ik uiteraard niet weet hoe de db in elkaar zit. Probeer hem anders eens, desnoods zonder data, als bijlage mee te sturen. Dan kunnen we een stuk gerichter kijken.

Michel
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan