Dezelfde formule voor verschillende functies toewijzen

Status
Niet open voor verdere reacties.

Systeempje

Gebruiker
Lid geworden
8 sep 2009
Berichten
149
Beste,

Ik heb een nieuwe vraag gestart omdat hij niet precies aansloot op mijn vorige vraag.

Ik heb de volgende VBA:

Code:
 Personeel_uren = 0
        Personeel_tarief = 0
        Transport_uren = 0
        Transport_tarief = 0
        Inkopen_uren = 0
        Inkopen_tarief = 0
        Huur_tarief = 0
        Huur_uren = 0
        Veiligheid_uren = 0
        Veiligheid_tarief = 0
        vrijveld1_uren = 0
        vrijveld1_tarief = 0
        vrijveld2_uren = 0
        vrijveld2_tarief = 0
        
        Me![Personeel_uren].Enabled = False
        Me![Personeel_tarief].Enabled = False
        Me![Transport_uren].Enabled = False
        Me![Transport_tarief].Enabled = False
        Me![Inkopen_uren].Enabled = False
        Me![Inkopen_tarief].Enabled = False
        Me![Huur_uren].Enabled = False
        Me![Huur_tarief].Enabled = False
        Me![Veiligheid_uren].Enabled = False
        Me![Veiligheid_tarief].Enabled = False
        Me![vrijveld1_uren].Enabled = False
        Me![vrijveld1_tarief].Enabled = False
        Me![vrijveld2_uren].Enabled = False
        Me![vrijveld2_tarief].Enabled = False

Je kunt zien dat ik met de volgende velden verschillende dingen doe:
  • Personeel_tarief
  • Transport_uren
  • Transport_tarief
  • Inkopen_uren
  • Inkopen_tarief
  • Huur_tarief
  • Huur_uren
  • Veiligheid_uren
  • Veiligheid_tarief
  • vrijveld1_uren
  • vrijveld1_tarief
  • vrijveld2_uren
  • vrijveld2_tarief

Kan ik deze velden als een blok (function) oproepen zodat ik niet alle velden elke keer opnieuw hoe op te roepen?

dan krijg ik iets van " Call all_velden(me) = 0" Call all_velden(me).Enabled = False
 
Code:
Sub Resetten()
    Personeel_uren = 0
    Personeel_tarief = 0
    Transport_uren = 0
    Transport_tarief = 0
    Inkopen_uren = 0
    Inkopen_tarief = 0
    Huur_tarief = 0
    Huur_uren = 0
    Veiligheid_uren = 0
    Veiligheid_tarief = 0
    vrijveld1_uren = 0
    vrijveld1_tarief = 0
    vrijveld2_uren = 0
    vrijveld2_tarief = 0
    Me![Personeel_uren].Enabled = False
    Me![Personeel_tarief].Enabled = False
    Me![Transport_uren].Enabled = False
    Me![Transport_tarief].Enabled = False
    Me![Inkopen_uren].Enabled = False
    Me![Inkopen_tarief].Enabled = False
    Me![Huur_uren].Enabled = False
    Me![Huur_tarief].Enabled = False
    Me![Veiligheid_uren].Enabled = False
    Me![Veiligheid_tarief].Enabled = False
    Me![vrijveld1_uren].Enabled = False
    Me![vrijveld1_tarief].Enabled = False
    Me![vrijveld2_uren].Enabled = False
    Me![vrijveld2_tarief].Enabled = False
End Sub

Aanroepen met:

Call Resetten
 
Nee dat bedoel ik eigenlijk niet....

Ik wil iets van:

Code:
sub resetten()
Personeel_tarief 
Transport_uren 
Transport_tarief 
Inkopen_uren 
Inkopen_tarief 
Huur_tarief 
Huur_uren 
Veiligheid_uren 
Veiligheid_tarief 
vrijveld1_uren 
vrijveld1_tarief 
vrijveld2_uren 
vrijveld2_tarief

Call resetten

maar dat ik dan met de call verschillende functies kan doen.
Call resetten = 0 (alles in de call op 0)
Call resetten.Enabled = False (alles uitschakelen uit de call)

Eigenlijk wil ik elke keer een blokje van tekstvelden oppikken en daar een functie over uitvoeren.
 
