Avatar billede morlin Nybegynder
03. juni 2011 - 14:31 Der er 7 kommentarer

Makro med udtræk fra SQL

Hejsa,

Jeg har en stor udfordring med SQL og Excel. Jeg er ved at lave en makro, som henter data fra en SQL server, når der tastes i en række celler. Makroen ser således ud:

Range("C3").Select
    With Selection.QueryTable
     
        .CommandText = "SELECT Chainname, Productid, Productname, Astatus FROM v_AsortmentOverview WHERE BusinessUnit < 'DK05' and (Astatus = 'G' or Astatus = 'V') and Productid =" & Range("Unit1").Value
       
        .Refresh BackgroundQuery:=False
    End With

Alt sammen fungerer ganske udemærket. Det jeg ønsker at koble på er endnu en range i Productid (faktisk 10 ranges mere). Men hvis jeg skriver Productid =" & Range("Unit2").Value vil den ikke godtage det. Hvad gør jeg galt og hvad skal jeg skrive i stedet ?
03. juni 2011 - 15:34 #1
Hvilken fejl får du?
Hvilken værdi har Range("Unit1").Value?
Avatar billede morlin Nybegynder
03. juni 2011 - 15:55 #2
Expected end of statement

and Productid =" & Range("Unit1").Value or Productid =" & Range("Unit2").Value

Sådan har jeg skrevet
Avatar billede yellow Nybegynder
03. juni 2011 - 16:15 #3
Prøv med:
and Productid =" & Range("Unit1").Value & " or Productid =" & Range("Unit2").Value
Avatar billede morlin Nybegynder
03. juni 2011 - 19:13 #4
Det lader til at virke :-) Kan jeg så bare fortsætte i det uendelige på samme måde med Unit3, Unit4 osv. ?

Hvordan får jeg sat () rundt om, så jeg ikke mister de andre kriterier, såsom BusinessUnit < 'DK05' ....
Avatar billede yellow Nybegynder
03. juni 2011 - 20:33 #5
Ikke i "det uendelige" da du på et tidspunkt rammer en max-længde på din sql query, og inden da bør du nok overveje en anden logik til udvælgelsen.

Hvis du vil bygge den op som du har gjort indtil nu kan du sætte parenteser sådan her:
and ( Productid =" & Range("Unit1").Value & " or Productid =" & Range("Unit2").Value & " )"

Men ellers så prøv at se på IN operatoren

and productid IN ("& Range("Unit1").Value &","& Range("Unit2").Value &","& Range("Unit3").Value &","& Range("Unit4").Value &")"
Avatar billede morlin Nybegynder
05. juni 2011 - 19:38 #6
Det virker helt perfekt. Smid et svar så får du point :-) Tak for hjælpen
Avatar billede yellow Nybegynder
28. juni 2011 - 13:06 #7
svar
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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