15. februar 2005 - 18:28Der er
12 kommentarer og 1 løsning
Sætte Afkrydsningsfelt til True ved filtrede poster..
Hej alle sammen.. JEg har i en formular et afkrydsningfelt. Når jeg nu søger i mine poster inde i formularen, så kunne jeg godt tænke mig at få lavet det således at jeg har en knap, som kan sætte afkrydsningsfeltet til 'True' ved de poster jeg har søgt/filtreret frem. Den må ikke sætte et kryds i alle posterne. Jeg har indtil videre lavet følgende:
Private Sub Kredit_Click() If Me.FilterOn = True Then Me.OKKredit.Value = True End If End Sub
Denne mangler nu bare at sætte 'True' ved alle dem jeg har filtreret frem. HVordan gør jeg dette/Hvad mangler der i ovenstående?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Hej igen.. Jeg tror der går et eller andet helt galt. Den sætter ikke kun flueben/= True i de poster jeg har filteret frem, men i samtlige poster der findes. Hvad kan dette skyldes ?
Koden ser nu således ud: Private Sub Faktureret_Click() If Me.FilterOn = True Then
prompt = "Vil du sætte de fundne transporter til 'er faktureret' ?" If MsgBox(prompt, vbYesNo, "Afkrydse faktureret?") = vbYes Then
DoCmd.SetWarnings False DoCmd.RunSQL "Update Læs Set OKFak = True Where " & Me.Filter DoCmd.SetWarnings True Me.Requery
Jeg har nu forsøgt med dit forslag. Der er i alt 160 poster i min db. Når jeg så først søger nogle bestemte poster frem, og vil køre kommandoen på disse, så kommer den op og spørger om jeg vil opdatere alle 160 poster. Hvad går galt ?
Idet jeg har fået sagen ordnet af mugs over e-mail, så vil jeg lige indsætte den samtale vi har haft for komme frem til en løsning:
Nu har jeg bøvlet lidt med din db både iaftes og her til morgen, og kommer til samme resultat som dig: Den opdaterer alle poster. Når jeg skrev tidligere på eksperten, at Thomas' kode fungerer, havde jeg afprøvet den i en db med unikt felt. Jeg tror det har noget at gøre med, at opdateringen ikke kan finde ud af, hvilket felt du filtrerer efter. Jeg har rodet lidt med dine tabeller , og ser at dette felt er ens i begge tabeller:
LæsSagsID
Er de poster du opdaterer, hvor dette felt i formularen er = Tabellen Læs. Så er det ikke noget problem. Prøv at åbne min formular der hedder "test". Jeg har lagt en ny kommendoknap nederst.
Hej igen..
Lige en lille tilføjelse. Jeg har afprøvet om det virker med RmTrNo, men når jeg ændre det til denne, så opdatere den kun den aktuelle post man står i, og ikke dem der er filtreret frem. Det samme sker egentlig hvis jeg benytter mig af LæsSagsID som du havde valgt, fordi når jeg fx søger nogle sager/poster frem på KundeID, så vil der fremkomme flere forskellige LæsSagsID, og så vil den kun opdatere lige netop den post man er på.
Du kna ikke bruge RmTrNo, da det jo er en unik værdi for posten. Hvis jeg søger på LæsSagsID og trykker på min kommandoknap, bliver der kun opdateret de felter med det fundne LæsSagsID. Du kan se alle poster i formularen, men det er jo ligegyldigt.
Hej igen
Jeg skal ikke kun søge på LæsSagsID, men skal faktisk kunne søge på alle felter i hele formularen (Stort set), og når jeg søger efter Kundenr = 101, så kommer der 5 poster frem. Derefter kører jeg din kommandoknap, og så vil den kun opdatere den første af de poster jeg står på, men det er vel fordi at der i blandt de 5 fremfiltrerede poster befinder sig 5 forskellige LæsSagsID.
Det er fuldstændig korrekt, at du kun opdaterer de poster, hvis LæsSagsID matcher formularen.
Når jeg bruger filtreringsfunktionen og opdaterer filtrerede poster i en lille testdb, fungerer det perfekt. Jeg har ikke tid mere lige nu, men vil gerne se på det senere.
Men sådan en tidlig SØN morgen over den sidste kop kaffe, er det lige sagen. Jeg fandt da også årsagen i løbet af 10 min.
Når du opdaterer filtrede poster i din form, skal du arbejde i samme tabel, som de filtrerede poster kommer fra. Ellers ved db ikke, hvilke tabeller i den fremmede tabel, der skal arbejdes med.
Det fortæller jo, at vi ikke kan arbejde i tabeller, og så må vi jo gøre det i en form. Bemærk, at jeg har trukket Afkrydsningsfelt355 ind i formularen. Og jeg arbejder stadig i min testformular.
Koden ser således ud:
Private Sub Kommandoknap354_Click() On Error GoTo Errorhandler If Me.FilterOn = True Then DoCmd.GoToRecord acForm, "test", acFirst, 1 Do Until Me.NewRecord = True Me.Afkrydsningsfelt355 = True DoCmd.GoToRecord acForm, "test", acNext, 1 Loop End If Errorhandler: If Err.Number = 2105 Then MsgBox "Handlingen udført" Exit Sub End If End Sub
Jeg tror ikke, koden vil vinde en førstepræmie for elegance, men hvad pokker. Så vidt jeg kan se fungerer den.
Og så mangler der jo kun et svar fra mugs af, og de VELFORTJENTE point :)
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.