24. april 2007 - 15:04Der er
7 kommentarer og 2 løsninger
Opret post og åbn formular i samme post
Jeg har en formular (Frm Modtagne Charteks) der er baseret på en forespørgsel (QueryModtagneCharteks). I forespørgselens kriteriefelt er angivet [Indtast cvr] og posten med det angivne cvr.nr. åbnes herefter.
Når jeg opretter en ny post, har jeg en kommandoknap i formularen med følgede kode, der åbner en inputboks:
Private Sub Kommandoknap120_Click() Dim Message, Title, Default, MyValue
Message = "Inddatering af cvr" Title = "Opret selskab" Default = "Skriv cvr her" MyValue = InputBox(Message, Title, Default)
Dette virker ok, idet der oprettes en post i tabellen TblModtagneCharteks. Men den sidste del af koden bevirker, at forespørgslen køres igen, og det har jo den konsekvens, at jeg igen bliver spurgt om at angive et cvr.nr. Det er jo for så vidt i orden MEN: Er der nogen mulighed for at åbne formularen direkte og gå til den nye post, uden at skulle skrive det samme cvr.nr. endnu engang. Og lige til sidst: Ser den sidste del af koden ok ud? - jeg har altid haft det lidt svært med netop den syntaks.
Why do you have a criteria in the query when you filter the form when you open it? Remove the criteria in the query and your code should work as it is. The INSERT will insert th evalue of MyValue into th etable and the form shoul dopen (filtered) using MyValue as the cvr
Tak for svarene til jer begge - jeg vender tilbage i morgen fra arbejde, hvor det ligger på min pc. Til Terry - det er fordi jeg altid anvender kriteriefeltet i forespørgslen til at finde de korrekte data - men det har givet mig problemer før, hvis jeg ønsker at blive i den samme post i formularen. Til mugs - kan jeg så ikke bare anvende den samme kode som jeg har brugt til at genforespørge, og så anvende sætte den ind som hændelsen "Ved åbning" af formularen. Og så selvfølgelig rette INSERT til WHERE
Jeg er ikke sikker på, at jeg forstår din sidste kommentar. Hvorfor vil du oprette en post i tabellen med en inputbox? Du kan jo blot gå til formularens nye post og indtaste cvr. Det bliver jo lagret når du lukker formularen eller går til en anden post.
Hej igen Mugs !!! Det skal måske med, at der næsten altid arbejdes i oprettede poster, dvs. at der ikke er tale om masseoprettelse af sager (det sker ved en tilføjelsesforespørgsel). Derfor er altid kun en post åben ad gangen (den der er angivet i [Indtast cvr]), dvs. at der kan ikke bladres mellem sider i enkeltformularen. Og derfor er feltet cvr sat til låst, således at et korrekt cvr ikke ved en fejl overskrives. Var det ikke det, kan jeg godt se, at jeg bare kunne oprette en ny post. Da mine kolleger ikke er fuldbefarne i Access, fungerer princippet med, at der altid navigeres til den ønsekde sag med kommandoknapper, der åbner dialogbokse eller inputbokse, rigtigt godt. Undtagen på det (trods alt uvæsentlige) punkt, hvor der oprettes en ny post - for at få denne post åben for indtastning, køres forespørgslen igen - og så spørges der jo på cvr, dvs. at det samme cvr. skal indtastes i 2 bokse lige efter hinanden. Så der er i praksis kun tale om en ren kosmetisk forbedring. Og så en spøjs ting - jeg har sat formularens "tillad tilføjelser" til nej. Så er der nemlig ikke mulighed for at gå til en ny post. Men det har betydet, at den meddelelsesboks der eventuelt skal angive, at cvr er tomt, dvs. at nummeret ikke findes i tabellen, ikke kommer frem. Men når "Tillad tilføjelser" rettes til ja, virker meddelelsesboksen korrekt - har I/du nogen forklaring på det? ER det i orden, hvis jeg fordeler points med 20 til Terry og 80 til Mugs. M.v.h. bbkdk
For ikke at overskrive et eksisterende cvr, kan du sætte feltets egenskab Locked til true, derved kan data ikke ændres. For at kunne indtaste en ny post, kan du sætte egenskaben locked til false således:
If Me.newrecord then me!cvr.locked = false end if
den måler så, om der er tale om en ny post, og er det opfyldt låses feltet op for indtastning. Du kan også benytte egenskaben Activated (eller begge) som gør, at markøren ikke kan "lande" i feltet.
Din sidste kommentar vedr. "tillad tilføjelser" skal lige vendes en gang. point helt OK med mig.
Hej Mugs !! Hurraaaa ...det virker - specielt efter at jeg sat hændelsen Ved Udgang fra feltet CVR til Locked = True, således at feltet låses igen, efter at der er indtastet et nyt cvr. Og hjælp - hvordan får jeg fordelt points - når jeg trykker på linket til selv at fordele, bliver jeg logget ud. M.v.h. bbkdk
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.