Probleem access -> primary key

Pagina: 1
Acties:

  • Tinuske
  • Registratie: September 2002
  • Laatst online: 08-02 20:43
Ik zit met een probleem met een access database. Ik ben een student van deze
school en zou een database maken waarin men rapporten kan uitdraaien van herkansingen per klas en herkansinge per vak. Echter het invulformulier werkt niet correct , ik krijg een foutmelding van een primaire sleutel (niet meteen de 1e keer, wel de 2e of 3e keer) bij het invullen. Zou iemand hier mischien hier een snelle blik op kunnen werpen. Ik heb er al meerdere leerlingen naar laten kijken , maar ook zij weten het niet. Kennlijk is het probleem dat toch lastiger dan het lijkt, terwijl een probleem met een primary key meestel toch simpel op te lossen is. De database (150 kb) is te vinden op http://members.brabant.ch...anberkel/Herkansingen.zip

Als iemand de oplossing zou weten, zou het helemaal geweldig zijn.

Alvast bedankt!

Verwijderd

waarom dwing je relationele integriteit af? Denk dat je de oorzaak daarin moet zoeken...

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Wat is de foutmelding?

We adore chaos because we like to restore order - M.C. Escher


  • Batsies
  • Registratie: Mei 2002
  • Laatst online: 27-01-2022

Batsies

E-Developing

Is het makkelijker om de error te plaatsen, waar de fout is, welk bestand etc etc

E-Developing


  • Tinuske
  • Registratie: September 2002
  • Laatst online: 08-02 20:43
Ik zal het even iets beter omschrijven
tabel 1: herkansingId (autonummering) , leerlingnummer, vakID
tabel 2: leerlingnummer, leerlingnaam, klas
tabel 3: VakID, vaknaam, toetsnummer

Het doel is om 2 rapporten te creeeren
namelijk 1 rapport, die de leerlingnamen met bijbehorende herkansingen aangeeft PER KLAS
en 1 rapport die de leerlingnamen met klas weergeeft PER VAK

Het formulier ziet er als volgt uit
Eerst selecteer men de klas (SELECT DISTINCT tblLeerlingen.Klas FROM tblLeerlingen ORDER BY tblLeerlingen.Klas DESC; )

Men krijgt nu de leerlingnamen uit de klas te zien, waarna men de leerlingnaam kiest (SELECT tblLeerlingen.Leerlingnaam FROM tblLeerlingen WHERE (((TblLeerlingen.Klas) Like forms!frmHerkansingen!klas)); )

het leerlingnummer komt nu automatisch in een combobox te staan
SELECT tblLeerlingen.Leerlingnummer FROM TblLeerlingen WHERE (((TblLeerlingen.Leerlingnaam) Like forms!frmHerkansingen!leerlingnaam));

Vervolgens kiest men in het subformulier geen, 1 of meerdere VakId's

Het lijkt erop , alsof de gebeurtenisprocedures het probleem veroorzaken, zonder deze lukt het namelijk wel (maarja , een leerling uit 500 leerlingen kiezen is natuurlijk niet echt gemakkelijk )

De 2 gebeurtenisprocedures :

Private Sub Klas_AfterUpdate()
Me!Leerlingnaam = Null
Me!Leerlingnummer = Null
Me!Leerlingnaam.Requery
End Sub

Private Sub Leerlingnaam_AfterUpdate()
Me!Leerlingnummer = Null
Me!Leerlingnummer.Requery
Me!Leerlingnummer = DFirst("Leerlingnummer", "TblLeerlingen", "TblLeerlingen.Leerlingnaam = Forms![frmHerkansingen]![Leerlingnaam] and TblLeerlingen.Klas = Forms![frmHerkansingen]![Klas]")
End Sub

De foutmelding

Afbeeldingslocatie: http://members.brabant.chello.nl/m.vanberkel/Foutmelding.jpg

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Verwijderd schreef op 09 May 2003 @ 16:04:
waarom dwing je relationele integriteit af? Denk dat je de oorzaak daarin moet zoeken...
Waarom zou je het niet doen?
Het heeft trouwens niets met referentiele integriteit te maken.


Waarom insert je de nieuwe records niet via het INSERT statement ? (SQL). Da's veel makkelijker dan met die recordsets te zitten klooien.
Geef dan bij het insert-statement aan welke velden je wilt inserten:
code:
1
2
INSERT INTO tabel (naam, adres)
VALUES ('blaat', 'blaat')


Als je autonummering gebruikt, moet je dat veld niet opgeven. De database zal automatisch een waarde toekennen.

[ Voor 51% gewijzigd door whoami op 09-05-2003 16:37 ]

https://fgheysels.github.io/


Verwijderd

Sorry... moest zijn "dwing je geen relationele integriteit af ". Ik zie geen enkele reden om allemal van die ingewikkelde constructies de maken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Verwijderd schreef op 09 May 2003 @ 16:38:
Sorry... moest zijn "dwing je geen relationele integriteit af ". Ik zie geen enkele reden om allemal van die ingewikkelde constructies de maken.
Wat dacht je van corrupte of inconsistente data ?

https://fgheysels.github.io/


Verwijderd

nooit last van gehad :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Stel dat je een tabel Customers, en een tabel Orders hebt, en je dwingt geen referentiele integriteit af, dan kan je gewoon een customer verwijderen, terwijl zijn orders nog in de database zitten.
Dat is het nut van referentiele integriteit; dat je zo'n dingen kunt voorkomen.

https://fgheysels.github.io/


Verwijderd

Daarom zeg ik ook.. waarom dwing je geen relationele integriteit af (was in de eerste post het woordje geen vergeten). ALs je toch zo'n simpel databaseje maakt, dan kun je er net zo goed gewoon met de wizard een formuliertje bij knutselen. Heb je niets geen vba nodig etc. :P

[ Voor 3% gewijzigd door Verwijderd op 09-05-2003 16:47 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Dan nog, ref. integriteit heeft hier niets mee te maken.

https://fgheysels.github.io/


  • mim
  • Registratie: Juni 2001
  • Laatst online: 03-05-2007

mim

whoami schreef op 09 mei 2003 @ 16:48:
Dan nog, ref. integriteit heeft hier niets mee te maken.
Hoe weet je dat? Als je dat weet weet je dus blijkbaar waar het wel aan ligt?

Waarom ben je dan nog hier :?

edit:

Je zou het misschien gewoon ff kunnen proberen. Het kan in ieder geval geen kwaad. En al kon het kwaad en zorgt het voor nog meer problemen dan kan je het ook zo weer terug draaien/uitschakelen. Toch?

[ Voor 31% gewijzigd door mim op 09-05-2003 16:58 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
mim schreef op 09 May 2003 @ 16:56:
[...]


Hoe weet je dat? Als je dat weet weet je dus blijkbaar waar het wel aan ligt?
Omdat het te maken heeft met een unique index, hoogstwaarschijnlijk een PK, of de topicstarter heeft zijn foreign keys als unique gedefinieerd.
Waarom ben je dan nog hier :?
Heb je een probleem met m'n aanwezigheid? :P

https://fgheysels.github.io/


  • mim
  • Registratie: Juni 2001
  • Laatst online: 03-05-2007

mim

whoami schreef op 09 May 2003 @ 16:58:
[...]

Omdat het te maken heeft met een unique index, hoogstwaarschijnlijk een PK, of de topicstarter heeft zijn foreign keys als unique gedefinieerd.


[...]


Heb je een probleem met m'n aanwezigheid? :P
Nee hoor dat is de einde-vrijdagmiddag-modus (lees dan wordt ik wat ongeduldig ;) )
Pagina: 1