Laatst bewerkt:
Code:
Sub Resetten(Waarde)
Select Case Waarde
case 0:
    Personeel_uren = 0
    Personeel_tarief = 0
    Transport_uren = 0
    Transport_tarief = 0
    Inkopen_uren = 0
    Inkopen_tarief = 0
    Huur_tarief = 0
    Huur_uren = 0
    Veiligheid_uren = 0
    Veiligheid_tarief = 0
    vrijveld1_uren = 0
    vrijveld1_tarief = 0
    vrijveld2_uren = 0
    vrijveld2_tarief = 0
case 1:
    Personeel_uren = 1
    Personeel_tarief = 1
    Transport_uren = 1
    ...
    vrijveld2_tarief = 1
case false:
    Me![Personeel_uren].Enabled = False
    Me![Personeel_tarief].Enabled = False
    Me![Transport_uren].Enabled = False
    Me![Transport_tarief].Enabled = False
    Me![Inkopen_uren].Enabled = False
    Me![Inkopen_tarief].Enabled = False
    Me![Huur_uren].Enabled = False
    Me![Huur_tarief].Enabled = False
    Me![Veiligheid_uren].Enabled = False
    Me![Veiligheid_tarief].Enabled = False
    Me![vrijveld1_uren].Enabled = False
    Me![vrijveld1_tarief].Enabled = False
    Me![vrijveld2_uren].Enabled = False
    Me![vrijveld2_tarief].Enabled = False
Case Else:
    Standaard setting
End Select
End Sub

Aanroepen met:
Call Resetten(1)
Call Resetten(0)
Call Resetten(False)
Call Resetten()
 
Laatst bewerkt:
Oke, oplossingen zijn mooi.

Maar ik begrijp dat het niet mogelijk is op een blok van velden op te roepen met Call en vervolgens met de Call iets te doen, bijvoorbeeld vergrendelen.

Dus als ik wil uitbreiden moet ik altijd de sub aanpassen?
 
Dat lijkt me wel het handigste, omdat je de naamgeving van de objecten niet consequent gebruikt. Je kunt wel door alle objecten op een formulier heenlopen met een loop (Do...While), maar dan krijg je ook de tekstvakken, labels etc. En je kunt dus een label bijvoorbeeld niet False maken.
Als je de naamgeving verandert in cbo1 ... cbo11 voor keuzelijsten, txt1...txt24 voor tekstvakken, dan kan het wel.
Code:
For i=1 to 12
    Me("txt" & i).Enabled=False
next
bijvoorbeeld.
 
Ja oke.....

Ik heb voor het gemak toch de sub gedaan, maar voor alle oplossingen bedankt :thumb:

Maar vervelende is dat ik in een module de inschakeling en uitschakeling gebruik (Enabled = False/True). Echter deze optie werkt niet op het rapport. Juist wel op het formulier. Ik wil vakken uitschakelen (grijs op papier).
 
Laatst bewerkt:
Hoe bedoel je: werkt niet? Ik zie niet in waarom dat niet zou werken. Wat gebeurt er als je stap voor stap door de routine loopt bijvoorbeeld?
 
Voor het gemak ben ik even afgestapt van de Sub/Call.
Ik heb bij het openen van het rapport het de volgende gebeurtenis:


Code:
Private Sub Report_Open(Cancel As Integer)

