Knop deactiveren bij leeg veld

Status
Niet open voor verdere reacties.

jvandervliet

Gebruiker
Lid geworden
23 mrt 2006
Berichten
234
Beste mensen,

Hoe kan ik met een knop deactiveren als een veld leeg is?

Zoiets als if me.email.value = "" then me.cmdMailen.visible = false end if

Het geeft wel een foutmelding Dat VBA een expressie of iets dergelijks verwacht.
Of doe ik iets verkeerd?
 
Je opdrachtregel zou moeten werken zonder de end if.
 
Je geeft alleen een opdrachtregel die in zijn huidige syntax niet werkt. Daarvoor was de aanpassing bedoeld. Meer kan ik er, zonder de volledige code te zien, nu niet van zeggen.
 
Code:
Me.Klantgegevens = Me.Naam & vbCrLf & Me.Naam.Column(1) & vbCrLf & Me.Naam.Column(2) & " " & Me.Naam.Column(3) & vbCrLf & Me.Naam.Column(4) & vbCrLf & Me.Naam.Column(5) & vbCrLf & Me.Naam.Column(6)
Me.Labelvenster = Me.Naam & "<BR>" & Me.Naam.Column(1) & "<BR>" & Me.Naam.Column(2) & " " & Me.Naam.Column(3)
Me.email = Me.Naam.Column(1)
Me.Onderwerp = Me.OnderwerpEmail
Me.TekstVerzenden = Me.EmailAanhef & Me.Verzendkosten.Column(2) & Me.EmailHandtekening
Me.email = Me.Naam.Column(5)
If Me.email.Value = "" Then Me.cmdMailen. = False
 
Laatst bewerkt:
Haal die rode punt er eens uit:
If Me.email.Value = "" Then Me.cmdMailen. = False
Of zet er Visible achter.
 
Laatst bewerkt:
Zonder If
Code:
Me.cmdMailen.Visible = Me.email.value <> ""
 
Ik heb een hekel aan het goochelen met objecten; laat ze lekker in beeld staan en zet ze hooguit aan- of uit op basis van een waarde uit een ander veld.
Code:
     Me.cmdMailen.Enabled = Me.email.Value <> ""
En hang de actie aan de gebeurtenis <Bij wijzigen> van het email veld, dan gebeurt het schakelen 'live'
 
Je bent een beetje onduidelijk; wat precies? Welke regel? Hoe ziet je code er nu uit?
 
Dit is de code

Code:
Private Sub email_Change()
Me.cmdMailen.Enabled = Me.email.Value <> ""
End Sub
 
En dan klopt de foutmelding, want je kunt bij het Change event geen Value gebruiken omdat de value nog niet bekend is. Je zult de eigenschap .Text moeten gebruiken.
 
Ik zie geen knop met een rode rand; ik zie wel een knop <Email versturen>. Dus die op <Ingeschakeld> = Nee gezet en getest met deze code:
Code:
    Me.EmailVersturen.Enabled = Not (Me.email.Text = "")
 
Dat werkt wel als je het email adres handmatig intypt.
Bij Form_Current() heb ik zo geregeld, als ik een klant aan klik, dan wordt het emailadres automatisch ingevuld en dan doet de code dan weer niet.
 
Nee, maar dat is logisch. Dan moet je de code ook op andere plekken gebruiken, en dan uiteraard wel met .Value omdat je dan niet in het tekstveld edit.
 
Als ik een klant selecteer die geen emailadres heeft, dan Krijg ik Fout 94 tijdens uitvoering: Ongeldig gebruik van Null


Dit is nu de code:

Code:
Private Sub Form_Current()
Me.Klantgegevens = Me.Naam & vbCrLf & Me.Naam.Column(1) & vbCrLf & Me.Naam.Column(2) & " " & Me.Naam.Column(3) & vbCrLf & Me.Naam.Column(4) & vbCrLf & Me.Naam.Column(5) & vbCrLf & Me.Naam.Column(6)
Me.Labelvenster = Me.Naam & "<BR>" & Me.Naam.Column(1) & "<BR>" & Me.Naam.Column(2) & " " & Me.Naam.Column(3)
Me.email = Me.Naam.Column(1)
Me.Onderwerp = Me.OnderwerpEmail
Me.TekstVerzenden = Me.EmailAanhef & Me.Verzendkosten.Column(2) & Me.EmailHandtekening
Me.email = Me.Naam.Column(5)
Me.EmailVersturen.Enabled = Not (Me.email.Value = "")
 
Als ik een factuur aanklik of in het adresbestand een naam aanklik waar geen email adres bij staat. Als er wel een email adres er bij staat is er geen probleem, dan werkt het wel naar behoren. Dus eigenlijk bij Form_current()
 
Ja, dat snap ik, maar ik wilde weten in welke regel dat dan is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan