Har lavet en simpel database og forsøger nu at trække nogle oplysninger. Har en tabel hvor skal bruge oplysninger fra 2 kolonner, den ene en opslagskolone. Opslagskolonen kan håndtere flere oplysninger,(jeg kan fluebene flere værdier). Mit problem er nu at jeg skal bruge alle dem der har 2 værdier(flueben), uden at kende den indtastede værdi. Dette kan jeg ikke få den til. Håber det giver mening, kan forståes, og at nogen kan hjælpe.
Men når du har 2 flueben i et opslag må det vel være en liste. Disse kriterier må jo så være enten det ene eller det andet som kan oversættes til det ene Or det andet. Men forespørslen skal jo kende værdierne!
Et eksempel Tabel Testopslag: Jeg har et felt "Opslags_ID" og 10 felter, til at flue af, de hedder fra 10 til 100, så der kan være op til 10 flueben.
et flueben har værdien -1, så 2 er -2
SELECT TestOpslag.Opslags_ID, TestOpslag.[10], TestOpslag.[20], TestOpslag.[30], TestOpslag.[40], TestOpslag.[50], TestOpslag.[60], TestOpslag.[70], TestOpslag.[80], TestOpslag.[90], TestOpslag.[100], [10]+[20]+[30]+[40]+[50]+[60]+[70]+[80]+[90]+[100] AS Antal FROM TestOpslag WHERE ((([10]+[20]+[30]+[40]+[50]+[60]+[70]+[80]+[90]+[100])=-2));
Kabbak: Det drejer sig ikke om faste tal værdier men navne. opslagskolonen trækker på en tabel som består af navne, lige nu 24 navne men med tiden flere. Jeg skal have muligheden for at trække dem ud hvor der er fluet 2 navne af, uden at kende navnene. håber det er muligt.
Som beskrevet ovenfor, er der tale om en tabel hvori der indgår en opslagskolone. Opslagskolonen består pt af 24 navne, som kan vinges af/vælges. Nogle steder er der behov for at vinge 2 navne af, feltet kommer til at indeholde 2 navne. Det jeg ønsker er at lave en forspørgsel som kan trække de felter hvor der er 2 navne ud, kan blot ikke finde ud af at spørge på den rigtige måde. håber det blev mere forståeligt?
Når man laver en opslagskolone, kan man sætte flueben i nogle små firkanter hvis man tillader at der kan være flere værdier, i dette tilfælde navne i feltet. sætte flueben = vinges af. gav det mening
Terry: Er det med vilje at du blander engelsk og dansk?? En opslagskolone får som du skriver sine "værdier", i mit tilfælde navne fra en liste i en anden tabel. Jeg kan godt vælge flere værdier, man kunne ikke i access 2003, men kan i access 2007. Mit spørgsmål som nævnt ovenfor om man uden at kende navnene kan finde alle de felter hvor 2 eller flere navne er valgt og udlade alle de felter hvor der kun er 1 navn.
Nu blev det rimeligt teknisk. Et gæt, så er det SQL teksten du har skrevet op? Hvordan får jeg den kørt ind i basen?
Synes godt om
Slettet bruger
06. oktober 2009 - 23:42#19
ja - sidste linie (select ...)er den forespørsel du efterlyser, dog er ting i hak parenteser begreber der skal erstattes med de feltnavne mm. som kun du kender.
Jeg er på helt ny grund her. Når jeg forsøger at indsætte sætningen får jeg en fejl meddelelse: Der er fundet tegn efter SQL-sætningen. Whatever= ?? opslagsfelt=kolonensnavn? listelementseperator=?? Håber ikke jeg er alt for blank!!
Synes godt om
Slettet bruger
07. oktober 2009 - 00:53#21
Ja du er på rette vej, det skal netop give fejlmeddelelser hvis ikke du erstatter begreberne i hak parenteser med det som det virkeligt skal være med dine feltnavne og en listeelemntseperator som opslagskolonnen anvender.
I i en select sql skal man skrive feltnavne for det som skal vises - jeg gad ikke falde i staver over navne, men hvis man ikke kender syntaksen for en sql select er det måske ikke lige til at regne ud - du skal ikke skrive noget af det der er omgivet af <>, men det det betyder, og ikke <> tegnene - de er ment lidt ligesom citation for at anskueliggøre at det er en abstraktion og ikke noget konkret, altså noget som skal erstattes af det som det konkret er i dit eksempel. Hvis resultatet af forespørslen skal være felterne felt1,felt2 betyder <whatever> felt1,felt2
Din tabel hedder nok ikke tabel
<opslagsfelt> skal erstattes med det navn du har for 'kolonnen' med et eller flere navne - iøvrigt er det lidt regnearkslingo at tale om kolonner - i datasammen hænge bruger man navnet felter.
<listelemtseperator> er det tegn som separerer list elementerne, og list elementer er navnene der kan være flere af - jeg ville forvente at det var ";" men det aner det jo ikke (og dermed får vi også konceptet på banen - jeg vil ikke vide det!)
Nu får jeg en fejlmeddelelse som hedder: Der er en ikke-defineret funktion "cntNamesInList" i udtrykket.
Synes godt om
Slettet bruger
07. oktober 2009 - 17:50#23
i svar #19 står hvad der sørger for at funktionen defineret. I øvrigt har den en skønhedfejl - den retunerer ikke 0, hvis 1 argument er null eller den tomme streng - selvom det ikke betyder noget i dit eksempel så bør den se sådan ud:
Function cntNamesInList%(txt, Optional NSep = ";") If Len(txt) > 0 Then cntNamesInList = 1 + UBound(Split(txt, NSep)): End If End Function
Synes godt om
Slettet bruger
07. oktober 2009 - 17:55#24
... og en 'if' med en enkelt statement skrives blot på samme linie, så :
Function cntNamesInList%(txt, Optional NSep = ";") If Len(txt) > 0 Then cntNamesInList = 1 + UBound(Split(txt, NSep) End Function
Ny fejlmeddelse: Der er en syntaksfejl, fordi der mangler en operator!
Synes godt om
Slettet bruger
08. oktober 2009 - 22:40#26
Min fysiklærer i skolen kommentere sine mislykkede forsøg sådan: 'det er dem eleverne huskede'. Det er bevist at jeg undlod at rette en fejl - Det er så banalt at jeg synes rettelsen ville være mistænkeliggørelse af læsere af denne dialog for at være ubehjælpsomme - jeg synes nemlig det er princippet der tæller - princippet er her et hint til et par vba statements der sammen tæller forekomst af bestemt tegn i en streng.
Tror nok du lige kaldte mig ubehjælpsom? anyway - tusind tak for forsøget på at hjælpe en nystartet Access/SQL bruger. smid et svar, du fortjener point for forsøget.
Synes godt om
Slettet bruger
14. oktober 2009 - 20:18#28
Jeg bruger spørgsmål til at eksponere viden og går ikke snævert efter af hjælpe spørgsmål stillere. Forstår udmærket at der ofte jagtes efter noget der spiller, uden at have tid til at forstå - men det er så spørgerens problem. Ofte er andre så behjæpsomme - det galdt bare ikke denne gang. Videre held og lykke et herligt 4. generations RAD tool.
er ligeglad med point legen!
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.