Onderscheid maken BeforeUpdate voor bestaande en nieuwe records

Status
Niet open voor verdere reacties.

john64

Gebruiker
Lid geworden
12 jun 2011
Berichten
268
Goedemiddag,

Ik heb 2 vragen over toevoegen van records in subformulier
1. Kan ik met een knop op hoofdformulier toestaan dat er records in het subformulier worden gewijzigd dan wel toegevoegd ? Ik heb het geprobeerd met
Code:
Private Sub cmdHercertificatie_Click()
    Forms.fsubDiploma_DatumCertificatie.AllowAdditions = True
    ' MsgBox "Nog niet geïmplementeerd.", vbInformation, "Diploma certificering"

End Sub
maar dat werkt niet (foutmelding 438 tijdens uitvoering: Deze eigenschap wordt niet ondersteund door dit object)

2. Omdat vraag 1 voor mij nog niet is opgelost, heb ik voorlopig de eigenschap Toevoegingen en Bewerken standaard op ja gezet.
Wat ik wil is als bestaande records worden gewijzigd in subformulier dat er een vraag komt of dit de bedoeling is. Dit lukt wel dmv van een juiste msgbox. Er moeten nog wel een aantal checks worden uitgevoerd, maar daar kom ik wel uit.
Deze zelfde msgbox komt ook tevoorschijn als ik een nieuw record toevoeg; dat is niet de bedoeling. Ik moet wel de controles uitvoeren maar dus zonder msgbox.
Hoe kan ik dit oplossen ?


mvg
John
 
Laatst bewerkt:
Je denkt te lastig:
Code:
Private Sub cmdHercertificatie_Click()
    Me.AllowAdditions = True
End Sub
 
Als fsubDiploma_DatumCertificatie het subformulier is, dan is de correcte code
Me!fsubDiploma_DatumCertificatie.Form.AllowAdditions=true.
In dit geval moet je expliciet aangeven dat je met een subformulier werkt door de extra verwijzing Form. Dat hoeft echter niet altijd b.v. bij een requery van het subformulier of bij een verwijzing naar object op het subformulier
 
Hallo Michel,
Als ik het met Me.AllowAdditions = True doe, dan wordt alleen het hoofdformulier veranderd, hier kan ik ineens records aan toevoegen, en dat is niet de bedoeling. Het subformulier blijft "op slot"

Harry,

Als ik dat op die manier doe krijg ik een compileerfout: Kan de methode of het gegevenslid niet vinden
In de code "Me.fsubDiploma_DatumCertificatie.Form.AllowAdditions = True" is dan ".fsubDiploma_DatumCertificatie" gearceerd.

Zijn er ook oplossingen voor mijn vraag 2 ?
Alvast bedankt voor het meedenken.

mvg
John
 
Laatst bewerkt:
Ik had ook meer zoiets gedaan...
Code:
Forms![fDiploma]![fsubDiploma_DatumCertificatie].Form.AllowAdditions =True
 
Door deze aanpassing krijg ik fout 2465 tijdens uitvoering: Door de toepassing of door object gedefinieerde fout
 
Met If Me.NewRecord = True Then kun je checken of je op een nieuw record staat of niet. Je zult de code nog wel moeten aanpassen voor een subformulier, op dezelfde manier als je AllowAdditions instelt.
 
Ik heb je code voor allowadditions aangepast door ook blokhaken rond hoofdformuliernaam en subformuliernaam te zetten. Ik krijg nu zelfde fout 2465 melding, maar andere tekst: Kan het veld fsubDiploma_DatumCertificatie niet vinden waarnaar wordt verwezen in de expressie.
Ik heb een copy/paste gedaan van de naam van subformulier, dus het is wel goed gespeld.
 
In
Me!fsubDiploma_DatumCertificatie.Form.AllowAdditions=true
moet
fsubDiploma_DatumCertificatie
de naam zijn van subformulier object in het hoofdformulier, en die naam is in de regel anders dan de naam van het (sub)formulier in het navigatievenster
 
Als je een formulier als subformulier toevoegt aan een formulier, is de naam van het formulierobject meestal gelijk aan aan de formuliernaam. Zo niet, gebruik dan de naam van het Object, en niet die van het formulier, want Access gebruikt niet de formuliernaam, maar de objectnaam.
Code:
Forms![Orders]![OrdersSubform].Form.AllowAdditions = Not Forms![Orders]![OrdersSubform].Form.AllowAdditions
 
Harry en Michel,

Ik heb de voorgestelde aanpassingen gedaan en alles werkt !!!
Ik kan nu wijzigingen pas doorvoeren in het subformulier als ik op een knop in hoofdformulier heb geklikt.
Verder krijg ik alleen een melding "Zeker weten? " als het een bestaand record is die gewijzigd wordt.
Controles worden altijd uitgevoerd, zowel bij wijzigen als bij toevoegen.

Wederom bedankt allebei.

mvg
John
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan