Avatar billede iziqio Nybegynder
27. september 2005 - 15:17 Der er 5 kommentarer og
2 løsninger

Opdatering af indhold i database

Hej

Jeg har en tabel med by navne + en ny tabel med nogle nye bynavne. Den nye tabel skal derfor ind i den første. Kan jeg opdatere den gamle med de nye informationer?
Jeg bruger Access.

UPDATE X LEFT OUTER JOIN Y ON X.bynavn=Y.bynavn SET X.bynavn=Y.bynavn;


Hvad er fejlen ?
Tilføjer jeg ikke de byer som ikke er i tabellen i forvejen?
Avatar billede mugs Novice
27. september 2005 - 16:48 #1
Jeg ville ikke gøre det på den måde. Hvis du opdaterer på den måde, skal du hver gang i tabellen by navne skrive bynavnet, når du opretter poster eller evt. ændrer dem. Det gør risikoen for stavefejl så meget større.

I by navne ville jeg lave feltet bynavn som en combo, der slå op i tabellen med nye bynavne. comboen's egenskab tilføj til liste skal sættes til Nej. Det betyder, at du kun kan indsætte bynavne der eksisterer i nye bynavne. Du kan herefter sætte comboen's egenskab Autofuldførelse til Ja, hvilket betyder, at du kan skrive det første bogstav i et bynavn og Access vil herefter give det det første bynavn der begynder med dette bogstav.

Du kan downloade et Excel-ark med alle bynavne fra P&T hjemmeside. Et sådant Ark kan du hente ind i Access.
Avatar billede iziqio Nybegynder
27. september 2005 - 19:49 #2
Det jeg nok gerne vil have er en SQL sætning jeg kan bruge hver gang jeg får nye bynavne. Så jeg kan putte de nye bynavn ind.
Avatar billede mugs Novice
27. september 2005 - 19:53 #3
OK - Men det ændrer jo ikke det forhold, at du har en stor risiko for stavefejl.

Når du får et nyt bynavn, vil du tilføje det i den tabel der i forvejen indeholder navne og bynavne. Hvordan vil du så tilføje et nyt bynavn til en tabel der ikke indeholder dette bynavn med et kriterie:

X.bynavn=Y.bynavn;
Avatar billede ldanielsen Nybegynder
28. september 2005 - 18:05 #4
INSERT INTO X (bynavn) SELECT Y.bynavn FROM Y WHERE Y.bynavn NOT IN (SELECT X.bynavn FROM X)

- virker i MSSQL, så mon den ikke også gør i Access
Avatar billede iziqio Nybegynder
28. september 2005 - 21:41 #5
Tak for jeres svar. Jeg brugte den sidste løsning, men den gjorde vist ikke helt det jeg ville have. Smid et svar ida.
Avatar billede ldanielsen Nybegynder
29. september 2005 - 09:37 #6
Den skulle da gerne gøre dette:

Den sidste del:
SELECT Y.bynavn FROM Y WHERE Y.bynavn NOT IN (SELECT X.bynavn FROM X)
skulle gerne give en liste over bynavne fra Y der ikke findes i X.

Denne liste tilføjes tabellen X, således at evt. øvrige felter får default value.

Der er altså taget højde for at der i Y kunne findes bynavne der allerede findes i X, og disse ignoreres.

Hvad gik galt?
Avatar billede iziqio Nybegynder
29. september 2005 - 09:41 #7
Tak for hjælpen. Det var vist rigtig nok alligevel. Var lige lidt hurtig da jeg læste "NOT IN" :-)
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