[access] invoer controleren op bestaand

Pagina: 1
Acties:

  • Heras
  • Registratie: December 2001
  • Laatst online: 20-04 13:23
Ik heb hier een kleine database met oa een formulier voor de invoer van een nieuwe record. In de mail komen word-documenten binnen (aanvraagformulieren) met daarop een uniek klantnummer. Dit klantnummer wordt via het invoer-formulier opgeslagen in de hoofdtabel.

Het klantnummer is niet het Id van de record, omdat het meerdere malen in de database moet kunnen worden ingevoerd. Toch wil ik dat je tijdens het invoeren van een nieuwe record de melding krijgt dat er al een record in de tabel aanwezig is met hetzelfde klantnummer. (als dat het geval is natuurlijk)

Is dat mogelijk? En hoe zou dat dan kunnen?

Alle code in de database is in vba geschreven, geen macro's.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Unique constraint leggen op dat veld. (Een unieke index).

Zie ook dit topic:
[rml][ MS Access] constrainst in db ofniet?[/rml]/

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
[nohtml]
Heras schreef op 27 september 2002 @ 13:46:

Het klantnummer is niet het Id van de record, omdat het meerdere malen in de database moet kunnen worden ingevoerd. Toch wil ik dat je tijdens het invoeren van een nieuwe record de melding krijgt dat er al een record in de tabel aanwezig is met hetzelfde klantnummer. (als dat het geval is natuurlijk)
Dit snap ik toch niet? :?

Je wilt een foutmelding geven als een klantnummer dat je ingeeft reeds bestaat in de databank, maar het moet toch mogelijk zijn om verschillende klantnrs. meerdere keren in te geven?

https://fgheysels.github.io/


  • Heras
  • Registratie: December 2001
  • Laatst online: 20-04 13:23
nee, dat is het hem juist... je moet WEL de record mogen invoeren, maar puur een informatieve melding krijgen dat er al één of meerdere records zijn met dat nummer. Iedere record heeft zijn eigen recordID, maar dat is NIET het klantnummer.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Heras schreef op 27 september 2002 @ 14:09:
nee, dat is het hem juist... je moet WEL de record mogen invoeren, maar puur een informatieve melding krijgen dat er al één of meerdere records zijn met dat nummer. Iedere record heeft zijn eigen recordID, maar dat is NIET het klantnummer.


Wat voor nut heeft dat als je 2 klanten kunt aanmaken met hetzelfde klantnummer?

IMHO is dat crap.

Wat je in dat geval kunt doen is een select doen op die tabel met het toe te te voegen klantnr. Krijg je rows terug, dan bestaat het, krijg je niets terug , dan bestaat het nog niet.

https://fgheysels.github.io/


  • Heras
  • Registratie: December 2001
  • Laatst online: 20-04 13:23
Het formulier maakt ook geen klanten aan. Het formulier maakt een order aan. En ik wil dus kunnen zien of er voor die klant al een order is tijdens de invoer. En zou je die select dan nabijwerken zetten? Ik zou dus niet precies weten hoe ik die select in de code kwijt moet...

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Heras schreef op 27 september 2002 @ 14:22:
Het formulier maakt ook geen klanten aan. Het formulier maakt een order aan. En ik wil dus kunnen zien of er voor die klant al een order is tijdens de invoer. En zou je die select dan nabijwerken zetten? Ik zou dus niet precies weten hoe ik die select in de code kwijt moet...


Dan zit jouw datamodel goed fout. Misschien lees en leer je best eerst eens om de databank goed op te zetten.
De gegevens normaliseren, de juiste tabellen aanmaken, goede relaties leggen etc...

normaliseren

https://fgheysels.github.io/


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Dan doe je toch voordat je invoert een query op je DB

code:
1
2
3
SELECT KlantNummer
FROM HoofdTabel
WHERE KlantNummer = " + CStr(IngevoerdKlantNummer)


Als er uit deze query meer dan 0 records komen geef dan een melding.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:54

Crazy D

I think we should take a look.

&, niet + :)
Maar ik zou idd eerst nog eens even nadenken of dat wel is wat je wilt. Stel je voor, een klant belt. Je vraagt hun klantnummer, en je vind 6 klanten met dat klantnummer. En helemaal leuk als de klant die belt Jansen uit Amsterdam is, en toevallig heb je al een andere Jansen uit A'dam als klant met datzelfde nummer..... Een klantnummer hoeft dan wel niet de PK te zijn, maar uniek moet ie wel zijn anders heeft het hele nummer geen zin (alsof een telefoonnummer 2 keer in gebruik is ;)).

Exact expert nodig?

Pagina: 1