Avatar billede brice Nybegynder
03. november 2003 - 14:40 Der er 12 kommentarer og
1 løsning

Query - skal køre en tabel op i mod en anden

Hej!
Jeg har en tabel med 3 felter:
POSTCD  HUSCD  NAVN
2300    10    Pedersen
2200    20    Olsen
Jeg vil lave:
POSTCD  HUSCD  NAVN      OK
2300    10    Pedersen  Ja
2200    20    Olsen    Nej

Jeg har en anden tabel med postcd og huscd som er OK/Ja - hvordan laver jeg den nye tabel så der hvor der ikke er match står der Nej og der hvor der er match Ja
?
Avatar billede mugs Novice
03. november 2003 - 14:44 #1
Brug Access indbyggede guide "Find relaterede poster:

Åbn db i databasevinduet og vælg / følg guiden
Avatar billede henrik13 Nybegynder
03. november 2003 - 14:44 #2
Lav det som afkrydsningsbox. Der er ja = -1 og nej = 0
Avatar billede brice Nybegynder
03. november 2003 - 15:01 #3
Skal jeg ikke bruge Query? Hvis jeg gør det får jeg bare de som har status OK. De poster som har nej kommer ikke med.
Avatar billede mugs Novice
03. november 2003 - 15:06 #4
brice -> Det vil hjælpe en hel del, hvis du fortæller hvilken løsning du arbejder med.
Avatar billede terry Ekspert
03. november 2003 - 15:07 #5
Can you explain in more detail please? Dont know what you mean with this (Jeg har en anden tabel med postcd og huscd som er OK/Ja)!!!!
Avatar billede henrik13 Nybegynder
03. november 2003 - 15:11 #6
Lav en tekstbox og ved indgang skriv:
If -1 (Me.felt) Then
Ja
Else
Nej
End if
Avatar billede henrik13 Nybegynder
03. november 2003 - 15:13 #7
Hvis felted hedder OK ser den sådan ud:
If -1 (Me.ok) Then
Ja
Else
Nej
End if
Avatar billede brice Nybegynder
03. november 2003 - 15:14 #8
Ok, prøver. Jeg har 2 tabeller:
POSTCD  HUSCD  NAVN
2300    10    Pedersen
2200    20    Olsen
2200    22    Madsen
ialt 256 poster
POSTCD  HUSCD  OK
2300    10    Ja
2200    20    Ja
Ialt 56 poster
Jeg vil lave en ny tabel - som den første - men med en ny kolonne som skriver om OK ud for de poster som er ens. Jeg har lavet en query og der får jeg en tabel kun med 56 poster. Men jeg vil have en med 256 poster og et Ja ud for de poster som er OK
Avatar billede henrik13 Nybegynder
03. november 2003 - 15:16 #9
Ja bare husk at felted skal oprettes som Ja/nej felt
Avatar billede terry Ekspert
03. november 2003 - 17:32 #10
Can you send me your dB so that I can see what it is exactly you are trying to do?

NOSPAMeksperten@santhell.dkNOSPAM

you need to remove NOSPAM
Avatar billede tfa_dk Nybegynder
03. november 2003 - 23:33 #11
Der er 3 næsten ens løsninger:

1a: Du har en tabel her kaldet TabelAlle med felterne POSTCD      HUSCD  NAVN til denne tabel tilføjer du et nyt felt OK.
    Du har en tabel her kaldet TabelOk med felterne POSTCD  HUSCD  OK

    Løsning:
      UPDATE TabelAlle INNER JOIN TabelOk ON ([TabelAlle].[HusCD]=[TabelOk].[HusCD]) AND ([TabelAlle].[PostCD]=[TabelOk].[PostCD]) SET TabelAlle.Ok = Yes;

1b: Du har en tabel her kaldet TabelAlleGammel med felterne POSTCD  HUSCD  NAVN
    Du har en tabel her kaldet TabelOk med felterne POSTCD  HUSCD  OK
   
    Løsning:
      Du tager en kopi af TabelAlleGammel med struktur og data og kalder den TableAlle
      Til tabelAlle tilføjer du et felt OK
      kør samme forespørgsel som e 1a:
      UPDATE TabelAlle INNER JOIN TabelOk ON ([TabelAlle].[HusCD]=[TabelOk].[HusCD]) AND ([TabelAlle].[PostCD]=[TabelOk].[PostCD]) SET TabelAlle.Ok = Yes;

2: Du har en tabel her kaldet TabelAlleGammel med felterne POSTCD  HUSCD  NAVN
    Du har en tabel her kaldet TabelOk med felterne POSTCD  HUSCD  OK
   
    Løsning:
      Du tager en kopi af TabelAlleGammel kun strukturen og kalder den TableAlle
      Til tabelAlle tilføjer du et felt OK
      Kør forespørgslen:
        INSERT INTO TabelAlle ( PostCD, HusCD, Navn, Ok )
        SELECT TabelAlleGammel.PostCD, TabelAlleGammel.HusCD, TabelAlleGammel.Navn, TabelOk.Ok
        FROM TabelAlleGammel INNER JOIN TabelOk ON (TabelAlleGammel.HusCD = TabelOk.HusCD) AND (TabelAlleGammel.PostCD = TabelOk.PostCD);

I Alle tilfælde bliver resultatet af TableAlle:

PostCD    HusCD    Navn    Ok
2300    10    Pedersen    Ja
2200    20    Olsen    Ja
2200    22    Madsen    Nej


Jeg ved ikke lige hvad der ske med min formatering håber det kan læses alligevel.
Avatar billede tfa_dk Nybegynder
03. november 2003 - 23:39 #12
Ups.

2: Opretter kun de rækker hvor der findes en række i begge tabeller. Den rigtige løsning er:

INSERT INTO TabelAlle ( PostCD, HusCD, Navn, Ok )
SELECT TabelAlleGammel.PostCD, TabelAlleGammel.HusCD, TabelAlleGammel.Navn, TabelOk.Ok
FROM TabelAlleGammel LEFT JOIN TabelOk ON (TabelAlleGammel.HusCD = TabelOk.HusCD) AND (TabelAlleGammel.PostCD = TabelOk.PostCD);
Avatar billede brice Nybegynder
07. november 2003 - 11:02 #13
Super - 1000 tak
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