Print side | Luk vindue

"Er du sikker på at du vil ændre dette felt?"

Udskrevet fra: Dansk Access Forum
Kategori: Hjælp til Access
Forum navn: Formularer (Forms)
Forum beskrivelse: Spørgsmål vedr. formularer og alt hvad der vedrører disse
Web-adresse: https://www.accessforum.dk/forum_posts.asp?TID=48
Udskrevet den: 21-11-2024 kl. 15:50


Emne: "Er du sikker på at du vil ændre dette felt?"
Besked fra: Michael
Emne: "Er du sikker på at du vil ændre dette felt?"
Posteringsdato: 23-09-2014 kl. 09:47
Hej
 
Er der en der kan forklare mig hvordan man kan få en boks til at poppe op med teksten "Er du sikker på at du vil ændre dette felt?" hvis man forsøger at ændre indhold i et bestemt felt? Det er selvfølgelig meningen at man skal kunne svare ja eller nej i boksen.
 
På forhånd tak for hjælpen Smile
 
Michael



Svar:
Besked fra: hkh
Posteringsdato: 23-09-2014 kl. 11:55
Hej Michael

Under feltets egenskaber kan du vælge en af følgende egenskaber

Ved indgang(når markøren placeres i feltet)

Først ville jeg undersøge om feltet er tomt, hvis der ikke står noget i feltet, skal der ikke vises en advarsel.

Feltet hedder 'Navn'

Private Sub Navn_Enter()
    
    If Nz(Navn) = "" Then Exit Sub
    
    If MsgBox("Her indsættes din besked?", vbExclamation + vbYesNo + vbDefaultButton2, "Ændring af navn!") = vbNo Then
        Exit Sub
    End If

End Sub

Forklaring
If Nz(Navn) = "" Then Exit Sub
undersøger om feltet er Null eller "".

If MsgBox("Her indsættes din besked?", vbExclamation + vbYesNo + vbDefaultButton2, "Ændring af navn!") = vbNo Then
Viser din besked med et Udråbstegn, JaNej knapper, vælger nej som default, Titlen på boksen

Egenskaberne for feltet finder du ved at markere feltet, højreklikke nederst er egenskaberne.
Vælg fanen Hændelser.
VedIndgang findes i listen, klik i feltet, klik derefter på knappen for enden af feltet med de tre prikker.
Vælg kodegenerator.






-------------
Hans


Besked fra: Michael
Posteringsdato: 23-09-2014 kl. 13:22
Hej Hans
 
Tusind tak for hjælpen. boksen kommer rigtigt op men hvis man svare nej så laves det tastetryk som udløste din makro alligevel.
 
Er det muligt at feltet ikke bliver ændret hvis man trykker nej?
 
Jeg har ændret følgende Private Sub navn_Change() fordi med "enter" går makroen i gang inden jeg når ind til feltet da der automatisk startes på det felt når man åbner formularen.
 
Nedenfor er koden:
 
Private Sub navn_Change()
If Nz(navn) = "" Then Exit Sub
   
    If MsgBox("Vil du ændre på navnet der stod i feltet?", vbExclamation + vbYesNo + vbDefaultButton2, "Ændring af navn!") = vbNo Then
        Exit Sub
    End If
End Sub
 
Håber at du kan hjælpe Smile


Besked fra: hkh
Posteringsdato: 23-09-2014 kl. 14:12
Du kunne flytte til et andet felt eller en knap.
Hvis du flytter til et andet felt eller en knap, vil du ikke kunne ændre.

Hændelsen efteropdatering, indtræffer først efter du har ændret feltet, medens vedindgang kommer når du plaserer markøren i feltet.


Private Sub Navn_Enter()
    
    If Nz(Navn) = "" Then Exit Sub
    
    If MsgBox("Her indsættes din besked?", vbExclamation + vbYesNo + vbDefaultButton2, "Ændring af navn!") = vbNo Then
        Andetfelt.setfocus
        Exit Sub
    End If

End Sub

Hvis dit formål er, at forhindre utilsigtet ændring, kan det gøres hjælp af en knap der tænder og slukker for redigering.

-------------
Hans


Besked fra: hkh
Posteringsdato: 23-09-2014 kl. 14:30
I en form med fire felter og en til/fra knap.

Felterne er døbt n1, n2, n3 og n4.
Felterne er låst og deaktiveret.

Knappen er døbt Knap_Ret

Private Sub Knap_Ret_AfterUpdate()
    If Knap_Ret = True Then
        For q = 1 To 4
            Me("n" & q).Locked = False
            Me("n" & q).Enabled = True
        Next
    Else
        For q = 1 To 4
            Me("n" & q).Locked = True
            Me("n" & q).Enabled = False
        Next
    End If

End Sub

Når der trykkes på knappen, bliver den nede og if delen af koden udføres.
dvs. felterne åbnes

Når der trykkes på knappen igen, kommer den med op og else delen af koden udføres.

Jeg valgte for nemheds skyld at døbe felterne n1, n2, n3 og n4 for at kunne bruge et for next loop.

Me!n1.Locked = False
Me!n1.Enabled = True
Me!n2.Locked = False
Me!n2.Enabled = True
Me!n3.Locked = False
Me!n3.Enabled = True
Me!n4.Locked = False
Me!n4.Enabled = True

eller

n1.Locked = False
n1.Enabled = True
n2.Locked = False
n2.Enabled = True
n3.Locked = False
n3.Enabled = True
n4.Locked = False
n4.Enabled = True

Gør det samme, men hvis der er mange felter er for next loopet lettere.

Me("n" & q) er navnet på feltet der bearbejdes, q ændres ved hvert gennemløb
Der må ikke være udråbstegn mellem Me og parantes begynd.

Hvis der er andet, spørger du bare, så skal jeg forsøge at hjælpe så godt jeg kan.




-------------
Hans


Besked fra: pernilles86
Posteringsdato: 28-04-2015 kl. 19:47
Det har jeg også tænkt at jeg godt kunne bruge... Så tusind tak for hjælpen!!



Print side | Luk vindue