Avatar billede bbkdk Seniormester
03. maj 2016 - 12:08 Der er 10 kommentarer og
1 løsning

Luk uden at gemme

Jeg har en database, hvor nye poster oprettes fra en formular, der kun anvendes til at oprette nye poster fra (egenskaben er sat til "Dataindtastning".

Hvis jeg er gået ind i denne formular og har indtastet i et eller flere felter, og så gerne vil lukke formularen, uden at gemme indtastningerne (og dermed posten)- hvordan gør jeg det?
Avatar billede petersen7913 Forsker
03. maj 2016 - 12:24 #1
Umiddelbart kan du ikke. I Access bliver data gemt automatisk i modsætning til f.eks. Oracle, hvor man committer/gemmer.

Så det må blive noget med at ha styr på hvilke data, der er tastet ind, og så lægge noget kode når man lukker, som sletter dataene igen.

Men hvorfor har du brug for at taste data ind uden at de skal gemmes?
Avatar billede bbkdk Seniormester
03. maj 2016 - 13:07 #2
Umiddelbart er jeg enig med dig i, at det er selvmodsigende at oprette en post, der så ikke skal gemmes.
Men der er trods alt mange brugere, der er lidt bange for det forhold, at data gemmes, uden at der skal tages stilling.

Jeg ser, om der kommer andre forslag.
Avatar billede fdata Forsker
03. maj 2016 - 13:32 #3
Det kan du faktisk godt. Så længe postmarkøren viser en blyant (og ikke en trekant), er posten ikke gemt.

Jeg går ud fra at du så vil have en "Annuller"- og en "OK"-knap.

Hvis du er frisk på lidt VBA programmering, kan du i din "Annuller" knaps VedKlik/OnClick hændelse lægge:

Me.Undo
Docmd.Close
Avatar billede terry Ekspert
03. maj 2016 - 13:42 #4
you could also just have a close button on the form and test if data has not been saved (Me.dirty) then ask user if they wan to save or not

this also requires that you disable other methods of closing the form. And another problem is, if the user chooses to close Access ...
Avatar billede bvirk Guru
03. maj 2016 - 13:46 #5
tast esc
Avatar billede terry Ekspert
03. maj 2016 - 15:27 #6
før eller efter close ? :-)
Avatar billede terry Ekspert
03. maj 2016 - 15:29 #7
if the user decides to undo changes then esc is OK, but if the user first chooses to close form, or access for that matter, then esc wont help them
Avatar billede petersen7913 Forsker
03. maj 2016 - 15:33 #8
> Men der er trods alt mange brugere, der er lidt bange for det forhold, at data gemmes, uden at der skal tages stilling.

Det er måske det her du først skal tage fat på? Usikre/nervøse/negative brugere kan og bør ikke håndteres med et teknisk fix. (Har prøvet - det går galt HVER gang .... men forklar lige det til en eller anden chef ;)

Altså, hvad er det de mere konkret 'er bange for'? Der kan være mange andre løsninger end 'bare' at skulle gemme aktivt.
Avatar billede bbkdk Seniormester
03. maj 2016 - 15:33 #9
Alle 3 forslag virker fint, men jeg har valgt at bruge løsningen fra fdata.
Som anført er der tale om uøvede brugere, og formularen bruges kun til at oprette poster fra.
Så bliver brugeren usikker på, hvordan han skal agere, kan formularen altid lukkes med annuller-knappen, således at der ikke oprettes en post, som så senere skal slettes.
Der er også en "Gem og luk" knap, således at det ikke kan misforstås.
java script: void(0);
Avatar billede terry Ekspert
03. maj 2016 - 15:41 #10
You could also ask user for confirmation in forms before update event.


If Me.Dirty Then
    If MsgBox("Save?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then
      Me.Undo
    End If
   
End If
Avatar billede terry Ekspert
03. maj 2016 - 15:44 #11
"Så bliver brugeren usikker på, hvordan han skal agere, kan formularen altid lukkes med annuller-knappen ..."

Or close of form or access ....!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester