[Access] 1 formulier met 2 tabellen

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

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Ik heb twee tabellen A en B, waarbij er een 1:n-relatie is tussen A en B. Ik wil een formulier maken met een combobox D en E en een aantal velden. In combobox D komen alle records uit tabel A, in combobox E komen alle records uit tabel B die behoren tot tabel A. In de velden komen de waardes van het gekozen record uit tabel B. Ik wilde dit op gaan lossen met behulp van een SQL-statement, maar dit werkt bij mij niet. Hoe moet ik dit oplossen?

Verwijderd

Als je waardes uit meerdere tabellen in een formulier wil weergeven kun je het beste subformulieren gebruiken. Als je dan tussen de records in de hoofdtabel loopt dan verandert ook de subformulier (de tweede tabel dus).

Er is een ingebouwde wizard voor subformulieren en die krijgt de relaties meestal ook wel meteen goed. (met de toolbox)

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Wat is er al wel gelukt ?

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Op dinsdag 19 februari 2002 13:04 schreef Spooky het volgende:
Als je waardes uit meerdere tabellen in een formulier wil weergeven kun je het beste subformulieren gebruiken. Als je dan tussen de records in de hoofdtabel loopt dan verandert ook de subformulier (de tweede tabel dus).

Er is een ingebouwde wizard voor subformulieren en die krijgt de relaties meestal ook wel meteen goed. (met de toolbox)
Dit is iets, wat ik net niet wil. Ik wil alles op een formulier hebben. Een hoofd- en een subformulier ziet er mi erg onprofessioneel uit.

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Op dinsdag 19 februari 2002 13:04 schreef TheRookie het volgende:
Wat is er al wel gelukt ?
Ik heb een SQL-query gemaakt, die de records uit tabel B filtert, waarvoor geldt dat TabelB.veldwaarde = TabelA.Veldwaarde. Ik wilde deze query plaatsen in de propery RowCount van de tweede combobox, maar dit werkt niet.

Verwijderd

Op dinsdag 19 februari 2002 13:13 schreef TweakersOnly het volgende:

[..]

Dit is iets, wat ik net niet wil. Ik wil alles op een formulier hebben. Een hoofd- en een subformulier ziet er mi erg onprofessioneel uit.
Als je de extra format eigenschappen van de subformulier alleemaal uit zet (record selectors, navigatieknoppen, scrollbars, enz) dan lijkt die subformulier echt niet apart te bestaan ofzo, dan past ie netjes bij de hoofdformulier.

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Iemand nog een ander idee? Ik heb de informatie uit het vorige topic gebruikt, maar dan blijf je gebruik maken van een 2 zogenaamde Database-navigators. In mijn eigen form wil ik deze niet in mijn form hebben. Ik wil dat at runtime het juiste record van tabel B wordt gelezen, afhankelijk van de waarde van het gekozen record in tabel A.

  • MIster X
  • Registratie: November 2001
  • Laatst online: 01-01 23:41
Op dinsdag 19 februari 2002 20:21 schreef TweakersOnly het volgende:
Iemand nog een ander idee? Ik heb de informatie uit het vorige topic gebruikt, maar dan blijf je gebruik maken van een 2 zogenaamde Database-navigators. In mijn eigen form wil ik deze niet in mijn form hebben. Ik wil dat at runtime het juiste record van tabel B wordt gelezen, afhankelijk van de waarde van het gekozen record in tabel A.
Ik wil graag herhalen wat hierboven al is gezegd: gebruik een subformulier. Database-navigators kun je uitzetten: selecteer (sub-)form in design-view > Navigation buttons > No. En klaar is TweakersOnly...

Of begrijpen we elkaar verkeerd?

Verwijderd

Als ik het goed begrijp zit hij niet te wachten op een subformulier. Is ook niet nodig.

Je wil:
1. Combo A: keuze maken
2. Combo B: pas keuze maken als in A een keuze is gemaakt. Deze keuze moet van A afhankelijk zijn
3. Velden C t/m X: record tonen wat gekozen is bij B

Je kunt:
1. Combo A vullen met de waarden die je wil, zorg ervoor dat er altijd een waarde instaat!!!!
2. Combo B vullen met alle mogelijke waarden (met als verborgen kolommen de velden die je in C t/m X wil zetten), en een filter zetten in VBA-code waarin Combo A in de voorwaarde staat.
3. De velden C t/m X afhankelijk maken van de onzichtbare Combo B-kolommen.

Waarschuwing:
Deze oplossing is netjes maar kost veel performance!

Disclaimer:
Deze oplossing is nog lang niet uitgekauwd en roept vast veel nieuwe vragen op. :9

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 19:17
Thanx, Ijskoud. Jij bent de eerste, die mijn probleem snapt. Ik heb jouw verhaaltje gelezen over performance-verlies, is dit verschil erg goed merkbaar of valt het wel mee? De database bestaat in totaal uit een stuk of 10 tabellen, maar er zullen in de toekomst hooguit 100/200 entries in de database worden gestopt.

Achter Access zit toch gewoon Visual Basic verstopt of is dit een speciale versie? Met VB kom ik wel uit de voeten denk ik, ik heb genoeg documentatie op mijn werk.

  • DaDaJoker
  • Registratie: Juni 2001
  • Laatst online: 26-01-2025

DaDaJoker

Specs? Zie signature...

DAO != ADO

Specs? Zie ondertitel...


  • DaDaJoker
  • Registratie: Juni 2001
  • Laatst online: 26-01-2025

DaDaJoker

Specs? Zie signature...

In ieder geval:

Bij combobox D bij gebeurtenis "bij wijzigen" een query laten uitvoeren op combobox E (met voldoende verborgen kolommen)waarbij de voorwaarde de waarde uit combobox D is, en dan textboxen ofzo vullen met de waarden uit de desbetreffende kolommen uit de query die net uitgevoerd is (eigenschap text).

Specs? Zie ondertitel...


Verwijderd

VB in Acces heet VBA :)

Gewoon ontwerpweergave, object selecteren, gebeurtenis selecteren, knopje klikken en in kloppen maar! Is standaard in alle versies. Simpel!

(geen tijd voor uitgebreide uitleg, 't is vroeg, /me moet slapen)

Verwijderd

Op woensdag 20 februari 2002 05:08 schreef DaDaJoker het volgende:
DAO != ADO
Goed, filter was niet zo goed gezegd. Requery is inderdaad de oplossing. Zal wel vanuit VBA-code moeten, omdat Access geen betrouwbare resultaten geeft als je een combobox als voorwaarde in een voorgedefinieerde query opneemt.

Verder: met 100/200 entries praten we nergens over.

  • Boss
  • Registratie: September 1999
  • Laatst online: 18:37

Boss

+1 Overgewaardeerd

Wat een onzin dat een subformulier geen professionele oplossing is. Als je je data een betje leuk wilt weergeven met een 1:n relatie, is het echt wel netter dan een of andere query zonder lay-out ofzo.
Bijvoorbeeld: op het scherm staan bedrijfsgegevens, in het subform de contactpersonen bij dat bedrijf. En bij die contactpersonen dan nog wat knopjes om ze een mail/brief/fax te sturen etc.

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.


  • DaDaJoker
  • Registratie: Juni 2001
  • Laatst online: 26-01-2025

DaDaJoker

Specs? Zie signature...

VBA is trouwens Visual Basic for Applications

Specs? Zie ondertitel...


Verwijderd

Op donderdag 21 februari 2002 10:34 schreef Boss het volgende:
Wat een onzin dat een subformulier geen professionele oplossing is. Als je je data een betje leuk wilt weergeven met een 1:n relatie, is het echt wel netter dan een of andere query zonder lay-out ofzo.
Bijvoorbeeld: op het scherm staan bedrijfsgegevens, in het subform de contactpersonen bij dat bedrijf. En bij die contactpersonen dan nog wat knopjes om ze een mail/brief/fax te sturen etc.
Voor wat jij bedoelt heb je gelijk maar ik begrijp dat die gast gewoon 1 record wil tonen, en NEE: dan is een subformulier geen nette oplossing!
Pagina: 1