Hoppa till innehåll

Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

Access VBA

#1
Medlem är utloggad   Martassen 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 1 040
  • Gick med: 2005-03-27
  • Ort:Göteborg

Skrivet 11 jun 2012, 09:10

Kass på VBA.

Jag har ett formulär med ett fält med namnet "Pris".

Matar man in priser som är mindre än 10 ska det komma fram ett ruta som meddelar detta och ställer frågan om jag ändå vill bekräfta det jag matat in.

Matar man in priser som är större än 10000 ska det komma fram samma sak.

Hur gör man detta i VBA?
0

#2
Medlem är utloggad   MickeF 

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 83
  • Gick med: 2010-06-04
  • Ort:Stockholm

Skrivet 13 jun 2012, 14:53

Följande kod kan användas:

Function mYes(fraga$) As Boolean
	mYes = MsgBox(fraga, vbYesNo + vbDefaultButton2, "Ok/Cancel i Access") = vbYes
End Function

Private Sub Pris_BeforeUpdate(Cancel As Integer)
	If Pris < 10 Then
    	Cancel = Not mYes("Priset är mindre än 10, Spara ändå?")
	ElseIf Pris > 10000 Then
    	Cancel = Not mYes("Priset är större än 10000, Spara ändå?")
	End If
End Sub


Exempel finns på http://accesskonsult...a-inmatat-pris/
Accesskonsult
Micke Falk
0

#3
Medlem är utloggad   Martassen 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 1 040
  • Gick med: 2005-03-27
  • Ort:Göteborg

Skrivet 18 jun 2012, 09:11

Visa inläggMickeF, den 13 jun 2012, 14:53, sa:

Följande kod kan användas:

Function mYes(fraga$) As Boolean
	mYes = MsgBox(fraga, vbYesNo + vbDefaultButton2, "Ok/Cancel i Access") = vbYes
End Function

Private Sub Pris_BeforeUpdate(Cancel As Integer)
	If Pris < 10 Then
    	Cancel = Not mYes("Priset är mindre än 10, Spara ändå?")
	ElseIf Pris > 10000 Then
    	Cancel = Not mYes("Priset är större än 10000, Spara ändå?")
	End If
End Sub


Exempel finns på http://accesskonsult...a-inmatat-pris/


Går inge bra idag. Jag lägger in all kod vid "BeforeUpdate" och jag får fram följande ruta. Se bifogad bild.

Bifogade filer

  • Bifogad fil  ruta.gif (22,26Kb)
    Antal nedladdningar: 0

0

#4
Medlem är utloggad   MickeF 

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 83
  • Gick med: 2010-06-04
  • Ort:Stockholm

Skrivet 18 jun 2012, 18:24

Troligen så har du nu två funktioner med namnet Pris_BeforeUpdate
Accesskonsult
Micke Falk
0

#5
Medlem är utloggad   Martassen 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 1 040
  • Gick med: 2005-03-27
  • Ort:Göteborg

Skrivet 21 jun 2012, 11:05

Visa inläggMickeF, den 13 jun 2012, 14:53, sa:

Följande kod kan användas:

Function mYes(fraga$) As Boolean
	mYes = MsgBox(fraga, vbYesNo + vbDefaultButton2, "Ok/Cancel i Access") = vbYes
End Function

Private Sub Pris_BeforeUpdate(Cancel As Integer)
	If Pris < 10 Then
    	Cancel = Not mYes("Priset är mindre än 10, Spara ändå?")
	ElseIf Pris > 10000 Then
    	Cancel = Not mYes("Priset är större än 10000, Spara ändå?")
	End If
End Sub


Exempel finns på http://accesskonsult...a-inmatat-pris/


Japp funkar nu. Men om jag väljer att inte spara priset så vill man ju helst som användare slippa trycka Esc för att återställa fältet.
0

#6
Medlem är utloggad   MickeF 

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 83
  • Gick med: 2010-06-04
  • Ort:Stockholm

Skrivet 22 jun 2012, 07:25

Visa inläggMartassen, den 21 jun 2012, 11:05, sa:

Japp funkar nu. Men om jag väljer att inte spara priset så vill man ju helst som användare slippa trycka Esc för att återställa fältet.


Då kan du använda denna kod:

Option Compare Database
Option Explicit

Dim reset%

Function mYes(fraga$) As Boolean
	mYes = MsgBox(fraga, vbYesNo + vbDefaultButton2, "Ok/Cancel i Access") = vbYes
End Function

Private Sub Pris_AfterUpdate()
	If reset Then Pris = Pris.OldValue
End Sub

Private Sub Pris_BeforeUpdate(Cancel As Integer)
	reset = False
	If Pris < 10 Then
    	reset = Not mYes("Priset är mindre än 10, Spara ändå?")
	ElseIf Pris > 10000 Then
    	reset = Not mYes("Priset är större än 10000, Spara ändå?")
	End If
End Sub


Se till att Händelsen Pris_AfterUpdate anropas från fältet Pris.
Accesskonsult
Micke Falk
0

#7
Medlem är utloggad   Martassen 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 1 040
  • Gick med: 2005-03-27
  • Ort:Göteborg

Skrivet 28 jun 2012, 11:42

Visa inläggMickeF, den 22 jun 2012, 07:25, sa:

Då kan du använda denna kod:

Option Compare Database
Option Explicit

Dim reset%

Function mYes(fraga$) As Boolean
	mYes = MsgBox(fraga, vbYesNo + vbDefaultButton2, "Ok/Cancel i Access") = vbYes
End Function

Private Sub Pris_AfterUpdate()
	If reset Then Pris = Pris.OldValue
End Sub

Private Sub Pris_BeforeUpdate(Cancel As Integer)
	reset = False
	If Pris < 10 Then
    	reset = Not mYes("Priset är mindre än 10, Spara ändå?")
	ElseIf Pris > 10000 Then
    	reset = Not mYes("Priset är större än 10000, Spara ändå?")
	End If
End Sub


Se till att Händelsen Pris_AfterUpdate anropas från fältet Pris.


Japp har lagt in koden. Om jag matar in ett pris och trycker Nej så går den vidare till nästa post. Hur gör jag så den inte går vidare?
0

#8
Medlem är utloggad   MickeF 

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 83
  • Gick med: 2010-06-04
  • Ort:Stockholm

Skrivet 28 jun 2012, 19:38

Visa inläggMartassen, den 28 jun 2012, 11:42, sa:

Japp har lagt in koden. Om jag matar in ett pris och trycker Nej så går den vidare till nästa post. Hur gör jag så den inte går vidare?


Det finns lite inställningar. I meny väljer du Verktyg/Alternativ och klickar på fliken Tangentbord (enligt meny i access 2003.
Accesskonsult
Micke Falk
0

#9
Medlem är utloggad   Martassen 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 1 040
  • Gick med: 2005-03-27
  • Ort:Göteborg

Skrivet 29 jun 2012, 05:47

Visa inläggMickeF, den 28 jun 2012, 19:38, sa:

Det finns lite inställningar. I meny väljer du Verktyg/Alternativ och klickar på fliken Tangentbord (enligt meny i access 2003.


Har 2010. Vart hittar du det i 2010. Jag kollade arkiv/Accessalternativ.
0

#10
Medlem är utloggad   MickeF 

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 83
  • Gick med: 2010-06-04
  • Ort:Stockholm

Skrivet 29 jun 2012, 09:41

Vet inte.
Accesskonsult
Micke Falk
0

#11
Medlem är utloggad   Martassen 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 1 040
  • Gick med: 2005-03-27
  • Ort:Göteborg

Skrivet 03 jul 2012, 09:35

Visa inläggMickeF, den 29 jun 2012, 09:41, sa:

Vet inte.


Vad heter det du bockar i när du kör 2003? Tänkte om jag kan hitta liknande i 2010 för det bör ju ligga under Accessalternativ.
0

#12
Medlem är utloggad   MickeF 

  • Användare
  • PipPip
  • Grupp: Medlemmar
  • Inlägg: 83
  • Gick med: 2010-06-04
  • Ort:Stockholm

Skrivet 03 jul 2012, 10:05

Visa inläggMartassen, den 03 jul 2012, 09:35, sa:

Vad heter det du bockar i när du kör 2003? Tänkte om jag kan hitta liknande i 2010 för det bör ju ligga under Accessalternativ.


Retur-tangenten flyttar
o Inte alls
o Till nästa fält
o Till nästa post


Bifogar bild

Bifogade filer


Accesskonsult
Micke Falk
1

#13
Medlem är utloggad   Martassen 

  • Flitig
  • PipPipPipPip
  • Grupp: Medlemmar
  • Inlägg: 1 040
  • Gick med: 2005-03-27
  • Ort:Göteborg

Skrivet 03 jul 2012, 10:07

Visa inläggMickeF, den 03 jul 2012, 10:05, sa:

Retur-tangenten flyttar
o Inte alls
o Till nästa fält
o Till nästa post


Bifogar bild


Japp var inne där. Stort tack för hjälpen i denna tråd!
Kanon!
0
Sida 1 av 1
  • Du kan inte starta en ny tråd
  • Du kan inte svara i tråden

1 besökare läser just nu den här tråden, varav 0 medlem(mar) och 1 gäst(er)
 
 
Senast obesvarade trådar
Prenumerera på nyheter

Missa inte våra nya
smarta nyhetsbrev

Läs mer om nyhetsbreven här!
Beställ direkt:


Extreme
PC för Alla-nätverket