inhoud van subformulier wisselen

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

RB85

Gebruiker
Lid geworden
4 jun 2010
Berichten
55
Hallo,

Ik ben sinds een tijdje bezig met een tool in Access en loop tegen een probleem aan met het linken van een Subformulier. De situatie is als volgt.

Ik heb een Mainformulier (Frm_Main). Op dit formulier heb ik een subformulier (Sub_Nieuw) en een aantal tekstboxes (LinkComm) tbv het leggen van links. Sub_Nieuw heeft standaard een formulier geopend. Op het formulier in Sub_Nieuw staat een knop. Met deze knop wil ik de inhoud van Sub_Nieuw veranderen door een ander formulier te openen. De inhoud van dit formulier moet wel gekoppeld worden aan de inhoud van het vorige subformulier. Dit heb ik voor elkaar gekregen door de primaire sleutel te kopieeren naar de tekstbox LinkComm. Vervolgens gebruik ik deze link als volgt:

Code:
Private Sub buttonVolgende_Click()
On Error GoTo Err_buttonVolgende_Click
    Forms!Frm_Main!LinkComm = ID_klant
    
    Forms!Frm_Main!Sub_Nieuw.LinkMasterFields = "LinkComm"
    Forms!Frm_Main!Sub_Nieuw.LinkChildFields = "ID_klant"
    
    Forms!Frm_Main!Sub_Nieuw.SourceObject = "Tbl_Plant"
        
Exit_buttonVolgende_Click:
    Exit Sub

Err_buttonVolgende_Click:
    MsgBox Err.Description
    Resume Exit_buttonVolgende_Click
End Sub

Deze code heeft gewekt, maar sinds kort krijg ik de volgende melding.

"Deze expressie is niet correct getypt of te complez voor evaluatie. Een numerieke expressie kan bijvoorbeeld te veel gecompliceerde elementen bevatten. Probeer de expressie te vereenvoudigen door verschillende delen van de expressie toe te wijzen aan variabelen."

Heeft iemand een idee waar de fout zit? Heb vanalles geprobeerd maar ik kom er zelf niet uit. Alvast bedankt.

2ci91j9.jpg
 
Ik vind de manier waarop je de waarden overhaalt niet helemaal waterdicht.
Forms!Frm_Main!Sub_Nieuw.LinkChildFields = "ID_klant"
bijvoorbeeld doet verder niks met de gegevenstype van het veld. Dus in beginsel behandel je alles als tekst. Maar als het heeft gewerkt, is daar op zich niks mis mee. De reden dat het nu niet meer werkt, ligt dan ook denk ik niet zozeer in de constructie, maar meer in de onderliggende gegevensbronnen. Kan het zijn dat er een waarde in de tabel staat die niet (meer) correct is? En kun je eventueel een db posten waarin we het probleem kunnen reproduceren? Want dit kijkt toch wat makkelijker bij dit soort problemen.
 
Bedankt voor de snelle reactie. De manier waarop alles in elkaar zit kan inderdaad misschien wel af en toe een beetje lekken. Ik ben nog geen expert in Access en probeer met behulp van Internet en wat logisch denken deze tool in elkaar te zetten. Maar de waarden zijn eigenlijk niet veranderd. Ik zal een kopie aan dit bericht toevoegen van de tool tot nu toe.

Om de een of andere rede kan ik hier niet makkelijk een item toevoegen dus maar even via MegaUpload.. Wanneer dit een probleem is hoor ik het graag..

http://www.megaupload.com/?d=V1Z9ZRR3
 
Download lukt prima! Zal er vanavond een blik op werpen... (toch geen voetbal ;) )
 
Goed plan, ware het niet dat het bestand nu niet meer is te downloaden...
 
Hij is inmiddels gedownload, maar ik snap niet precies wat je wilt. Om te beginnen krijg ik een andere melding (De bewerking is geannuleerd), maar verder kan ik wel records aanmaken in het subformulier. Maar wat wil je precies doen met het formulier? En welk formulier wil je openen vanuit het subformulier?
 
Hij is inmiddels gedownload, maar ik snap niet precies wat je wilt. Om te beginnen krijg ik een andere melding (De bewerking is geannuleerd), maar verder kan ik wel records aanmaken in het subformulier. Maar wat wil je precies doen met het formulier? En welk formulier wil je openen vanuit het subformulier?