If f![vasteprijs_vink] = True Then

        f [Vaste_prijsafspraak].Enabled = True
        f [vasteprijs_budget].Enabled = True
        f [vasteprijs_inkoop].Enabled = True
        f [vasteprijs_marge].Enabled = True
        f [vasteprijs_uren].Enabled = True
        f [vasteprijs_uurloon].Enabled = True
        
        f [Personeel_uren].Enabled = False
        f [Personeel_tarief].Enabled = False
        f [Personeel_totaal].Enabled = False
        f [Transport_uren].Enabled = False
        f [Transport_tarief].Enabled = False
        f [Transport_totaal].Enabled = False
        f [Inkopen_uren].Enabled = False
        f [Inkopen_tarief].Enabled = False
        f [Inkopen_totaal].Enabled = False
        f [Huur_uren].Enabled = False
        f [Huur_tarief].Enabled = False
        f [Huur_totaal].Enabled = False
        f [Veiligheid_uren].Enabled = False
        f [Veiligheid_tarief].Enabled = False
        f [Veiligheid_totaal].Enabled = False
        f [vrijveld1_uren].Enabled = False
        f [vrijveld1_tarief].Enabled = False
        f [vrijveld1_totaal].Enabled = False
        f [vrijveld2_uren].Enabled = False
        f [vrijveld2_tarief].Enabled = False
        f [vrijveld2_totaal].Enabled = False
        f [Totaal].Enabled = False
        f [Vrijveld1_tekst].Locked = True

    Else
            
        f [Vaste_prijsafspraak].Enabled = False
        f [vasteprijs_budget].Enabled = False
        f [vasteprijs_inkoop].Enabled = False
        f [vasteprijs_marge].Enabled = False
        f [vasteprijs_uren].Enabled = False
        f [vasteprijs_uurloon].Enabled = False
        
        f [Personeel_uren].Enabled = True
        f [Personeel_tarief].Enabled = True
        f [Personeel_totaal].Enabled = True
        f [Transport_uren].Enabled = True
        f [Transport_tarief].Enabled = True
        f [Transport_totaal].Enabled = True
        f [Inkopen_uren].Enabled = True
        f [Inkopen_tarief].Enabled = True
        f [Inkopen_totaal].Enabled = True
        f [Huur_uren].Enabled = True
        f [Huur_tarief].Enabled = True
        f [Huur_totaal].Enabled = True
        f [Veiligheid_uren].Enabled = True
        f [Veiligheid_tarief].Enabled = True
        f [Veiligheid_totaal].Enabled = True
        
        f [vrijveld1_uren].Enabled = True
        f [vrijveld1_tarief].Enabled = True
        f [vrijveld1_totaal].Enabled = True
        f [vrijveld2_uren].Enabled = True
        f [vrijveld2_tarief].Enabled = True
        f [vrijveld2_totaal].Enabled = True
    
        f [Totaal].Enabled = True
        
        f [Vrijveld1_tekst].Locked = True
        
    End If
End Sub

Ik heb juist geen ME! gebruikt, express maar met werkt het ook niet.

in het formulier werkt het wel bij aanwijzen heb ik het volgende:

Code:
Private Sub Form_Current()
vasteprijs_vink_Click
End Sub

En bij klikken:
Code:
Private Sub vasteprijs_vink_Click()

If Me![vasteprijs_vink] = True Then

        Me![Vaste_prijsafspraak].Enabled = True
        Me![vasteprijs_budget].Enabled = True
        Me![vasteprijs_inkoop].Enabled = True
        Me![vasteprijs_marge].Enabled = True
        Me![vasteprijs_uren].Enabled = True
        Me![vasteprijs_uurloon].Enabled = True

        Me![Personeel_uren].Enabled = False
        Me![Personeel_tarief].Enabled = False
        Me![Personeel_totaal].Enabled = False
        Me![Transport_uren].Enabled = False
        Me![Transport_tarief].Enabled = False
        Me![Transport_totaal].Enabled = False
        Me![Inkopen_uren].Enabled = False
        Me![Inkopen_tarief].Enabled = False
        Me![Inkopen_totaal].Enabled = False
        Me![Huur_uren].Enabled = False
        Me![Huur_tarief].Enabled = False
        Me![Huur_totaal].Enabled = False
        Me![Veiligheid_uren].Enabled = False
        Me![Veiligheid_tarief].Enabled = False
        Me![Veiligheid_totaal].Enabled = False
        Me![vrijveld1_uren].Enabled = False
        Me![vrijveld1_tarief].Enabled = False
        Me![vrijveld1_totaal].Enabled = False
        Me![vrijveld2_uren].Enabled = False
        Me![vrijveld2_tarief].Enabled = False
        Me![vrijveld2_totaal].Enabled = False
        Me![Totaal].Enabled = False
        Me![Vrijveld1_tekst].Locked = True

    Else
            
        Me![Vaste_prijsafspraak].Enabled = False
        Me![vasteprijs_budget].Enabled = False
        Me![vasteprijs_inkoop].Enabled = False
        Me![vasteprijs_marge].Enabled = False
        Me![vasteprijs_uren].Enabled = False
        Me![vasteprijs_uurloon].Enabled = False
        
        Me![Personeel_uren].Enabled = True
        Me![Personeel_tarief].Enabled = True
        Me![Personeel_totaal].Enabled = True
        Me![Transport_uren].Enabled = True
        Me![Transport_tarief].Enabled = True
        Me![Transport_totaal].Enabled = True
        Me![Inkopen_uren].Enabled = True
        Me![Inkopen_tarief].Enabled = True
        Me![Inkopen_totaal].Enabled = True
        Me![Huur_uren].Enabled = True
        Me![Huur_tarief].Enabled = True
        Me![Huur_totaal].Enabled = True
        Me![Veiligheid_uren].Enabled = True
        Me![Veiligheid_tarief].Enabled = True
        Me![Veiligheid_totaal].Enabled = True
        
        Me![vrijveld1_uren].Enabled = True
        Me![vrijveld1_tarief].Enabled = True
        Me![vrijveld1_totaal].Enabled = True
        Me![vrijveld2_uren].Enabled = True
        Me![vrijveld2_tarief].Enabled = True
        Me![vrijveld2_totaal].Enabled = True
    
        Me![Totaal].Enabled = True
        
        Me![Vrijveld1_tekst].Locked = True
        
    End If
End Sub

Hier werkt het dus wel
 
Niet om het een of ander, maar wat is f?
Dit zou toch echt moeten werken...
Private Sub Report_Open(Cancel As Integer)

Code:
If Me.[vasteprijs_vink] = True Then
        Me.[Vaste_prijsafspraak].Enabled = True
        Me.[vasteprijs_budget].Enabled = True
        Me.[vasteprijs_inkoop].Enabled = True
        Me.[vasteprijs_marge].Enabled = True
        Me.[vasteprijs_uren].Enabled = True
        Me.[vasteprijs_uurloon].Enabled = True
        Me.[Personeel_uren].Enabled = False
        Me.[Personeel_tarief].Enabled = False
        Me.[Personeel_totaal].Enabled = False
        Me.[Transport_uren].Enabled = False
        Me.[Transport_tarief].Enabled = False
        Me.[Transport_totaal].Enabled = False
        Me.[Inkopen_uren].Enabled = False
        Me.[Inkopen_tarief].Enabled = False
        Me.[Inkopen_totaal].Enabled = False
        Me.[Huur_uren].Enabled = False
        Me.[Huur_tarief].Enabled = False
        Me.[Huur_totaal].Enabled = False
        Me.[Veiligheid_uren].Enabled = False
        Me.[Veiligheid_tarief].Enabled = False
        Me.[Veiligheid_totaal].Enabled = False
        Me.[vrijveld1_uren].Enabled = False
        Me.[vrijveld1_tarief].Enabled = False
        Me.[vrijveld1_totaal].Enabled = False
        Me.[vrijveld2_uren].Enabled = False
        Me.[vrijveld2_tarief].Enabled = False
        Me.[vrijveld2_totaal].Enabled = False
        Me.[Totaal].Enabled = False
        Me.[Vrijveld1_tekst].Locked = True
    Else
        Me.[Vaste_prijsafspraak].Enabled = False
        Me.[vasteprijs_budget].Enabled = False
        Me.[vasteprijs_inkoop].Enabled = False
        Me.[vasteprijs_marge].Enabled = False
        Me.[vasteprijs_uren].Enabled = False
        Me.[vasteprijs_uurloon].Enabled = False
        Me.[Personeel_uren].Enabled = True
        Me.[Personeel_tarief].Enabled = True
        Me.[Personeel_totaal].Enabled = True
        Me.[Transport_uren].Enabled = True
        Me.[Transport_tarief].Enabled = True
        Me.[Transport_totaal].Enabled = True
        Me.[Inkopen_uren].Enabled = True
        Me.[Inkopen_tarief].Enabled = True
        Me.[Inkopen_totaal].Enabled = True
        Me.[Huur_uren].Enabled = True
        Me.[Huur_tarief].Enabled = True
        Me.[Huur_totaal].Enabled = True
        Me.[Veiligheid_uren].Enabled = True
        Me.[Veiligheid_tarief].Enabled = True
        Me.[Veiligheid_totaal].Enabled = True
        Me.[vrijveld1_uren].Enabled = True
        Me.[vrijveld1_tarief].Enabled = True
        Me.[vrijveld1_totaal].Enabled = True
        Me.[vrijveld2_uren].Enabled = True
        Me.[vrijveld2_tarief].Enabled = True
        Me.[vrijveld2_totaal].Enabled = True
        Me.[Totaal].Enabled = True
        Me.[Vrijveld1_tekst].Locked = True
    End If
End Sub
En gebruik Me., niet me!
 
Hierbij een voorbeeldje het werkt niet.
De fout bij het formulier kun je door de vinkers zien, deze kun je wegklikken aangezien ik een aantal dingen heb weggehaald privicy.....

Je kunt zien dat bij een vinkje bij vaste prijs een aantal velden grijs worden. Dit werkt niet op het raport.

voorbeeldje link
 
Laatst bewerkt:
Had niet gezien dat het probleem op het rapport zit, en niet op het formulier. Maar zal er even naar kijken...
 
In Access 2003 bestaat het probleem natuurlijk helemaal niet, omdat je in een rapport geen tekstvakken kunt aan- of uitzetten. En keuzelijsten idem dito. Ze geven slechts weer wat er als waarde in staat, verder niks. Je kunt ze wel op basis van waarden bijvoorbeeld een andere kleur geven.
 
Beste,

Dit is de code van mijn VBA raport, dit werkt niet fout 2424.
De fout zit hem bij: Private Sub Report_Open(Cancel As Integer)
ook als ik alles Private Sub Details_Format(Cancel As Integer, FormatCount As Integer) maakt werkt het niet.

Code:
Option Compare Database

Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
If Me.Vervallen_vink = True Then
        Me.Afbeeldingvervallen.Visible = True
    Else
        Me.Afbeeldingvervallen.Visible = False
    End If

End If

End Sub

Private Sub Report_Open(Cancel As Integer)



If Me.[vasteprijs_vink] = True Then
        Me.[Vaste_prijsafspraak].BackColor = red
       
    Else
        Me.[Vaste_prijsafspraak].BackColor = yellow
    End If

End Sub
 
Als ik deze code:
Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)

    If Me.vasteprijs_vink = False Then
        Me.Vaste_prijsafspraak.Visible = True
        Me.vasteprijs_vink.Visible = True
    Else
        Me.Vaste_prijsafspraak.Visible = False
        Me.vasteprijs_vink.Visible = False
    End If

End Sub
test dan werkt het perfect. Weet je zeker dat de veldnamen die je gebruikt in het rapport zitten? In een vorige versie van je rapport (waar ik deze code heb getest) namelijk niet...
 
Hoi,

Nee, want ik werk met een rapport en je vertelde gister dat ik dan met kleuren moet werken omdat vergrendelen niet mogelijk is in een rapport.


vandaar mijn voorbeeld met kleuren, wat niet werkte.

bericht #13 Octafish

In Access 2003 bestaat het probleem natuurlijk helemaal niet, omdat je in een rapport geen tekstvakken kunt aan- of uitzetten. En keuzelijsten idem dito. Ze geven slechts weer wat er als waarde in staat, verder niks. Je kunt ze wel op basis van waarden bijvoorbeeld een andere kleur geven.
 
Laatst bewerkt:
Ah... maar dan was het je nog niet opgevallen, dat je opmaak code alleen bij de gebeurtenis Details_Format kunt zetten, dus waarschijnlijk werkt

Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)

If Me.[vasteprijs_vink] = True Then
        Me.[Vaste_prijsafspraak].BackColor = red
    Else
        Me.[Vaste_prijsafspraak].BackColor = yellow
    End If

End Sub
wel. Ka ik niet testen, want ik heb die velden niet...
 
Nee, ik zie nog steeds iets over het hoofd
Bijgaande het bestand als 2003 bestand.

Bijlage: verwijderd
 
Laatst bewerkt:
Gebruik ipv 'red', vbRed (zo ook voor yellow)

Opmerking:
Gebruik Option Explicit in het declaratiedeel van de formuliermodule (zet het dus onder Option Compare Database). Dan was je deze fout, niet gedefinieerde variabele, meteen tegengekomen!
 
Beste,

Ik heb nu de gebeurtenis bij laden aangepast dan werkt het wel....

Code:
Option Compare Database
Option Explicit

Private Sub Report_Current()

'vasteprijs_vink_Click

End Sub

Private Sub Report_Load()
If Me.vasteprijs_vink = True Then
        Me.[Personeel_totaal].BackColor = vbGreen
    Else
        Me.[Personeel_totaal].BackColor = vbRed
    End If

End Sub

Volgende probleem is dat ik enkel vbblack, vbblue, vbcyan, vbgreen, vbmagenta, vbred, vbwhite en vbyellow gebruiken ik kan dus geen grijs kiezen.
Edit oplossing nummers :D: link

dus gebeurtenis bij aanwijzen werkt niet............ kan iemand mij deze logica uitleggen waarom wel bij laden want bij formulier gebruikte ik altijd bij aanwijzen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan