14. februar 2002 - 08:14Der er
27 kommentarer og 1 løsning
Forhindring af redigering i ét formularfelt.
Hejsa.
Man kan forhindre redigeringer i felterne i en formular. Er det muligt, at tillade redigering kun i et enkelt felt, som man vil tilføje noget i senere ? Og hvordan gøres dette ?
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
Det skal være sådan, at man ikke kan redigere i felterne i formularen, men et enkelt af felterne må man godt redigere i. Hvis jeg gør som du skriver er feltet låst og der kan ikke skrivres deri.
Hej Lars. Som jeg skrev, det er hver felt for sig du bestemmer på den måde, dvs. at det felt du vil skrive i, der ændre du det ikke. Du har lavet fejlen ved at ændre hele formularen til låst. VH. Henrik
Når man går ind i formularen udfylder man felterne undtagen ét, som man først skal skrive i senere. Altså skal man kunne skrive i felterne, men ikke kunne redigere i dem bagefter. Dog skal man kunne tilføje i det ene felt man ikke skrev i første gang.
Tag et kopi af formularen. Så har du to. Brug den ene som åbningsformular,, til 1.st gang folk kommer. Den 2 anden som standard formular når folk har været inde og skrive sig ind. VVH. Henrik
Hej Henrik. Formularen åbnes fra flere andre formularer ved hjælp af kommandoknapper. Hvis det er 1.formular, kan man indskrive i alle felter men ikke redigere. Hvordan skal den 2. formular sættes op, for at kunne bruge den næste gang man vil ind og redigere det tomme felt ? Vil man ikke altid komme ind i 1. formular ?
Lav en stump kode på formularens VedAktuel hændelse, der undersøger omn et givent felt er udfyldt (fx et nøglefelt). Er det det, afvikles kode der sætter Locked=True på alle de felter, der ikke må ændres i. Er feltet ikke udfyldt, afvikles koden ikke, og der kan tastes i alle felter.
Noget i denne stil: If isnull(me!felt1) then exit sub else me!felt1.locked = true me!felt2 locked = true osv.
og så en errorhandler der håndterer situationen at felterne allerede er låst, når den prøver at låse.
Men i øvrigt synes jeg at det virker risikabelt at låse felterne, hvis de allerede er udfyldt (i hvert fald hvis ikke du laver en bagdør). Hvad nu hvis de er udfyldt forkert i første omgang? Så kan de jo ikke rettes.
Jeg synes heller ikke selv om idéen, men brugerne vil godt have det sådan. Men da jeg er "eksperten" i det selskab kan jeg jo vælge at sige, at det ikke kan lade sig gøre.
Dit forslag ser dog umiddelbart godt ud. Jeg vil afprøve det og vender tilbage, hvis der opstår problemer.
Jeg kan ikke helt forstå hvorfor du ikke står i listen over navne jeg kan give point til. Måske dukker det frem hvis jeg afviser terry's og henrik13,s svar, som jeg ikke umiddelbart tror jeg kan bruge.
banelars>I think I understand what you wnat now, although it isnt very clear from your original question. In a NEW record you want to be able to enter data in SOME fields and other fields NOT enter data. In an EXISTING record you want to be able to enter the fields which yoi didnt when it was NEW and NOT ALTER the field whicg you could enter when it was new. Is that correct? If it is then you can NOT without a bit of programming!
I en ny formular skrives der i felterne undtaget i et enkelt felt. Senere vil man ind og skrive i det tomme felt, men man må ikke kunne rette i de felter der allerede er skrevet i.
Forstår du hvad jeg mener ?
Og til jkrons, så har jeg ikke afprøvet dit forslag. Grunden til jeg skrev "Det hjalp ikke", er at du ikke står i den liste med navne jeg kan give point til.
An example: There are two fields text and dato. If we have a new record then you CAN NOT enter text but you CAN enter a date. If we have an existing record we CAN enter text but CAN NOT alter the date!
Private Sub Form_Current() If Me.NewRecord Then Me.text.Enabled = False Me.text.Locked = True Me.dato.Enabled = True Me.dato.Locked = Fale Else Me.text.Enabled = True Me.text.Locked = False Me.dato.Enabled = False Me.dato.Locked = True End If End Sub
Helt konkret, så har jeg nogle teksfelter og nogle klokkeslætfelter (time).
Man udfylder tekstfelterne og ét af to klokkeslætfelter. Nemlig klokkeslættet for hvornår den indtastede tekst gælder fra. Senere når det ikke længere gælder, skal man ind og skrive tiden i det andet klokkeslætfelt. Tiden for hvornår det ikke længere gælder. Her må man ikke kunne rette i de andre felter. Kun i det andet klokkeslætfelt.
Jeg får lige min hjælper til at kigge på din kode.
Jeg har ikke glemt dig. Jeg troede jeg havde fundet en løsning, hvor jeg kunne klare mig udenom problemet. Men det kan jeg nok ikke alligevel. Jeg mødes med min hjælper på mandag, hvor vi kigger på dit forslag.
Status på mit problem omkring redigering i enkelte felter:
Jeg har prøvet at lave 2 formularer. 1 hvor der er X antal felter og 1 hvor der er 2 felter.
Felterne hentes fra samme tabel.
I egenskaberne for formular 1 og 2 har jeg valgt "Nej" til at man kan redigere i felterne.
Når jeg åbner formular 1 udfylder jeg felterne. Næste gang jeg åbner formular 1, så kan jeg ikke redigere. Det virker som det skal.
Fra formular 1 trykker jeg på en knap der åbner formular 2. Heri er 2 felter "Dato" og "Klokkeslæt". Hvis formular 2 også har egenskaben "Nej" til redigering, kan jeg ikke indtaste heri. Heller ikke den første gang jeg åbner formularen. I formular 1 kan jeg jo godt skrive første gang jeg åbner formularen. Hvad er forskellen ? Hører egenskaben redigering ikke til den enkelte formular ?
You say that you have properties set to "no" for BOTH forms! "I egenskaberne for formular 1 og 2 har jeg valgt "Nej" til at man kan redigere i felterne." But then you say that you can enter data in form 1. "Når jeg åbner formular 1 udfylder jeg felterne." ???
Normalt når man sætter properties to no, så kan man jo godt skrive data ind, men man kan ikke skrive i formularen efterfølgende (redigere). Sådan fungerer det i formular 1. Det virker fint. I formular 2 though, kan man slet ikke skrive data ind som man kan i formular 1. Det forstår jeg ikke.
Hi Lars> It shard to say what the problem is without seeing the database! You can send it and I will take a look, also explain EXACTLY what it is you are trying to do!
Jeg har modtaget db'en, men har ikke tid til at afprøve det lige nu. Du får pointene og jeg vender tilbage hvis det giver problemer. Tusind tak for hjælpen og god weekend.
Jeg nåede lige en afprøvning og så vidt jeg kan se, så kan man godt rette i de to sidste felter. Så er problemet det samme som før.
Man kan ikke rette i de andre felter. Fint nok. Men man kan godt rette i de to sidste efter at have udfyldt dem. Man må ikke kunne ratte i dem når man har skrevet dato og klokkeslæt.
so if its a NEW record then you can enter ALL info. Once the record exists you can only ENTER date+time and once they have been entered you can NOT alter any of the fields, is that correct?
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.