Los subformulier

  • Onderwerp starter Onderwerp starter Sjoef
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Sjoef

Gebruiker
Lid geworden
12 mei 2009
Berichten
270
Hallo, een schijnbaar simpele vraag maar ik pieker me suf. Ik heb een formulier met documentgegevens. Nu worden er regelmatig wijzigingen aan de documenten gedaan. Deze wijzigingen wil ik in een aparte tabel voor ieder document bijhouden. (1 op veel relatie) Ik wil geen zichtbaar subformulier op het hoofdformulier hebben. Vandaar de titel "los subformulier" Een soort historie dus. Middels een button wil ik het historie formulier openen en dan zien welke wijzigingen er wanneer geweest zijn en eventueel een nieuwe wijziging opvoeren. Wie helpt me op weg?

J
 
Dit voorbeeldje zou je wel een stukkie in de goede richting moeten helpen...
 

Bijlagen

Michel, je bent echt een gigant. Zo snel had ik geen reactie verwacht. Ikga morgenochtend gelijk proberen en laat het nog even weten. Voor zover enorm bedankt.

J
 
Michel, ik heb jouw voorbeeld code bekeken maar zo "ingewikkeld" was niet echt de bedoeling. Wel mooi overigens. Maar het is heel simpel:

Het principe van een subformulier (waar de ID's gelijk gekoppeld worden) maar dan met een "los" formulier dat geopend wordt door een button. Wat ook mag is het subformulier "hidden" maken en als popup laten verschijnen. Misschien dat je nog iets uit je hoge hoed kan toveren?

J
 
Charles, nooit geweten dat je dat via de wizzard kon doen. Maar het is wel de oplossing. Iedereen bedankt voor het meedenken.

J
 
@Sjoef,

Voor jouw beeldvorming, ook de oplossing van Michel is via een wizard te realiseren. Als je bij het aanmaken van een knop maar de juiste opties gebruikt. Moet je ook maar eens proberen. Tijdens het aanmaken van de knop krijg je een optie om een formulier te openen in een specifiek record.
 
En zo is de knop ook inderdaad gemaakt :thumb: De knop die de Historie tabel opent, kijkt naar het ID veld uit de twee tabellen, en zet dat als filter op het tweede formulier.

Ik heb het formulier ondertussen een beetje aangepast; er zat nog wat 'wilde' code in die er niet in thuishoorde. Het mutatieformulier zelf zit iets ingewikkelder in elkaar, zoals je al hebt gezien. In de basis is het echter best wel simpel:
in het linker deel zie je de huidige gegevens staan, en in het rechter deel kun je die muteren. Om een historie bij te kunnen houden, moet je de gewijzigde gegevens kunnen opslaan, en daarom worden de wijzigingen niet gelijk in de brontabel doorgevoerd. In plaats daarvan wordt dus een knop gebruikt, die de gegevens in de brontabel bijwerkt, en de gewijzigde velden uitleest en opslaat in de Historietabel. Er worden dus op de achtergrond twee handelingen uitgevoerd.
Kijk maar eens of je snapt wat er gebeurt...
 
Laatst bewerkt:
Heren, het ligt absoluut aan mij maar ik krijg het nog steeds niet goed werkend. Als ik met de wizard een koppeling maak, en ik open dan het historie formulier vanuit het Main formulier om iets in te vullen, dan wordt het ID niet meegenomen. Ook de specifieke wizard voor de knop op de manier van Michel kan ik niet vinden. Misschien een laatste schopje?????:P

J

PS Kan het iest te maken hebben met een verkeerd relatie in het relatiescherm?
 
Op zich hoef je geen relaties te hebben gelegd tussen de tabellen, al is het uiteraard wel beter om dat wel te doen. Hierbij de schermpjes voor de knop.
 
Op zich hoef je geen relaties te hebben gelegd tussen de tabellen

Als je met de Wizard wilt werken moet dat wel. Leg een relatie tussen de Id velden in beide tabellen en je kunt het met de Wizard voltooien.

Weliswaar heb je een probleem met het leggen van de relaties, want er staan in de historie tabel 2 records de het maken van een relatie in de weg staan. Het zijn de 2 records met een FK 0 en de bestaat niet in tabel tTestnaam. Je krijgt dus een fout als je een referentiële integriteit wilt afdwingen. Maak dus van de FK (Id in de historie tabel) 0 een 1 of een 2. Of leg een relatie zonder referentiële integriteit.

In de bijlage heb ik het zo aangepast dat je wel kunt werken met de wizard.
 

Bijlagen

Laatst bewerkt:
Heren, ik heb op dit moment evengeen tijd om het uit te testen. Waarschijnlijk vanavond pas. Ik laat nog wat van me horen.

J
 
Heren, het werkt nog steeds niet zoals ik wil. Als ik gegevens heb ingevoerd veranderen er aan deze gegeven niets. (dus de bron tabel) En als er iets wijzigd wordt dan hoef ik daar de historie niet van te bewaren. Waar ik de historie van bij wil houden is als er iets aan de producten is gewijzigd. Stel ik heb een tabel met documenten. Nu is er een wijziging geweest in het document (een alinea weggehaald oid) Nu wil ik die wijziging bijhouden via een gekoppeld formulier. Dus het historie scherm openen en dan in een memoveld zeggen dat de alinea is weggehaald. Bij een volgende wijziging aan het document (bijv een voettekst geplaatst) weer via het historie scherm een nieuw record toevoegen met in het memoveld weer de wijziging. Dus eigenlijk wat er in de tabel zelf mogelijk is. Als er een relatie gemaakt is zie je voor het recordnummer een kruisje. Als je hier op klikt zie je de data uit de gekoppelde tabel of kun je data toevoegen. Dat principe, alleen vertaald naar een formulier.

JoZ
 
Aangezien je onze voorbeelden niet aan de praat krjgt, lijkt het mij handig als je zelf een voorbeeldje post, waar we dan naar kunnen kijken. Dan wel de gevoelige informatie er uithalen, de db <Comprimeren en Herstellen> en zippen, zodat het bestand klein genoeg is om (al dan niet in delen) te posten.
Oh ja, ook nog in 2003 format ;)
 
Heren, ik heb het opgelost door het recordnummer middels een toevoegenbutton af te handelen. Dank voor het meedenken.

JoZ
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan