Avatar billede webhelpers Praktikant
07. december 2001 - 14:00 Der er 10 kommentarer og
1 løsning

rette / ikke-rette

Hejsa
Jeg har en form (kunder), som åbner på baggrund af en søgning. Som default kan der ikke redigeres i kundedata, før brugeren har tastet F2, og det virker. Men jeg kunne godt tænke mig, at hvis man trykkede F2 igen, så kunne man ikke redigere. Altså F2(allowedit =true) og hvis man igen trykker F2(allowedit=false).
Jeg har følgende kode, som ikke virker, men som viser princippet:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo Err_Form_KeyDown

Dim val As Integer

If KeyCode = vbKeyF2 Then
       
    val = Forms!kunder.AllowEdits
   
    If val = 0 Then
        Forms!kunder.AllowEdits = True
       
    Else
        Forms!kunder.AllowEdits = False
   
    End If
       
End If

Håber der er nogle der kan hjælpe. Jeg tror jeg er ret tæt på løsningen.....
Avatar billede terry Ekspert
07. december 2001 - 14:18 #1
Hi numsi!
What you are trying to do is Toggle the value of .Allowedits ikke?

If KeyCode = vbKeyF2 Then Forms!kunder.AllowEdits = Forms!kunder.AllowEdits XOR True

       
   
Avatar billede terry Ekspert
07. december 2001 - 14:18 #2
that was an answer
Avatar billede webhelpers Praktikant
07. december 2001 - 14:39 #3
hej terry,
korrekt. Men det skal være sådan, at når man så trykker på F2 én gang til så skal allowedits være false...

Altså, første gang man trykker F2 skal allowedits være true, men anden gang man trykker F2 skal allowedits være false.

Det hele handler om at toggle value of allowedits til true eller false med F2
Avatar billede terry Ekspert
07. december 2001 - 14:44 #4
If allowedits is set to True when the form opens then it will get set to false the first time you press F2 and the next True and the next False and ...... so on!

have you tried it?
Avatar billede webhelpers Praktikant
07. december 2001 - 14:54 #5
Ja, det er lige præcis det den skal kunne håndtere.

Men dit eksempel virker ikke, det virker kun den ene vej: trykker man på F2 kan man redigere, men trykker man på F2 igen, så sker der desværre ingenting.
Avatar billede terry Ekspert
08. december 2001 - 09:26 #6
hi numsi > I have an idea what the problem might be!Will have a play around and get back, hopefully some time over the weekend.
Avatar billede webhelpers Praktikant
08. december 2001 - 12:00 #7
thanks terry!
Avatar billede terry Ekspert
08. december 2001 - 13:58 #8
Numsi>
The code does work! But lets make sure that what it is you are expecting to happen.

This is taken from Access help.
You can use the AllowEdits property to specify whether a user can edit saved records when using a form.

In other words, existing records! You CAN add new and also DELETE existing.

Add this line just after the the line which changes True/False.
Debug.Print \"Value = \" & Forms!kunder.AllowEdits

and then Press Ctrl+G to show the debug windows.
You can see the value of AllowEdits each time you press F2 and if you dont, then there is something else wrong.

If yopu want to stop adding new records or deleting existing then use the following
code:

If KeyCode = vbKeyF2 Then
  Forms!kunder.AllowEdits = Forms!kunder.AllowEdits XOR True
  Forms!kunder.AllowDeletions = Forms!kunder.AllowDeletions XOR True
  Forms!kunder.AllowAdditions = Forms!kunder.AllowAdditions XOR True

end if

If Forms!kunder is the form where yoiu are pressing F2 then you can use

Me instead of Forms!kunder, example:

Me.AllowDeletions = Me.AllowDeletions XOR True


       
   



Avatar billede webhelpers Praktikant
09. december 2001 - 11:51 #9
Hi, terry
Jeg kan stadig ikke få det til at virke...Men når jeg debugger kan jeg se værdierne skifter korrekt mellem true og false!

Som default har jeg sat værdierne til false i egenskaberne for \'kunder\'. Når jeg åbner formularen, så kan jeg ikke redigere osv. Trykker jeg F2 kan jeg godt. Men trykker jeg F2 igen, så kan jeg stadig skrive i felterne! Den gemmer også ændringerne. Det mærkelige er, at værdierne ændrer sig korrekt. Måske er der noget andet galt.
Kan man ikke prøve at ændre værdien for postlåse? Altså først sætte den til at låse alle poster som default. Trykker man F2, så sættes værdien til ingen låse. Ville det måske være bedre?
Avatar billede terry Ekspert
09. december 2001 - 12:26 #10
hi numsi> Its not easy to see what the problem can be, so I will take a look if you send the dB to me.
dkTeBrSa@europe.lego.com

I hope I can get time today :o)

mvh
Terry
Avatar billede terry Ekspert
10. december 2001 - 14:07 #11
thanks numsi :o)
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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