Knop niet of wel beschikbaar maken

Status
Niet open voor verdere reacties.

Chris Cools

Gebruiker
Lid geworden
19 okt 2008
Berichten
152
Hallo,

ik heb in een formulier twee knoppen, 1 om de status van een record aan te passen, als de status naar verwerkt wordt gezet is deze knop niet meer beschikbaar door volgende code:


Private Sub status_GotFocus()
If Me.status = "verwerkt" Then
Me.verwerking_OK.Enabled = False
Else
Me.verwerking_OK.Enabled = True
End If
End Sub

Deze heb ik deze week via dit forum verkregen.

Er staat ook een knop op het forum om een nieuw record op te vragen, maar graag zou ik deze pas "enabled" willen als de knop "verwerkingOK" onbeschikbaar is...

ik heb het geprobeerd met volgende code maar het werkt niet, er komt wel geen foutmelding dat er iets mis is met de code, maar er gebeurt gewoon niets...


Private Sub
If Me.verwerking_OK.Enabled = True Then
Me.Knop_nieuwe_aanvulpallet.Enabled = False
Else
Me.Knop_nieuwe_aanvulpallet.Enabled = True

End Sub

heeft er iemand een idee?

thanx,

chris
 
Knop aan of uit.

Zou het volgende iets kunnen zijn?

Private Sub status_GotFocus()
If Me.status = "verwerkt" Then
Me.verwerking_OK.Enabled = False
Me.Knop_nieuwe_aanvulpallet.Enabled = True
Else
Me.verwerking_OK.Enabled = True
Me.Knop_nieuwe_aanvulpallet.Enabled = False
End If
End Sub

De oplossing lijkt altijd makkelijker dan de vraag :thumb:
Flzzy
 
Hello,

ik heb het letterlijk zo overgenomen, maar toch doet hij het niet...
enig idee wat ik verkeerd zou kunnen gedaan hebben?

grtz,,

chris
 
Hey Flzzy,

toch al bedankt voor je hulp he, dat was ik vergeten...
nogal onbeleefd van mij!

grtz,

chris
 
In access het volgende formulier met 2 knoppen en een txtveld gemaakt.
Volgende code hangt daaronder.

Private Sub Form_Open(Cancel As Integer)
cmbVerwerkt.Visible = True
cmbNieuw_record.Visible = False
End Sub

Private Sub TxtStatus_Change()
If Me.TxtStatus = "Verwerkt" Then
cmbVerwerkt.Visible = False
cmbNieuw_record.Visible = True
Else
cmbVerwerkt.Visible = True
cmbNieuw_record.Visible = False
End If
End Sub

Mocht je willen dan kan ik het db tje toezenden.
 
Private Sub Form_Open(Cancel As Integer)
cmbVerwerkt.Visible = True
cmbNieuw_record.Visible = False
End Sub

Volgens mij gaat bovenstaande fout. Als de status bij het openen verwerkt is, doet hij het precies verkeerd.

mvg
Charles
 
Bestandje gestuurd. Zie wel of je er gelukkig van kunt worden
 
Private Sub Form_Open(Cancel As Integer)
cmbVerwerkt.Visible = True
cmbNieuw_record.Visible = False
End Sub

Volgens mij gaat bovenstaande fout. Als de status bij het openen verwerkt is, doet hij het precies verkeerd.

mvg
Charles

Bij het openen (uitgangspositie) is de knop Verwerkt zichtbaar en de knop Nieuw record onzichtbaar. Verander je nadien het txtveld dan wordt er gekeken of daar "Verwerkt" in staat zo ja dan verdwijnt de knop verwerkt en verschijnt de knop Nieuw record.
 
Maar als je het formulier opent in een record waarvan de status verwerkt is, dan moet de knop "Verwerkt" juist niet zichtbaar en de knop "Nieuw record" wel.
 
Dan kijk je bij het openen van het formulier naar wat er in het veld txtStatus staat. In plaats van het automatisch aan of uitzetten van knoppen bij het openen.

Bij openen komt dan te staan

Private Sub Form_Open(Cancel As Integer)
if me.txtstatus = "Verwerkt" then
me.cmbVerwerkt.visible = False (of True als je dat wenst)
me.cmbNieuw_Record.visible = True (of False als je dat wenst)
else
me.cmbVerwerkt.visible = True (of False als je dat wenst)
me.cmbNieuw_Record.visible = False (of True als je dat wenst)
endif
End Sub

Het gaat er maar om dat het veld txtStatus wordt uitgelezen bij openen en / of wijzigen en dat er iets gebeurt als dat nodig is (in dit geval een knop zichtbaar of onzichtbaar)
 
Met andere woorden uitgaande van de code die je hebt geplaatst in je 2e post kun je volgens mij volstaan met:

Private Sub Form_Open(Cancel As Integer)
Call TxtStatus_Change
End Sub

Private Sub TxtStatus_Change()
If Me.TxtStatus = "Verwerkt" Then
Me.cmbVerwerkt.Visible = False
Me.cmbNieuw_record.Visible = True
Else
Me.cmbVerwerkt.Visible = True
Me.cmbNieuw_record.Visible = False
End If
End Sub

om dubbele code te voorkomen.
mvg
Charles
 
Hello,

rare dingen, vorige week toen ik jullie laatste raad opgevolgd heb lukte het perfect...

Ik ben de database eens opnieuw aan het maken om het goed in de vingers te krijgen.
Maar rara, nu werkt het weer niet meer...
de knop van Verwerking OK die doet het wel, die kan je niet meer selecteren als de status "verwerkt" is, maar als de status niet "verwerkt" is, blijft de andere knop wel beschikbaar...

Dit is de code van heel het formulier:

Option Compare Database
Option Explicit

Private Sub Detail_Click()

End Sub

Private Sub KnopVerwerkingOK_Click()
Me.Txtstatus = "Verwerkt"
Me.TxtDatumVerwerkt = Date
Me.TxtUurVerwerkt = Time()
Me.Txtstatus.SetFocus
If Me.Txtstatus = "verwerkt" Then
Me.KnopVerwerkingOK.Enabled = False
Me.KnopNieuweAanvulpallet.Enabled = True
Else
Me.KnopVerwerkingOK.Enabled = True
Me.KnopNieuweAanvulpallet.Enabled = False
End If
End Sub
Private Sub KnopNieuweAanvulpallet_Click()
On Error GoTo Err_KnopNieuweAanvulpallet_Click

Dim stDocName As String

stDocName = "Nieuwe aanvulpallet A+B gang"
DoCmd.RunMacro stDocName

Exit_KnopNieuweAanvulpallet_Click:
Exit Sub

Err_KnopNieuweAanvulpallet_Click:
MsgBox Err.Description
Resume Exit_KnopNieuweAanvulpallet_Click

End Sub


Kan iemand hier iets verkeerd aan zien?

thanx,

chris
 
Hello,

rare dingen, vorige week toen ik jullie laatste raad opgevolgd heb lukte het perfect...

Ik ben de database eens opnieuw aan het maken om het goed in de vingers te krijgen.
Maar rara, nu werkt het weer niet meer...
de knop van Verwerking OK die doet het wel, die kan je niet meer selecteren als de status "verwerkt" is, maar als de status niet "verwerkt" is, blijft de andere knop wel beschikbaar...

Dit is de code van heel het formulier:

Option Compare Database
Option Explicit

Private Sub Detail_Click()

End Sub

Private Sub KnopVerwerkingOK_Click()
Me.Txtstatus = "Verwerkt"
Me.TxtDatumVerwerkt = Date
Me.TxtUurVerwerkt = Time()
Me.Txtstatus.SetFocus
If Me.Txtstatus = "verwerkt" Then
Me.KnopVerwerkingOK.Enabled = False
Me.KnopNieuweAanvulpallet.Enabled = True
Else
Me.KnopVerwerkingOK.Enabled = True
Me.KnopNieuweAanvulpallet.Enabled = False
End If
End Sub
Private Sub KnopNieuweAanvulpallet_Click()
On Error GoTo Err_KnopNieuweAanvulpallet_Click

Dim stDocName As String

stDocName = "Nieuwe aanvulpallet A+B gang"
DoCmd.RunMacro stDocName

Exit_KnopNieuweAanvulpallet_Click:
Exit Sub

Err_KnopNieuweAanvulpallet_Click:
MsgBox Err.Description
Resume Exit_KnopNieuweAanvulpallet_Click

End Sub


Kan iemand hier iets verkeerd aan zien?

thanx,

chris

Je zet meteen bovenaan
Private Sub KnopVerwerkingOK_Click()
Me.Txtstatus = "Verwerkt"

Hiermee komt Txtstatus op verwerkt te staan.

Daaronder ga je verder met
If Me.Txtstatus = "verwerkt" Then

Dat is ALTIJD waar want dat heb je op de eerste regel zo ingesteld! De ELSE komt die dus nooit meer tegen. Dus ook die instelling niet..... ;)
 
lol, als je het zo zegt is het idd heel logisch...:rolleyes:
Hoe en waar ik moet ik het wel zetten in dit geval?

thanx,

chris
 
Door middel van een variabele laten controleren
(wel declareren!!! bv dim controle as string

vervolgens in de code controle vullen met de waarde van het veld me.txtstatus

controle = Me.Txtstatus

En de controle laten controleren in je if statement

If controle = "Verwerkt" then
knoppen zichtbaar/onzichtbaar
Else
knoppen zichtbaar/onzichtbaar
End If

en dan moet het goed komen :p
 
Hey, ik heb gedaan wat je zei en het werkt!!! hip hoi....

Enkel verandert de status pas na een aantal muisklikken op het scherm...

Ik heb hier op het forum iets gevonden en daar sprak men van "me.requery"

Hoe werkt dit juist, doet dit wat ik wil? en waar moet ik dat dan juist plaatsen?

thanx,

chris
 
Nieuw onderwerp mieuwe vraag

Mooi dat de knoppen werken. Kan deze vraag als opgelost beschouwd worden. Voor een nieuw onderwerp (zoals me.requery) zou je beter een nieuwe vraag kunnen lanceren. Anders blijven we in een beperkt kringtje praten en oplossen omdat iedereen denkt dat het hier over knoppen gaat terwijl dat al niet meer het geval is.

Zie je weer elders!
 
okido!! ben nieuw op forums en dus ook nog niet helemaal mee met the way to go...
Maar ik pas het direct aan!:thumb:

bedankt al voor alle reacties!

grtz,
chris
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan