Knop laten werken

Status
Niet open voor verdere reacties.

jacw

Gebruiker
Lid geworden
23 sep 2006
Berichten
74
Goedenavond,

Ik heb een functieknop gemaakt in een formulier. Die knop voert onderstaande code uit.

Code:
Private Sub cmdafdrukken_Click()
DoCmd.OpenQuery "tabel aanmaken QRYFactuurregels tbv Rapport", acViewNormal, acEdit
DoCmd.OpenReport "Facturen", acViewPreview, , "[Factuurid]=" & [Factuurid]


End Sub

Nu wil ik graag dat die knop alleen bediend kan worden als een ander veld in het formulier een waarde aangeeft. de waarde in dit veld kan zowel een positief als een negatief resultaat hebben. de naam van dit veld is:

"regeltotaal"

ik hoop dat iemand mij op weg kan helpen.

Bij voorbaat dank,

Jac
 
Ik vind je opzet niet geweldig (een tabelmaakquery voor een rapport?) maar wat je wilt kun je nooit bereiken door de code onder deze knop te hangen, omdat de code daaronder immers alleen kan worden uitgevoerd als de knop actief is. En dat wil je nu juist afgedwongen hebben! Ik zou dus een code achter de eigenschap <Na bijwerken> (AfterUpdate) hangen die de knop actief maakt als de juiste waarde is bereikt.
Code:
Private Sub RegelTotaal_AfterUpdate()
     Me.cmdAfdrukken.Enabled = ABS(Me.RegelTotaal.Value) = 100 'Vul hier de gewenste waarde in
End Sub
Zou het moeten doen.
 
Allereerst heel erg bedankt voor je tip, ik heb deze omweg in mijn logica gekozen omdat ik dan de opgeslagen data behoud en als in standaard teksten wil wijzigen dan worden de gemaakte facturen niet veranderd. Zou je graag inzage willen geven in mijn database, echter staan er te veel privé gegevens van klanten in. Mijn kennis van VBA is nul en moet alles voor elkaar krijgen via een query of een samengevoegde tabel.

Jij hebt in je voorbeeld een waarde van 100 gekozen. is er ook een optie dat de waarde niet nul is?
 
... ik heb deze omweg in mijn logica gekozen omdat ik dan de opgeslagen data behoud en als in standaard teksten wil wijzigen dan worden de gemaakte facturen niet veranderd.
En dat is vrij simpel te doen met een QueryDef. Wat ik daarmee doe, is de gefilterde waarden hard in de query van het rapport te zetten. Dus je selecteert op je formulier de gewenste data, en de code zet die hard als criterium in de SQL van de query van het rapport. Zodoende is je rapport niet meer afhankelijk van welke tabel dan ook; de query verandert alleen als je middels je formulier een nieuwe selectie maakt. Deze werkwijze heeft totaal geen destructief (want de grootte wordt niet veranderd) effect op je database.

Jij hebt in je voorbeeld een waarde van 100 gekozen. is er ook een optie dat de waarde niet nul is?
Tuurlijk; ik heb maar wat gedaan. Je kunt elke vergelijking maken die je wilt. =### gebruik je als je filter een specifieke waarde moet hebben, en <>### als je een waarde wilt uitsluiten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan