Avatar billede aero Nybegynder
18. december 2005 - 16:04 Der er 16 kommentarer og
1 løsning

strSQL select linje virker ikke

Hej jeg har denne lille kode som skal kunne vise alle dem hvor activ er = Yes og hvor navn ikke indholder ordet Pige/Dame/Kvinde
der skal siges at nogle af navnene kan være sammensat som
Damejunior eller Serie Kvinder hvor r også indgår...

Min kode vil heller ikke kun vise dem hvor actic er = YES den viser alle...
http://www.billundfodbold.dk/bif/team%26results/default.asp?page=Ungdom

min kode er:
strSQL = "SELECT [Name], [Link], [Pulje], [Activ] FROM List"
strSQL = strSQL & " WHERE [Activ] ='YES'"
strSQL = strSQL & " AND [Name] NOT LIKE '%Pige%' OR '%Dame%' OR '%Kvind%'"
strSQL = strSQL & " ORDER BY [ID] ASC"
Set objRS = objConn.Execute(strSQL)
Avatar billede softspot Forsker
18. december 2005 - 16:10 #1
Jeg er faktisk ikke helt sikker, men mon ikke du er nød til at gentage Name-kolonnen for hver betingelse:

strSQL = "SELECT [Name], [Link], [Pulje], [Activ] FROM List"
strSQL = strSQL & " WHERE [Activ] ='YES'"
strSQL = strSQL & " AND [Name] NOT LIKE '%Pige%'"
strSQL = strSQL & " OR [Name] NOT LIKE '%Dame%'"
strSQL = strSQL & " OR [Name] NOT LIKE '%Kvind%'"
strSQL = strSQL & " ORDER BY [ID] ASC"
Set objRS = objConn.Execute(strSQL)
Avatar billede aero Nybegynder
18. december 2005 - 16:29 #2
Nej... beklager..

må man gerne bruge where 2 gange !?

altså:

strSQL = "SELECT [Name], [Link], [Pulje], [Activ] FROM List"
strSQL = strSQL & " WHERE [Activ] ='YES'"
strSQL = strSQL & " AND WHERE [Name] NOT LIKE '%Pige%' OR '%Dame%' OR '%Kvind%'"
strSQL = strSQL & " ORDER BY [ID] ASC"
Set objRS = objConn.Execute(strSQL)
Avatar billede softspot Forsker
18. december 2005 - 16:32 #3
Nej, det må man ikke. Prøv dette i stedet:

strSQL = "SELECT [Name], [Link], [Pulje], [Activ] FROM List"
strSQL = strSQL & " WHERE [Activ] ='YES'"
strSQL = strSQL & " AND ([Name] NOT LIKE '%Pige%'"
strSQL = strSQL & " OR [Name] NOT LIKE '%Dame%'"
strSQL = strSQL & " OR [Name] NOT LIKE '%Kvind%')"
strSQL = strSQL & " ORDER BY [ID] ASC"
Set objRS = objConn.Execute(strSQL)
Avatar billede softspot Forsker
18. december 2005 - 16:33 #4
...og der er altså komme paranteser omkring dine 3 Name-betingelser da de vel skal grupperes som en sammenhørende betingelse, sammen med Activ.
Avatar billede aero Nybegynder
18. december 2005 - 16:34 #5
men er det ikke den rigtige måde at gøre det på hvis jeg vil have at de navne hvor pige/dame/kvinde ikke indgør skal vises for en sætning kan jo se ud som skrevet i 1.
Avatar billede aero Nybegynder
18. december 2005 - 16:37 #6
nej heller ikke men nu virker den med det der YES før viste den 48 nu viser den kun 46.
Avatar billede softspot Forsker
18. december 2005 - 16:39 #7
OK, hvis jeg nu tænkte mig lidt om, så skulle det nok også være en AND i stedet for OR mellem de tre betingelser, da du jo vil udelukke alle tre tilfælde. Så derfor vil jeg mene at denne burde fjerne alle navne hvor de tre mønstre indgår:

strSQL = "SELECT [Name], [Link], [Pulje], [Activ] FROM List"
strSQL = strSQL & " WHERE [Activ] ='YES'"
strSQL = strSQL & " AND [Name] NOT LIKE '%Pige%'"
strSQL = strSQL & " AND [Name] NOT LIKE '%Dame%'"
strSQL = strSQL & " AND [Name] NOT LIKE '%Kvind%'"
strSQL = strSQL & " ORDER BY [ID] ASC"
Set objRS = objConn.Execute(strSQL)
Avatar billede aero Nybegynder
18. december 2005 - 16:43 #8
he he nu virker det mange 1000 TAK vil du lægge et svar
Avatar billede softspot Forsker
18. december 2005 - 16:44 #9
Velbekomme :)
Avatar billede aero Nybegynder
18. december 2005 - 16:50 #10
lige en hurtig ting hvis du vil kigge på linket som nu KUN viser ungdoms hold... kan jeg lave en nem løsning ang. order by.

her tænker jeg ikke efter id eller alfabet men en liste som jeg bestemmer.
evt hvis jeg vil have alle recorder med Micro først og så Mini og så Lille og så Drenge Hvor D skal være stort den må ikke tage dem med lille d. og så Junior osv osv hvis du forstår..
Avatar billede aero Nybegynder
18. december 2005 - 16:51 #11
vil det være som at tage
strSQL = strSQL & " AND [Name] NOT LIKE '%Pige%'"
strSQL = strSQL & " AND [Name] NOT LIKE '%Dame%'"
strSQL = strSQL & " AND [Name] NOT LIKE '%Kvind%'"

og sætte det med i ORDER BY bare uden NOT eller findes der en nemmere løsning !?
Avatar billede softspot Forsker
18. december 2005 - 17:01 #12
Hvis du selv suverænt vil bestemme orden i dit udtræk, så er du nok nød til at lave en kolonne mere i din tabel som indeholder sorterings- eller prioriteringsorden i udtræk. Den kolonne kan du så ordne efter. Eksempel:

SELECT * FROM tabel ORDER BY sorteringsorden ASC

Indholdet af feltet sorteringsorden skal du så vedligeholde et eller andet sted. Alternativt kan du lave en gruppe som hver række tilhører, f.eks. mikro, mini, drenge, yndlinge osv. som du så sorterer efter når du trækker resultatet ud. Dette vil så kræve at du JOIN'er gruppetabellen ind i List-tabellen, når du udtrækker (for at kunne få adgang til sorteringsordenen.

Det lyder dog lidt som om du måske kunne gå efter en anden information, nemlig en alder - har du sådan en i din tabel?
Avatar billede aero Nybegynder
18. december 2005 - 17:08 #13
hmm det skulle jo helt være noget der skal kunne køre for sig selv hvor man ikke skal rette for meget...

Men selvf. er man en bestemt alder når man er miniput og lilleput osv osv. så jeg kunne selvf. lave en liste. ved bare ikke lige hvordan ligenu men ville være nemmere hvis man kunne lave den som min where code he he.
Avatar billede aero Nybegynder
18. december 2005 - 17:08 #14
men tak alligevel ^^
Avatar billede aero Nybegynder
18. december 2005 - 17:17 #15
Fik en idée ved ikke om jeg skal oprette et nyt spm eller om du vil kigge på det.

jeg har en side som gemmer de opløsninger som denne henter frem...

jeg ved at jeg har team det indholder det navn som holdet har den kommer jeg gennem en replace før at jeg gemmer det pga ' fejl..

Team = Replace(Team, "'", "\")

vil jeg kunne tage Team og lave en særning at hvis Team = (indholder ordet mini) then strYear = 8 elseif team indholder order junior then strYear = 14 ordet kan jo hedde JuniorA hvor det er sammensat så den skal være ligeglad med om der er noget før eller efter Junior DOG skal det stå som skrevet altså Junior og ikke junior med lille j.

for så kan jeg jo bare sætte strYear ind i min db derefter.
men hvordan kan den if sætning se ud !?
Avatar billede aero Nybegynder
18. december 2005 - 17:27 #16
kun et gæt

IF Team = inStr(team, "mini") Then
  strYear= "9"
ElseIF Team = inStr(Team, "lille") Then
  StrTear = "11"
End IF
Avatar billede softspot Forsker
18. december 2005 - 17:43 #17
Ja, det var da en mulighed...
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
Kurser inden for grundlæggende programmering

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