uit combobox de projecten selecteren en automatisch de contacten zien

Status
Niet open voor verdere reacties.

Jampotje

Gebruiker
Lid geworden
11 aug 2009
Berichten
10
Hoi allemaal, als newbie heb ik een (hopelijk niet te lastig) vraagje ...

Ik zoek er me al verrot op, en heb al zitten knoeien met vb en macro's enzovoort, maar vind het niet. Het lijkt me nogthans heel eenvoudig:

Een tabel met projecten, projectnaam en projectnummer voornamelijk.
Een tabel met contacten, voornaam en achternaam als voornaamste.

Een tussentabel die toelaat n-op-n te combineren, met project_id en contact_id gekoppeld aan elkaar.

Ik maak mbv de wizard een form met als hoofdform de projectnaam en projectnummer, en als subform alle gekoppelde contacten, met voor- en achternaam.

Zeer mooi, maar de eindgebruiker wil een stap verder en wil niet de scrollpijltjes onderaan gebruiken.
Hij wil een combo-box als projectveld, en bij keuze van een project wil hij automatisch het projectnummer en de bijhorende contacten zien verschijnen in het subform.

Is dit mogelijk? want normaal wordt een wijziging van projectnummer aanzien als het wijzigen van een project aan de rest van de openstaande gegevens.

Ik slaag er zelfs niet in om het projectnummer automatisch te laten wijzigen bij het selecteren van een andere projectnaam. Ook niet met de tip van OctaFish in dit topic met iets als me.txtGeboortedatum.Value=Me.cboLid.Column(2) (maar dan met aangepaste velden en zo).

Kan er mij iemand een paar tips geven aub?

Alvast heel erg bedankt!
 
Laatst bewerkt:
Ik zal eens kijken of ik wat meer op jouw situatie toe kan spitsen!

Michel
 
Ik heb de keuzelijst die je wilt gemaakt met de wizard, zonder problemen! Heb er zelfs niks voor hoeven doen dan de wizard doorlopen. Probeer dat dus eerst eens.
Wel alvast een tip: de relaties die je hebt gelegd zijn nog niet juist. Je hebt weliswaar de juiste velden aan elkaar gekoppeld, maar de Refentiële integriteit niet aangevinkt, waardoor de relaties nu waardeloos zijn. (als in: zonder waarde...) Juist de refentiële integriteit zorgt ervoor, dat je een 1-op-veel relatie legt tussen de tabellen, waarbij je dus geen waarden in de veel-tabel kunt invoeren die je niet al hebt in de 1-tabel.
Daarna moet je volgens mij de keuzelijst probleemloos kunnen maken. Zet hem wel in de koptekst van het formulier, en niet in de detailsectie! En kies, bij het maken, de derde optie: Een record in het formulier opzoeken op basis van een waarde die is geselecteerd met de keuzelijst.

Succes!

Michel
 
OctaFish, je bent geniaal :love:
Bedankt!!!

't Was dus veel eenvoudiger dan ik dacht en heb dus nog wat bijgeleerd.

Maar toch nog effe een vraagje: waarom moet die combo box in de header ipv in het detail?
 
Da's eigenlijk heel simpel: de Detailsectie van het formulier is bedoeld om de feitelijke gegevens te laten zien van één record, in het geval van een enkelvoudig formulier. Het formulier zelf is gebaseerd op een gegevensbron met meerdere records.
Zet je een keuzelijst als zoeklijst in de detailsectie, dan kan hij eigenlijk alleen zichzelf opzoeken, want hij krijgt dan maar één record aangeleverd. Staat de keuzelijst in de kop- of voettekst, dan is de totale bron voor de keuzelijst beschikbaar. En werkt-ie dus...

Michel
 
da's duidelijk.

Dus als ik nubij de contacten ook een keuze wil laten maken (in het subform), zet ik gewoon een combo box met daarachter de juiste query in de header, niet in het detail...
 
Het subformulier is een doorlopend formulier, maar je zou dat ook werkend moeten kunnen krijgen. Als je er niet uit komt, dan zien we dat wel weer!

Michel
 
oeps, dat lijkt toch niet te werken ....

Dus in mijn lijst van de contacten wil ik wijzigingen kunnen aanbrengen: toevoegen van contacten of verwijderen of vervangen.
Kan dat dan zonder vb of macro?

edit:
ow nee, nu zie ik zelfs dat een contact toevoegen niet zo maar kan.... er zal wel wat meer nodig zijn dan dat.

Ik kijk morgen wel verder...
 
Laatst bewerkt:
Dat is een heel andere vraag.... Toevoegen of verwijderen doe je met Toevoeg en Verwijderqueries; bijwerken met een Bijwerkquery. Dit soort zaken zou je kunnen doen vanuit aparte formulieren, die je wel kunt aansturen vanuit een subformulier. Maar daar zit wel meer werk aan vast.

Michel
 
ha, da's ook al goed om weten dat het niet zo maar kan.

Dan knoei ik morgen eerst wat met aparte formulieren en roep ik wel als ik weer vast zit.
 
ben er weer mee herbegonnen.
Wat hebben we nu:

Voor het toevoegen van contacten:

Een form met unbound text-vakjes, waar je de gegevens kan invullen.
Onderaan het form een knop "bewaren", die een add-query oproept.

De add-query:
INSERT INTO Contacts ( Voornaam, Achternaam, Aanspreking, Adres )
SELECT forms![contact toevoegen]!txt_Voornaam, forms![contact toevoegen]!txt_Achternaam, forms![contact toevoegen]!txt_Aanspreking, forms![contact toevoegen]!txt_Adres;


Nu ga ik dat ook voor de projecten en de koppeling projecten <-> contacten maken.

En naast een append, ook een update.

Voorlopig geen vragen :cool:
 
Klinkt allemaal prima! :thumb:

Michel
 
Ik vind van mezelf dat ik al een heel eind opgeschoten ben, maar heb opnieuw enkele vraagjes.

Op http://www.nikske.be/PR.rar staat m'n projectje.

Als het project opstart en je drukt op de "toon contacten per project", is m'n startscherm niet leeg. Hoe zou ik dat leeg kunnen krijgen?

Bij het selecteren van een project kan je dus onderaan de gekoppelde contacten zien.
Bij het dubbelklikken op een van de velden zie je een detail van het geselecteerde contact.
In dit nieuwe formulier zie je de gekoppelde ontmoetingen. Bij het dubbelklikken op een ontmoeting ........ gebeurt er niets en wil ik ook detail van de ontmoeting. Ik ga ergens de mist in met m'n datamodel vrees ik.

Wanneer met de knop ernaast een ontmoeting toegevoegd wordt, is die ook niet onmiddellijk zichtbaar in het subform ontmoetingen bij die contactpersoon. Zou dit wel mogelijk zijn?

Dankzij jouw hulp ben ik al een heel eind verder, ik was er bijna, maar heb toch nog wat struikelblokjes. Kan je me nog eens helpen aub?
Ik heb al heel wat bijgeleerd, ondertussen.
De volgende uitdaging hierna is de koppeling van de contacten met outlook (er is heel wat voorhanden zie ik) en het toevoegen van foto's aan de contacten.
En daarna de verwijderquery's en -formulieren!
Maar eerst deze drempeltjes ....


Alvast heel erg bedankt!

(wanneer het projectje helemaal klaar is, wil ik een neutrale versie maken die hier door iedereen gedownload kan worden)
 
Laatst bewerkt:
Allereerst: je bent lekker op weg :thumb:

Nu de vragen die je stelt:
Als het project opstart en je drukt op de "toon contacten per project", is m'n startscherm niet leeg. Hoe zou ik dat leeg kunnen krijgen?

Het formulier [toon contacten per project] is gebaseerd op een tabel. Dat houdt automatisch in, dat je het eerste record van die tabel te zien krijgt in het formulier. Als je dat niet wilt, kun je de recordbron van het formulier leeg maken, dan start hij met een leeg formulier.
Op zichzelf is dat uiteraard niet erg zinvol. Je moet dan, bijvoorbeeld met een keuzelijst in de koptekst van het formulier, een contract kiezen m.b.v. een keuzelijst, waarna je met VBA de recordset aan het formulier kunt toewijzen.
Hiermee zie je dan altijd één record in het formulier, namelijk degene die je hebt gekozen in de keuzelijst.

Wanneer met de knop ernaast een ontmoeting toegevoegd wordt, is die ook niet onmiddellijk zichtbaar in het subform ontmoetingen bij die contactpersoon.
Ook een normaal verschijnsel. Als je een formulier opent, krijg je een relatief statisch overzicht van de records die op dat moment bestaan. Voeg je een record toe, dan herkent het formulier dat niet, omdat dat record simpelweg bij openen nog niet bestond. Je moet dus het subformulier verversen. Dat doe je moet het commando:
Form.[Subformulier].Requery, waarbij Subformulier dan de naam van het formulier is. Deze opdracht plaats je als laatste regel bij de knop waarmee je het record toevoegt. De juiste syntax is een beetje afhankelijk van de rest van het formulier, dus het kan zijn dat het niet gelijk werkt.

Bij het dubbelklikken op een ontmoeting ........ gebeurt er niets en wil ik ook detail van de ontmoeting.
Dat er niks gebeurt als je dubbelklikt op het subformulier is wel weer logisch: er is, als ik zo snel kijk, nergens een actie gekoppeld aan een veld. Dubbelklikken op de waarde in een veld doet dan niks anders dan tekst selecteren.
In het vorige formulier werd met dubbelklikken een macro afgetrapt, die een formulier opent. Je moet dus acties aan tekstvelden hangen, die dat voor je doen. Uiteraard moet het formulier dan wel bestaan, en moet er een gegeven zijn waarop het formulier gefilterd kan worden.

Ik zal wat verbeteringen (proberen) aan te brengen, en zet hem dan weer hier neer!

Michel
 
...
Dat er niks gebeurt als je dubbelklikt op het subformulier is wel weer logisch: er is, als ik zo snel kijk, nergens een actie gekoppeld aan een veld. Dubbelklikken op de waarde in een veld doet dan niks anders dan tekst selecteren.

Op het veld "plaats" staat er wel een macro, ik had die nog niet toegekend aan de andere velden, dat klopt; was ik er vergeten bij te vermelden :o

...

Ik zal wat verbeteringen (proberen) aan te brengen, en zet hem dan weer hier neer!

Michel

:love: :D
 
Ik heb wat aanpassingen gemaakt, waardoor alles nu werkt.
De belangrijkste wijziging: ik heb op alle (sub)formulieren het sleutelveld opgenomen. Deze velden zou ik normaal gesproken verbergen, want je hoeft ze niet te zien, maar voor de duidelijkheid heb ik ze laten staan.
Verder heb ik bij de meeste dubbelklikvelden de macro vervangen door VBA, omdat je dat makkelijker kunt beheren. (vind ik).

Michel
 

Bijlagen

je bent een engel :thumb:

Ik heb er al eens naar gekeken, eens ik uit verlof terug ben probeer ik de wijzigingen over te zetten op mijn - ondertussen verder geëvolueerd - exemplaar.

Heel erg bedankt hoor!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan