lock formulier na printen

Status
Niet open voor verdere reacties.

oosthoek

Gebruiker
Lid geworden
7 jan 2013
Berichten
49
Hallo,

Ik ben bezig met een factuurprogramma en vroeg me af het mogelijk is dat na het maken van de factuur er op de knop printen wordt geklikt er een rapport wordt afgedrukt en tegelijk het formulier en subformulier wordt geblokkeerd zodat de factuur niet meer gewijzigd kan worden d.m.v. het formulier. De code voor het afdrukken van een rapport is

Code:
DoCmd.OpenReport "Factuur", acNormal, , "[id]= " & Me.id
DoCmd.Close acReport, "Factuur", acSaveNo

Kan hier nog een stuk(je) code worden toegevoegd dat het formulier (factuur) en subformulier (factuurdetail) blokkeerd. En is het dan nog wel mogelijk als het formulier geblokkeerd is dat er nog afdrukken van gemaakt kunnen worden.

Bij voorbaat dank
 
Deze regel toevoegen:

Code:
    Me.Form.AllowEdits = False
 
Dank voor de snelle reactie Michel, maar dit werkt alleen op het hoofdformulier en niet op het subformulier daarbij als je van hoofdformulier naar het subformulier ga en je wil weer terug naar het hoofdformulier zonder dat er op de knop afdrukken is gedrukt gaat dit niet meer.

Code:
Private Sub Afdrukken_Click()
DoCmd.OpenReport "Factuur", acNormal, , "[id]= " & Me.Id
DoCmd.Close acReport, "Factuur", acSaveNo
Me.AllowEdits = False
Me!factuurdetail.Form.AllowEdits = False
End Sub

Met bovenstaande code wordt ook het subformulier geblokkeerd, maar blijft het probleem dat je niet van het hoofdformulier naar het subformulier kan en andersom zonder dat het gelijk geblokkeerd wordt als je één van de formulieren verlaat zonder dat er op de knop afdrukken is geklikt.
 
Laatst bewerkt:
Ik had de (blijkt nu valse) hoop dat je daar zelf uit kon komen :)
Code:
    Me.Form.AllowEdits = False
    Me.fFactuurregels.AllowEdits = False
 
Ik weet maar heel weinig van Visual basic ben Access aan het leren maar begrijp inmiddels dat die 2 samen gaan.
Maar ik kom er met allowedits niet uit dan blijft het probleem dat als je van het hoofdformulier naar het subformulier gaat en wil weer terug dan kan je niets wijzigen op het hoofdformulier of andersom.
Na dagen zoeken en proberen heb ik het nu zo opgelost

Code:
Private Sub Form_Current()
    If Me.NewRecord Or IsNull(Me.Factuurdatum) Then
        Me.AllowEdits = True
        Me.factuurdetail.Locked = False
    
    Else
        Me.AllowEdits = False
        Me.factuurdetail.Locked = True

      End If

End Sub

Code:
Private Sub Afdrukken_Click()
Me.Factuurdatum = Date
DoCmd.OpenReport "Factuur", acNormal, , "[id]= " & Me.id
DoCmd.Close acReport, "Factuur"
End Sub

Deze oplossing verdient vast niet de schoonheidsprijs maar voldoet redelijk. Ik zou het eigenlijk zo willen maken als de factuur wordt afgedrukt dat je dan een b.v. 2 uur heb om het aan te passen en dat het dan pas geblokkeerd wordt. Als de afdruk is gemaakt kijk je er meestal even na of het klopt en zo niet heb je nog even de tijd om het aan te passen. Maar hiervoor ontbreekt mij op dit moment de kennis van Visual basic dus hoop ik dat iemand het voor kan doen.
 
Laatst bewerkt:
Waar is dit voor nodig?
Code:
DoCmd.Close acForm, "factuur", acSaveNo
DoCmd.OpenForm "factuur"
Je sluit het formulier en opent hem gelijk weer? Lijkt mij wel heel erg overbodig.
Bovendien gebruik je een volkomen nutteloze parameter (acSaveNo) die alleen werkt als je het design van het formulier aanpast, en dat doe je niet. Maar dat openen en sluiten? Beats me...
 
Als het formulier niet wordt afgesloten en geopend werd het niet geblokkeerd was eigenlijk bedoeld om het te testen hier had het rapport voor de print opdracht geopend moeten worden en weer gesloten heb de verkeerde code gekopieerd zal het morgen even aanpassen.
 
Laatst bewerkt:
Dan heb je de code op de verkeerde plekken staan; je kunt/wilt het toch instellen als je de afdrukopdracht hebt gegeven? En dat is nu nèt de plek waar de code zou moeten staan, en niet staat.
 
Sorry Michel had de verkeerde code gekopieerd staar me er al paar dagen blind op nu staat de goede code er.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan