11. juni 2004 - 14:47Der er
6 kommentarer og 1 løsning
Do Until .EOF
Emnet er behandlet mange gange. Men jeg kan ikke sætte svarene ind i min problemstilling!
Hvordan laver jeg en Do Until .EOF sådan, at jeg i en SQL streng får listet et givent felt (eks fornavn) fra en tabel?. Min forestilling.
With T_L_Navne Do Until .EOF strSQL = strSQL & ???? .MoveNext Loop End With
Meget gerne også med et kriterie sådan, at det kun er de personers fornavn der vises, for hvem det gælder at de tilhører eks gruppe 1 (Felter i T_L_Navne: NavnIdnr, Fornavn, Efternavn, GruppeIDnr)
foerst og fremmest skal du jo have oprettet en forespoergsel som henter disse data ud af databasen. Derefter kan du gennemgaa resultaterne. Umiddelbart ser det ud som om du er igang med noget ASP frmefor Visual Basic, men en generel loesningsmodel vil vaere noget i retning af
strSQL = "SELECT * FROM T_L_Navne" - her eksekverer du saa foerspoergslen, i ren access opretter du bare denne og kan behandle den som et recordset bagefter, i ASP skal du eksekverer din SQL gennem din forbindelse til databasen
set rs = Conn.execute(strSQL)
'Saa nu har du altsaa elementet rs som indeholder de bestemte data. With rs while not .EOF response.Write ("Fornanv") rs.Movenext wend end with
Dette giver dig en liste over fornavne i hele tabellen Hvis du vil introducere kriterier skal det goeres i strSQL foer den eksekveres:
strSQL = "SELECT * FROM T_L_Navne WHERE GruppeIDnr=1"
Haaber det hjaelper lidt. Maaske kan du give lidt mere info om hvorvidt det er ASP du arbejder med (hvormed det nok er bedst at oprette et spoergsmaal i ASP kkategorien)
Uddybende forklaring. I min søgeformular kan jeg enten søge på FORNAVN eller GRUPPE. Når der søges på FORNAVN er min SQL sætning: "SELECT ..... WHERE ...="& Me.Fornavn I de tilfælde hvor der skla søges på Gruppe, skal min SQL sætning jo udvides med: Fornavn1 OR Fornavn2 OR ...
ok - jeg forstaar ikke hvorfor du vil udvide med flere fornavne naar du soeger paa gruppe. Er det ikke bare et spoergsmaal om at inkludere gruppeID i den eksisterende SQL saetning: if me.fornavn <>"" And me.Gruppe <>0 then StrSQL = "SELECT .... FROM T_L_Navn WHERE Fornavn = " & me.fornavn & " AND GruppeIDnr = " & me.Gruppe elseif me.fornavn <>"" and me.Gruppe = 0 then StrSQL = "SELECT .... FROM T_L_Navn WHERE Fornavn = " & me.fornavn elseif me.fornavn ="" and me.Gruppe <>0 then StrSQL = "SELECT .... FROM T_L_Navn WHERE GruppeIDnr = " & me.Gruppe else msgbox "ingen kriterier",vbokonly end if
Forudsat du kalder fra en form med felterne Fornavn og GruppeID:
strSQL="" With T_L_Navne Do Until .EOF if .fields("Fornavn")="'" & me.fornavn & "'" or _ .fields("GruppeIDnr")=me.gruppeID then strSQL = strSQL & .fields("Fornavn") & ", " end if .MoveNext Loop End With strSQL=left(strSQL,len(strSQL)-2) ' Fjern sidste komma
Er ikke ude på at kværulere; men hvordan er "... sådan, at jeg i en SQL streng får listet et givent felt" besvaret i det accepterede svar, som i øvrigt beskriver en ASP løsning. Bare nysgerrig ;o)
Hm. Jeg læste "... sådan, at jeg i en SQL streng får listet et givent felt" som at han ønskede en liste i stil med "Ole, Jens, Peter". Dette ville også forklare løkken. Men du har formodentlig ret.
Synes godt om
Ny brugerNybegynder
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.