Hej! Jag brukar lösa det problem du har på ett annorlunda sätt. Här kommer två förslag. Formulär1 antas innehålle de kombinationsrutor du talar om. Formulär2 antas vara det formulär du sedan vill visa. Hej Mats! Du kan ange ett WHERE vilkor för ett formulär. Sök på DoCmd.OpenForm i hjälpen. Har för mig att det finns exemple på det där. Detta är modifierat efter hjälpen där det står Testa med: Tänk så pinsamt det hade varit om det hade varit ett så enkelt fel men det hade jag gärna bjudit på ;) Hur ser frågan till formuläret ut? hej igen!Spara sträng till fråga
Jag har en databas full med elever som tillexempel går olika kurser. Jag har olika formulär - tillexempel ElevInfoFormulär som visar information om eleven. ElevInfoFormulär har ElevInfoFråga som Datakälla.
Sen har jag ett till formulär där jag vill skapa en fråga av förutsättningar för de formulär jag vill se, lite tydligare: Jag har fyra olika kombinationsrutor där användaren kan välja vilka kriterier som ska vara uppfyllda för de elever som han eller hon vill se i ElevInfoFormuläret.
Det är efter jag har satt ihop strängen i VBA och sen vill spara den som frågan som "ElevInfoFråga" som jag inte förstår hur jag ska göra.
Kan det vara så att jag tänker fel, finns det något annat och enklare sätt att göra detta?
//Lisa
--- Det är ju tur att jag finns, vem skulle annars våga ställa korkade frågor ---Sv: Spara sträng till fråga
Förslag ett: Öppna formulär2 via en knapp i Formulär1 men där du ger ett "where-villkor" enligt den sträng du antagligen fått till. (Läs på "OpenForm Method" i hjälpen). Formulär2 har som indata en fråga utan villkor
Förslag två: Öppna Formulär2 när Formulär1 är öppet och i den underliggande frågan för Formulär2 har du villkor som refererar till kontrollerna i Formulär1. Dvs i villkorsfältet för det fält du vill selektera på skriver du Forms!Formulär1.Kombinationsruta1. Visar du SQL brukar det se ut så här:
SELECT Projekt.* FROM Projekt
WHERE (((Projekt.Projektnamn)=[Forms]![Selektera].[Urval]));
(Nu tog jag ett exempel jag hade färdigt som alltså har andra namn....)Sv:Spara sträng till fråga
Tack för hjälpen, det verkar ju bli mycket enklare än att bråka med en fråga. Däremot lyckas jag inte få formuläret att acceptera wheresatsen. Ser du något som är fel?
DoCmd.OpenForm "aELEVINFO", acNormal, , "Elever.nuläge = CSN", acFormAdd, acWindowNormal
Det fungerar inte även om jag hårdkodar valet som ska in i den kombinationsboxen. som här ovan. Formuläret öppnar sig med 0 poster och talar stolt om att det är filtrerat
//LisaSv: Spara sträng till fråga
Sv:Spara sträng till fråga
DoCmd.OpenForm "formulär", acNormal, , WHERE villkor som sträng utan WHERE, acFormAdd, acWindowNormal och jag har skrivit
DoCmd.OpenForm "aELEVINFO", acNormal, , "Elever.nuläge = CSN", acFormAdd, acWindowNormal
Det fungerar inte även om jag hårdkodar vad som ska vara med som här ovan. Formuläret öppnar sig bara med 0 poster och talar stolt om att det är filtrerat. Jag har kollat och det finns poster i den underliggande tabellen som har värdet "CSN".
I vilken ände ska jag börja?
eller jag kanske ska gå tillbaka till min ursprungliga idé att spara ner frågan fast detta verkar enklare. Går det att skriva till fil i Access och isåfall vilken fil är det jag ska skriva till - databas!frågor!frågenamn? finns det något sådant och är det isåfall en fil?
Hoppas det inte blev för rörigt, hoppas någon har gjort detta tidigare och fått det att fungera på något sätt.
//LisaSv: Spara sträng till fråga
DoCmd.OpenForm "aELEVINFO", , , "Elever.nuläge = 'CSN'"
Sv:Spara sträng till fråga
Om jag kommer ihåg fnuttarna runt sökordet får jag ut en post i formuläret men den posten är helt tom. Tittar jag då på egenskaper för formuläret så står det att det är filtrerat med Elever.nuläge ='CSN'
Jag har ställt in egenskapen Filter är tillåtet och även om jag skriver samma sak under filter i egenskapsrutan i formuläret så öppnas formuläret med bara en tom post.
Om jag ställer samma fråga som en vanlig SQL fråga så får jag ut precis de poster jag vill vilket är fyra stycken.
Suck :( det borde fungera men det gör det inte, det måste vara fel någon annan stans.
Hoppas om mer hjälp håret börjar bli tunnt nu =)
//LisaSv: Spara sträng till fråga
Om du skapar ett nytt tomt formulär och testar samma vilkor?
Lång sök men värt ett försk:
JAg har för mig att parametern acFormAdd gömmer samtliga poster i formuläret. Den parametern är till för om man bara skall lägg till data i en tabell. Sv:Spara sträng till fråga
Det var acFormAdd som var boven i dramat.
Frågan är ju då varför villkoret inte fungerade om jag skrev in det direkt som ett filter i egenskaper men man kan ju inte få allt :) dessutom är det så att om man ska sortera så är egenskapsrutan inte att lita på utan man behöver använda frågan har jag lärt mej på ett visst forum.
Tjohoo!
Nu är jag lättad och kanske slipper gå upp fyra för att bråka med denna databasen,
det kanske räcker med klockan sex imorgonbitti =)
Tusen tack för all hjälp!
//Lisa