Avatar billede sath Novice
25. april 2018 - 09:00 Der er 6 kommentarer og
1 løsning

Databaseforespørgsel - liste i parametre

Hej
Jeg har i Excel lavet en databaseforespørgsel via en kommandotekst.
Jeg vil gerne bytte parametre ud med input i celler i Excel.

Jeg går ind under data - opdater alle - forbindelsesegenskaber - vælger definition - og skriver kommandoteksten.

Den kommer forkortet her

select  ACCOUNTNUM
     
from ledgertrans

where
            transdate between ? and ?
            and ACCOUNTNUM in (?)

De første to input celler er datoer - og det virker fint med en cellereference til Excel.
Den sidste ved accountnum vil jeg gerne have til at være et liste input. Parameter boksen siger, at det skal være en enkelt celle, der refereres til.
Er der en der kender en anden måde, at henvise til en liste på?

Alternativt kan jeg lave listen i en enkelt celle i mit input ark - men jeg kan kun i input arket skrive en værdi i inputtet fx 10000. Hvis jeg skriver to input fx 10000,10001 - så virker den ikke længere.
Hvis jeg skriver direkte i kommandoteksten med flere input (altså and accountnum in (10000,10001) ) - så virker det fint.

Jeg vil bare gerne undgå at skulle ind i kommandoteksten for at tilrette listen over accountnum der udtrækkes på.

Jeg håber I kan hjælpe.
26. april 2018 - 08:58 #1
Jeg har løst det for en kunde på et tidspunkt med lidt VBA kode, men man bør også kunne noget i retning af

SELECT NAME, TELEFONE, DATA
FROM  [sheet1$a1:q633]
WHERE  NAME IN (SELECT * FROM  [sheet2$a1:a2])

Hentet her:
https://stackoverflow.com/questions/1285686/excel-use-a-cell-value-as-a-parameter-for-a-sql-query

Der er også lidt at hente her

https://support.office.com/en-us/article/customize-a-parameter-query-addf7cb7-ddf0-442f-a60c-cd7280e201bd
Avatar billede sath Novice
27. april 2018 - 23:23 #2
Tak for dit bud Thor.

Jeg kan desværre ikke få det til at virke. Måske er det fordi den skal trække data fra en database - mens den skal trække input fra celler i regnearket.
28. april 2018 - 08:29 #3
Ja, du har nok ret - har du mod på lidt vba?
Avatar billede sath Novice
29. april 2018 - 09:17 #4
Jeg har aldrig lavet vba så det skal være på begynder niveau.

Men jeg har da mod på at give det et forsøg.
06. maj 2018 - 09:52 #5
Jeg har strikket et lille eksempel sammen, som du kan finde her
https://www.it-fjernundervisning.dk/info/eksperten-svar

Selve VBA koden er rimelig simpel
Sub SkiftSQL()  ActiveWorkbook.Connections("Dataforbindelsesnavn").OLEDBConnection.CommandText = Names("SqlTekst").RefersToRange.Value
    ActiveWorkbook.RefreshAll
End Sub


Det kan naturligvis løses på rigtig mange måder og jeg har prøvet at holde det så simpelt som muligt og har hele SQL strengen ude i regnearket.
07. juni 2018 - 11:38 #6
Er du kommet videre?
Avatar billede sath Novice
11. juni 2018 - 09:20 #7
Hej Thor
Jeg har været ved at undersøge om vi må køre vba på arbejde. Men de er ikke begejstrede i vores IT afdeling. Jeg tror ikke det ender med, at jeg får lov.

Jeg markerer din løsning, som værende en løsning, da jeg er sikker på, at den nok ville have virket - hvis ikke vores IT afdeling stadig overvejede om det kunne blive muligt.

Tak for hjælpen.
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

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