[Access] Subform als navigatie *

Pagina: 1
Acties:
  • 303 views sinds 30-01-2008
  • Reageer

  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Ik wil voor mijn database een Subform als recordnavigatie gebruiken (een lijst met alle openstaande gegevens).
Ik kan een lijst in de subform tonen, ik heb de rest ook al klaar. Ik mis alleen een link tussen bijde. Als ik op de subform klik wil ik dat het hoofdformulier dus meegaat.
Via de link die in Acces zit worden alleen gegevens gefilterd. Deze gaat uit van twee verschillende tabellen. Ik wil deze dus als overzicht gebruiken.

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Daar heb je een beetje VBA voor nodig:
-zorg dat je GEEN koppeling maakt met Access zelf
-maak een public function in je form waar je als argument een ID ofzo aan kan meegeven, en wat zorgt dat dat record opgezocht wordt. Dat kan je maken met behulp van iets van Find...
-Ik neem even aan dat de lijst waar je het over hebt in het subform eigenlijk zelf een continious form is. In dat geval kan je het Forms Current event gebruiken. Wat je in dat event doet is gewoon het opzoeken van het ID, en het aanroepen van de hierboven gemaakte functie: Forms!MyMainForm.MyNavigationFunction(TheID)

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

offtopic:
Is het nu echt zo moeilijk als je hier alleen maar topics ziet met een prefix tussen [square brackets] om dat zelf ook even te doen :Z

Professionele website nodig?


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
curry684 schreef op 15 August 2003 @ 12:15:
offtopic:
Is het nu echt zo moeilijk als je hier alleen maar topics ziet met een prefix tussen [square brackets] om dat zelf ook even te doen :Z
Sorry wist ik niet. Mijn excusus. Ik post eigelijk nooit en kan bijna altijd alles wel vinden door te zoeken. Deze keer is dat anders.

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Bedankt voor de snelle reactie. Ik ben echter niet veel dichter bij de oplossing. Ik heb vroeger in VB6 geprogrameerd maar dat is al weer een poosje terug. Kan iemand mij een kickstart geven hoe deze code er uit moet zien? Is er een site met de codes op een rijtje? Deze code moet dus uitgevoerd worden als er op een record wordt geklikt in het SubForm.

Ik denk dat deze ongeveer zo moet:
Ga in forumier1 naar record(SUBFORMULIER GESELECTEERD ID)

Klopt dit?

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Volgens mij gebruik je het subformulier voor iets waarvoor ie niet gemaakt is.

Normaal gesproken heb je op je hoofdformulier de 1 kant zitten van je query en op het subformulier de veel kant. Maw, je hoeft het hoofdformulier niet mee te laten gaan, enkel het subformulier gaat mee met de selectie in het hoofdformulier, en dat is een standaard Access functie.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Heb jij een andere suggestie om te komen tot een lijst waarin alle gegevens getond worden en waarmee door de records genavigeert kan worden? Ik hoor het graag.

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Maar zo wil hij het dus niet gebruiken... :Z

Wat heb je zelf al geprobeerd? Wat heb je gedaan met mijn suggestie? Heb je de navigatiefunctie al gemaakt? Werkt die ook? Heb je de OnCurrent al gemaakt in je subform?

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
mbooij schreef op 15 August 2003 @ 12:47:
Heb jij een andere suggestie om te komen tot een lijst waarin alle gegevens getond worden en waarmee door de records genavigeert kan worden? Ik hoor het graag.
Een listbox met daarnaast de details op een formulier ?
Maar zo wil hij het dus niet gebruiken... :Z
Boeie. Ik zou mijn pc ook wel als koffiezetapparaat willen gebruiken. Punt is dat ie daarvoor niet gemaakt is, en het dus zonder fundamentele aanpassingen ( of een hoop geknoei ) niet gaat lukken.

[ Voor 31% gewijzigd door farlane op 15-08-2003 12:54 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Zoals ik al eerder vermelde heb ik wat moeite om mijn oude VB6 kennis weer toe te passen. Ik heb jouw suggestie proberen om te toveren in programmeer code maar dit zonder resultaat. De lijst bestaat (als ik een online server had, gisteren gecrashed, had ik een plaatje laten zien). Dit is dus een overzicht van alles wat in de database staat. Er is alleen geen link met het hoofdfomulier. Dit is het enige wat ontbreekt.
Met een stukje VBA code denk ik dat dit op te lossen is. (onClick formulier1.record = subforulier.geselecteerderecord ofzo.)

En ja... als ik dit af heb ga ik eens een plan maken om me PC de modcasen naar een Koffiezetapparaat. Dit soort aanpassingen noemt men ook wel "Tweaks" meervoud van mensen die dat doen: "Tweakers" :)

[ Voor 23% gewijzigd door mbooij op 15-08-2003 12:58 ]

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Misschien dat je het subformulier een event kan laten afvuren, en dat opvangen in je mainform ?

Het mainform updaten vanuit je subformulier kan wel maar is knoeiwerk.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Je moet, zoals ik zei, twee functies maken:

In het hoofdformulier een functie die een ID accepteert (er vanuit gaande dat je records die hebben...), en dat ID vervolgens opzoekt. Zoek op FindFirst om uit te vinden welke functie je moet hebben hiervoor.

In het subform moet je de OnCurrent van het form gebruiken. Daarin roep je de functie hierboven aan met het huidige ID:
Forms!MyMainForm.GoToRecord([RecordID])

Stap 1 is dus het maken van een functie die je kan gebruiken voor je navigatie... Waarschijnlijk heb je aan 1 regel genoeg... Deze kan je vervolgens testen vanuit het immediate window.

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
mbooij schreef op 15 August 2003 @ 12:53:
En ja... als ik dit af heb ga ik eens een plan maken om me PC de modcasen naar een Koffiezetapparaat. Dit soort aanpassingen noemt men ook wel "Tweaks" meervoud van mensen die dat doen: "Tweakers" :)
Vaak werken dit soort dingen niet onder Windows, je hebt daarvoor een Unix OS nodig geloof ik. ;)

Zie ook http://www.randomjoke.com/funny/ncmman.php
In het subform moet je de OnCurrent van het form gebruiken. Daarin roep je de functie hierboven aan met het huidige ID:
Forms!MyMainForm.GoToRecord([RecordID])
Nofi maar dat is dus knoeiwerk. Je roept vanuit een childform een functie aan van je hoofdformulier. Dwz, als ik het subformulier op een ander formulier wil gebruiken zakt het hele ding als een kaartenhuis in elkaar.

[ Voor 41% gewijzigd door farlane op 15-08-2003 13:05 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Ok allemaal naar Linux dus... maar even back-to-topic. ATS Thanks, ik ga het nu proberen.

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

@farlane: waarom zou je een navigatieformulier gebruiken op een formulier wat geen navigatie ondersteund? Sure, je hebt gelijk dat het mooier zou zijn als je Subform een event zou sturen wat je vervolgens kan afvangen in je hoofdform. Helaas: zo werkt Access niet. Tot die tijd zal je het moeten doen met dit soort hacks.

Een mooiere oplossing (die jouw bezwaar wegneemt) is vanuit het hoofdformulier een property zetten op het subformulier met de naam van het hoofdformulier, en dat vervolgens gebruiken om die NavigateTo functie aan te roepen. Kan, maar maakt het voor iemand met een roestige VBA kennis alleen maar nodeloos ingewikkeld.

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

kan het niet met een functie als:

code:
1
2
3
sub detail_onclick(...)
     me.parent.gotorecord me.currentrecord
end sub


Waarbij de syntax niet 100% correct is. Kun je meteen deze navigatiebalk ook in andere formulieren gebruiken
Waarbij de synta

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
ATS schreef op 15 August 2003 @ 13:10:
Een mooiere oplossing (die jouw bezwaar wegneemt) is vanuit het hoofdformulier een property zetten op het subformulier met de naam van het hoofdformulier, en dat vervolgens gebruiken om die NavigateTo functie aan te roepen.
Of iets dergelijks ja, ik zou zelf de instantie van het hoofdformulier meegeven.
Kan, maar maakt het voor iemand met een roestige VBA kennis alleen maar nodeloos ingewikkeld.
HHOS, Mooie gelegenheid om het weer op te halen. :)

FF serieus, alles heeft te maken met de onderhoudbaarheid en overzichtelijkheid van de applicatie.
Als ik een dergelijke constructie zou moeten debuggen omdat er op onverklaarbare wijze 1 keer in de week een runtime error optreedt zou ik heel boos worden op de maker ervan.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Ik vind het raar dat een link tussen de beide formulieren niet als stadaart functionaliteit in Acces zit. In de standaart databases die bij acces worden geleverd zijn ook geen dergelijke links te vinden. Alleen via Query's en dus meerdere tabellen. Nou ja... houd je bezig.

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
PhysicsRules schreef op 15 augustus 2003 @ 13:22:
code:
1
2
3
sub detail_onclick(...)
     me.parent.gotorecord me.currentrecord
end sub
Die code is kapot. Wat als er een parent is die niet "databound" is. ( of zoiets, ik weet ff niet meer wat de access term daarvoor is )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
mbooij schreef op 15 August 2003 @ 13:38:
Ik vind het raar dat een link tussen de beide formulieren niet als stadaart functionaliteit in Acces zit. In de standaart databases die bij acces worden geleverd zijn ook geen dergelijke links te vinden. Alleen via Query's en dus meerdere tabellen. Nou ja... houd je bezig.
Die standaard link is er wel, maar dan wel de andere kant op. ( zoals ik al aangaf ).

Nogmaals, je gebruikt het ding voor iets waarvoor ie niet gemaakt is.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Je zou het dus andersom moeten doen. Zet je navigatie in het hoofdformulier, en de gegevens in de sub. Zo is het ook bedoeld.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
PhysicsRules schreef op 15 August 2003 @ 13:45:
Je zou het dus andersom moeten doen. Zet je navigatie in het hoofdformulier, en de gegevens in de sub. Zo is het ook bedoeld.
Krek.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Aha, oplossing gevonden... geen subformulier maar een doorlopend formulier met in de koptekst de data en in het midden de navigatie! ;-)

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
mbooij schreef op 15 August 2003 @ 14:01:
Aha, oplossing gevonden... geen subformulier maar een doorlopend formulier met in de koptekst de data en in het midden de navigatie! ;-)
Hmz, hier kan ik me eigenlijk niet zoveel bij voorstellen. Maar als het werkt, toppie.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Boss
  • Registratie: September 1999
  • Laatst online: 10:17

Boss

+1 Overgewaardeerd

Dat is wel een hele ranzie optie hoor... Waarom gebruik je niet een list of combobox? Die zijn daarvoor gemaakt. Kan je ook nog meerdere kolommen in kwijt als je wilt. Als je er eentje maakt met de wizard kan je er zelfs al voor kiezen om de listbos als navigatie te gebruiken.

Op die manier kan je hem bijv. ook nog aan de zijkant plaatsen. Dat gaat je met je huidige oplossing niet lukken.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • mbooij
  • Registratie: September 2002
  • Laatst online: 19-08 19:55

mbooij

De Mosselman

Topicstarter
Dit is DE oplossing. En helemaal nix aan code nodig. Zoals Eddy Wallie zou zeggen: GEWELDIG!!! Tnx guys

Intel i5 3570K@4.2Ghz, 2x4GB, MSI Z77A-G45, Club3D Radeon HD 7970 royalKing

Pagina: 1