Avatar billede vanni Nybegynder
02. september 2003 - 07:38 Der er 6 kommentarer og
3 løsninger

Append query abc - bøjet i neon!

Jeg har trikset lidt med tilføjelsesforespørgsler og så vidt jeg kan se, kan man kun append'e fra andre tabeller. Jeg viller gerne tilføje nogle værdier med en fx. DoCmd.RunSQL "APPEND ... har en lille testdb - hvis nogen har lyst?

Mvh. Vanni
Avatar billede proaccess Nybegynder
02. september 2003 - 08:20 #1
Du kan "nemt" gøre det i ren sql... Bare ikke gennem forespørgselsgitteret!

INSERT INTO tabelnavn (tekstfelt, talfelt, datofelt) SELECT 'proaccess', 123, #09-02-2003#;
Avatar billede terry Ekspert
02. september 2003 - 10:53 #2
INSERT INTO tabelnavn (tekstfelt, talfelt, datofelt) VALUES ('terry', 123, '2003-12-31');
Avatar billede terry Ekspert
02. september 2003 - 10:54 #3
Domcd.runsql "INSERT INTO tabelnavn (tekstfelt, talfelt, datofelt) VALUES ('terry', 123, '2003-12-31');"
02. september 2003 - 13:18 #4
Lige præcis de eksempler, som de 2 - ellers så kloge - hoveder har givet løser ikke dit problem, hvis du ønsker at tilføje data fra én tabel til en anden.

Så ser den f.eks. således ud:

INSERT INTO [NyTabel] ( [Felt1], [Felt2], [Felt3] )
SELECT [Felt1], [Felt2], [Felt3]
FROM [GammelTabel]
WHERE [Felt2] > 2000


Den nederste WHERE-sætning er blot for at vise at man kan sætte kriterier på, således at ikke alle felter bliver tilføjet. Nederste linie kan bare fjernes.
02. september 2003 - 13:20 #5
PS: At det her står på 4 linier betyder intet. Du kan bare trække det sammen til en linie - blot skal der være et mellemrum mellem hver ord:

docmd.RunSQL "INSERT INTO [NyTabel] ( [Felt1], [Felt2], [Felt3] ) SELECT [Felt1], [Felt2], [Felt3] FROM [GammelTabel] WHERE [Felt2] > 2000"
Avatar billede terry Ekspert
02. september 2003 - 13:39 #6
glad to see there is one "klog hoved" that is on his toes :o)
02. september 2003 - 13:43 #7
Jeg er blot en ydmyg amatør, som halser efter Jer 2 ;o)

Engang imellem er man bare heldig, at snuble over nogle krummer, som I har efterladt :o)
Avatar billede vanni Nybegynder
03. september 2003 - 07:28 #8
proaccess> 100% det jeg gik efter!
terry> Kører bare - "Domcd.runsql" = "DoCmd.RunSQL" :o)
thomas> Også et godt input fra dig, der bare virker, men skal SQL normalt ikke afsluttes med semikolon?

Jeg kan få samme resultat med SELECT eller VALUES.

I hvilke tilfælde bruger man så APPEND?
03. september 2003 - 09:06 #9
Hej Vanni,

Semicolon er ikke påkrævet. I nogle tilfælde sætter Access selv semicolonet, i andre tilfælde er det helt ligegyldigt (og hvorfor spilde tid og plads på noget, som ikke er nødvendigt ;o)

Append bruges slet ikke i alm. SQL. Man kalder det bare en Append-query. Man burde kalde det en Insert-query i stedet. Men sådan er der så meget...

Append bruges i stedet i VBA, hvor det bla. bruges til at tilføje et objekt til en samling (f.eks. et nyt felt til en tabel)
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