Avatar billede lars_hoeberg Praktikant
02. november 2009 - 12:55 Der er 7 kommentarer og
1 løsning

Tilføj KUN ID'er der ikke findes i forvejen

Hej eksperter.

Jeg har et lille system, hvor man kan tilmelde sig en turnering online. Alle disse tilmeldinger skrives i en db ved navn tilmeldinger.mdb
Alle personer der tilmelder sig, har et medlemsnummer, som de indtaster på formularen.
Alle disse tilmelder trækker jeg over i min hoved database, hvor jeg skal administrere disse.

Tabellen alle tilmeldinger skrives i hedder tblTilmeldinger.
Man kan tilmelde sig flere gange, men i min tabel tblSpillere, må hver person kun optræde én gang. Jeg har her lavet en tilføjelsesforespørgsel fra tblTilmeldinger, som skriver til tblSpillere, med følgende kriterie på medlemsnummerfeltet:

Not in (select medlemsnummer from tblSpillere)

Dog oplever jeg nu at, selvom der ligger poster i tblTilmeldinger med en medlemsnummer, som ikke findes i forvejen i tblSpillere, skrives disse IKKE ned i tblSpillere.
Mangler jeg noget i mit kriterie, eller er der en anden måde at gøre dette på ?
HUSK at hvert medlemsnummer KUN må findes én gang til tblSpillere, men kan findes flere gange i tblTilmeldinger. Dette skal altså være en slags "tjek" om spilleren allerede har tilmeldt sig i forvejen. Hvis ikke, skal han oprettes i tblSpillere. Hvis han allerede findes, skal der intet ske.
Avatar billede lars_hoeberg Praktikant
02. november 2009 - 12:55 #1
Måske skal jeg lige nævne at feltet medlemsnummer i begge tabeller er tekstfelter :-)
Avatar billede mugs Novice
02. november 2009 - 15:11 #2
Du kan lade db tælle tilmeldinger således:

Dim VARa As String
VARa = Me.Felt1
If DCount("*", "Tabelnavn", "[feltnavn] =' & feltnavn'") > 0 Then
MsgBox "Der er allerede poster med denne værdi."
Me.undo
end if
Avatar billede lars_hoeberg Praktikant
03. november 2009 - 08:01 #3
Hej Mugs.

Jeg vil helst ikke have at der kommer nogen boks op. Det skal bare være en simpel kørsel, så den tilføjer de medlemsnumre som ikke findes i forvejen. Ellers skal den intet foretage sig... Kan det ikke laves via en forespørgsel ?

Sender gerne db så du evt kan se det.
Avatar billede mugs Novice
03. november 2009 - 08:08 #4
Så må det kunne lade sig gøre med denne:

Dim VARa As String
VARa = Me.Felt1
If DCount("*", "Tabelnavn", "[feltnavn] =' & feltnavn'") = 0 Then
docmd.openquery "din forespørgsel"
end if
Avatar billede lars_hoeberg Praktikant
03. november 2009 - 08:22 #5
Okay, det vil altså sige at den kan følgende:

1) Tjekke om det indtastede i "Medlemsnummer" i tblTilmeldinger i forvejen findes i tblSpillere.

2) Tilføje de medlemsnumre, fra tblTilmeldinger til tblSpillere, som ikke i forvejen findes i tblSpillere.

3) Undlade at skrive de medlemsnumre, som i forvejen findes i tblSpillere.

Kan jeg prøve at lave et eksempel i en test database, jeg kan sende til dig ?
Avatar billede mugs Novice
03. november 2009 - 08:30 #6
"1) Tjekke om det indtastede i "Medlemsnummer" i tblTilmeldinger i forvejen findes i tblSpillere"

Er der tale om flere medlemsnumrer?

Ret beset kan du jo blot indeksere medlemsnummer i tbltilmeldinger og sige nej til dubletter.

Men du må gerne lave en lille testdb:

mugs snabelting mail.dk
Avatar billede lars_hoeberg Praktikant
03. november 2009 - 08:37 #7
Nej, det duer ikke da folk tilmelder sig online. Men de kan tilmelde sig flere gange med forskellige starttidspunkter, og dermed kan det samme medlemsnummer være flere gange i tblTilmeldinger. Her skal der så laves en kørsel, så spillerne oprettes i tblSpillere, men her skal de kun være én gang...
Jeg sender en db med noget testdata.
Avatar billede lars_hoeberg Praktikant
03. november 2009 - 14:53 #8
Har selv eksperimenteret lidt videre... Det lader til at være grundet nogle af medlemsnummer felterne i tblSpillere er tomme... Jeg afventer og ser hvad du kommer frem til, og arbejder selv lidt videre også
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Capgemini Danmark A/S

Salesforce CTO - Nordics

Netcompany A/S

IT Manager

Aller Leisure A/S

Erfaren .NET-udvikler

ALD Automotive Danmark A/S

Senior Software Engineer