Sorry voor de late reactie maar heb gisteren niet meer achter mijn PC gezeten.

Ik wil hetvolgende:

Ik heb een tabel met daarin Klanten. Iedere klant heeft vervolgens een of meerdere Plants. Een plant bestaat weer uit meerdere Area's, een Area's uit meerdere Units enz.

De bedoeling is dat ik als eerste het subformulier voor het bewerken of toevoegen van een klant (Tbl_Klant). Daar selecteer ik een klant en zodra ik op de knop Volgende druk schrijf ik het ID_Klant weg in een tijdelijke tekstbox en open ik Tbl_Plant in het zelfde subformulier met een filter zodat alleen de plants van de geselecteerde klant zichtbaar zijn en eventueel een nieuwe kan worden toegevoegd. Op deze manier wil ik het rijtje aflopen van Klant -> Plant -> Area -> Unit -> Equipment welke allemaal een 1 op veel relatie hebben.

De melding "De bewerking is geannuleerd" is mij ook totaal niet duidelijk. Ook dit is een melding die ik voorheen niet had.. Het lijkt ook wel dat hij de eerste keer die melding geeft, maar na een aantal pogingen steeds minder ver door de code komt.

Ik hoop dat het een beetje duidelijk is wat ik probeer te vertellen..
 
Laatst bewerkt:
Ik zal het even laten bezinken, en laten inwerken, en er dan nog eens naar kijken...
 
Je hebt je hoofdformulier gebaseerd op de tabel tbl_Comm. Wat is hier de gedachte achter?
 
Je hebt je hoofdformulier gebaseerd op de tabel tbl_Comm. Wat is hier de gedachte achter?

Doe ik op dit moment nog niet veel mee, bedoeling is om dadelijk de velden LinkComm die ik gebruik voor communicatie weg te schrijven in een tabel zodat ik die waardes ook op andere plekken kan gebruiken en eventueel beter kan bewaren. Op dit moment niet meer dan een of andere gedachtekronkel..
 
Nog gekke dingen tegen gekomen? Of kan ik dit deel beter opnieuw maken denk je?
 
Ik ben er nog niet helemaal uit wat nu wijsheid is....
Wat is overigens de gedachte uit de knop met de tekst <Volgende>, en de knop <Volgende>?
 
De knop met de tekst <Volgende> gebruik ik om de inhoud van het formulier te wisselen. De knop op het formulier Frm_Klant zorgt er dus voor dat het subformulier Frm_Plant geopent wordt met het juiste toegepaste filter
 
Ik ben nog een aantal dingen uit aan het proberen. Misschien dat ik ook op een andere manier kan bereiken wat ik wil, namelijk door de Recordbron van het volgende formulier aan te passen. In plaats van het formulier te maken op basis van alleen de tabel met de Plantgegevens kies ik een query waar ik het veld LinkComm in mee neem zodat hij alleen de juiste records filtert. Echter heb ik nu een probleem. Als ik een nieuwe record aanmaak koppelt hij deze niet meer automatisch aan de van de voren geselecteerde klant. Enig idee hoe ik de ID_klant in de Tbl_Plant automatisch kan invullen zodra een nieuwe record wordt ingevuld?
 
weer een stapje dichterbij

Ik ben weer een stapje dichterbij. Ik heb de code

Code:
    Forms!Frm_Main!LinkComm = ID_klant
    
    Forms!Frm_Main!Sub_Nieuw.LinkMasterFields = "LinkComm"
    Forms!Frm_Main!Sub_Nieuw.LinkChildFields = "ID_klant"
    
    Forms!Frm_Main!Sub_Nieuw.SourceObject = "Tbl_Plant"

vervangen door

Code:
    Forms!Frm_Main!LinkComm = ID_klant
    
    Forms!Frm_Main!Sub_Nieuw.LinkMasterFields = "Forms!Frm_Main!LinkComm"
    Forms!Frm_Main!Sub_Nieuw.LinkChildFields = "ID_klant"
    
    Forms!Frm_Main!Sub_Nieuw.SourceObject = "Tbl_Plant"

Ik kan nu weer door records heen bladeren en filter werkt weer. Ik kan ook weer records toevoegen die meteen gelinkt worden aan de juiste klanten en dergelijke. Alles werkt dus weer zoals het voorheen deed..

Hartelijk dank voor alle moeite en hulp in ieder geval :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan