Avatar billede jensen363 Forsker
15. december 2011 - 15:09 Der er 22 kommentarer og
1 løsning

Dynamisk forespørgsel via ODBC til ekstern kilde

Via ODBC har jeg adgang til en ekstern søgemaskine hvorfra jeg skal trække data, alle med samme periodeafgrænsning.

I kriterie feltet kan jeg indtaste et søgekriterie, eller en tom variabel så brugeren bliver promptet når forespørgslen afvikles. Der er mere end 50 forespørgsler med samme kriterie, men jeg kan ikke lave en "fast værdi" der kan genbruges i alle forespørgsler ... eller kan jeg ???

Har forsøgt med en temp-tabel hvor søgekriteriet gemmes, men det virker ikke :-(
Avatar billede Slettet bruger
15. december 2011 - 15:45 #1
..hvilken version af access har du?~)
Avatar billede jensen363 Forsker
15. december 2011 - 15:51 #2
2003
Avatar billede jensen363 Forsker
15. december 2011 - 16:02 #3
Har forsøgt i ren SQL, men får den sædvanlige :

run-time error 3061
too few parameters. expected 1
Avatar billede Slettet bruger
15. december 2011 - 16:28 #4
Har du proevet at saette din parameter inde i forespoergslen?
Avatar billede jensen363 Forsker
15. december 2011 - 16:32 #5
Det er netop kun det som virker :

INSERT INTO Report_Data .....
.... WHERE (((NS_DE_MostRecentSearchEnginesOrganic.TimePeriod)=[Select Criteria : ]));

Hvis jeg istedet forsøget at henvise eller relerate til en fast værdi som jeg har gemt i en tabel, så returneres intet til trods for at den værdi jeg indtaster begge steder er identiske :-(
Avatar billede Slettet bruger
15. december 2011 - 16:32 #6
...og du skulle tage at opgradere til 2007!~)
Avatar billede Slettet bruger
15. december 2011 - 16:34 #7
har du ikke et felt, du kan referere til....

..MostRecentSearchEnginesOrganic.TimePeriod)=[forms]![DinFormular]![DitFelt]));
Avatar billede Slettet bruger
15. december 2011 - 16:36 #8
...eller lave noget med en global variabel, som du henter gennem en public function.

..MostRecentSearchEnginesOrganic.TimePeriod)=DinFunction()));
Avatar billede Slettet bruger
15. december 2011 - 16:37 #9
...MostRecentSearchEnginesOrganic.TimePeriod)=DinFunction("HentBestemtVariabel")));
Avatar billede Slettet bruger
15. december 2011 - 16:40 #10
..ang. din too few parametres.. saa ud over at henvise til din parametre i kriteriet, saa er der ogsaa mulighed for at indtaste parametre et eller andet sted i vaerktoejslinien. Det er nok det der skal til... hvis du skal have det du har gang i til at virke!~)

Det kan ogsaa nogle gange sparke liv i en krydstab forespoergsel med kriterier i..
Avatar billede jensen363 Forsker
15. december 2011 - 19:34 #12
Det med at referere til et felt i en formular har jeg ikke prøvet, men svarer det ikke lidt til at referere til en fast værdi der er i en tabel ???
Avatar billede jensen363 Forsker
16. december 2011 - 09:23 #13
d. 15. december 2011 kl. 16:34:11| #7

Løsningen med at indtaste kriterie i et felt og derefter referere til dette virker heller ikke :-(

Det eneste som p.t. virker er at kriteriet angives direkte i forespørgslen .... og altså at dette gøres mere end 50 gange hver gang opdatering skal afvikles !!!
Avatar billede jensen363 Forsker
16. december 2011 - 09:33 #14
Tilsvarende med

d. 15. december 2011 kl. 16:36:16| #8
Avatar billede Slettet bruger
16. december 2011 - 09:47 #15
vba!~)
Avatar billede jensen363 Forsker
16. december 2011 - 09:53 #16
Hvordan VBA ???
Avatar billede Slettet bruger
16. december 2011 - 10:01 #17
Hvis du skal have fyret nogle INSERT INTO saetninger af, saa kunne du goere saetningerne klar i vba og koere dem derfra...
Avatar billede jensen363 Forsker
16. december 2011 - 10:08 #18
Det hele skal køre i VBA til sidst, men lige nu er udfordringen at søgningen på maskinen tilsyneladende ikke kan håndtere en dynamisk variabel, kun en tastet værdi ... det strider imod al sund fornuft :-(
Avatar billede Slettet bruger
16. december 2011 - 10:30 #19
ja... det lyder maerkeligt...
Avatar billede jensen363 Forsker
16. december 2011 - 11:16 #20
Så lykkedes det :-)

    'Global Variabel
    Criteria01 = "2011.w48"

WHERE .... = '" & Criteria01 & "'))
Avatar billede Slettet bruger
16. december 2011 - 13:29 #21
Ja og det er her der er en god feature i access 2007 og 2010. Nemlig tempvars... i dit eksempel kunne du i vba sige: tempvars.add "Criteria01", "2011.w48"
og i din forespoergsel under kriterie kunne du saa sige:
tempvars!Criteria01

...man kan selvfoelgelig ogsaa bruge dem i egenskaber for et tekstfelt eller i vba: tempvars("Criteria01") osv...
Avatar billede Slettet bruger
16. december 2011 - 13:30 #22
..men godt du fandt ud af det!~)
Avatar billede jensen363 Forsker
06. januar 2012 - 10:17 #23
Lukker
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