4 vragen mbt: Communicatie tussen tabellen, Outlook, Navigeren en Bijlage's

Status
Niet open voor verdere reacties.

jaspervdh

Gebruiker
Lid geworden
29 nov 2016
Berichten
53
Hallo,

Ik ben een systeem via access professional plus aan het maken in access 2010 maar loop op een aantal punten vast.

Aller eerst:
Je hebt tabel A
Je hebt tabel B
In Tabel A is een item wat de namen van tabel B heeft
Op het moment dat je dit item veranderd wil ik dat er in Tabel B ook een item veranderd (automatisch) in de record id waar dit gebeurt is.
En op moment dat bij tabel A record 2 6 en 8 dit gedaan hebben
Dat er dan bij Tabel bij in het item 2 6 en 8 komt te staan.
Maar ik heb geen idee hoe ik dit moet instellen.

Ten tweede wil ik een formulier met gegevens maken (toevallig gekoppeld aan Tabel A) En daarbij een kalender toevoegen. Maar op het moment dat je dan het formulier opslaat dit word gesynchroniseerd naar je Outlook Agenda.

Ten derde wil ik nog een knop maken en als je erop drukt dat je terug gaat naar het vorige waar je geweest bent (en dat die het formulier opslaat).
Want ik heb een formulier wat op meerdere manieren te bereiken is maar ik wil niet altijd terug gaan naar dezelfde pagina en vind het niet mooi/overzichtelijk als ik voor elke pagina dat je er kan komen een knop te maken om terug te keren.

En als laatste als ik een bestand koppel aan een Record, waar word deze dan opgeslagen? Of is het meer een snelkoppeling?

Mvg
Jaspervdh
 
Laatst bewerkt:
Allereerst welkom bij HelpMij! Het is nooit echt handig om meerdere vragen in één draadje te stoppen, maar voor deze keer mag het :). Al was het maar omdat ik de vragen eigenlijk niet goed snap, en er dus ook geen antwoord op kan geven.
Ik vermoed dat je tabelA gebruikt als bron voor tabelB, maar dan op de verkeerde manier. Zou je het goed doen, dan had je de vraag namelijk nooit gesteld want dan zou dit probleem nooit voorkomen. Dus graag een voorbeeldje zodat we dat met eigen ogen kunnen wegstrepen!

De tweede vraag kan wel, maar vereist nogal wat programmeerwerk om dat netjes te krijgen. Ik vraag me af of je al in staat bent om zware programmeerklussen uit te voeren?

De derde vraag snap ik ook niet helemaal. Een formulier is weinig anders dan een laagje op een tabel. Records opslaan op een formulier hóeft namelijk helemaal niet! Zodra je naar een volgend record gaat, is de vorige opgeslagen zonder extra handeling.
Maar een formulier dat op meerdere manieren te bereiken is? Ofwel jij bent veel verder als ik, ofwel je pakt het toch niet zo handig aan, want ik heb dat dus nog nooit nodig gehad. Sterker nog: in mijn databases is dat iets dat ik te allen tijde zal proberen te vermijden/voorkomen! Maar in de Access cursus heb ik speciaal een hoofdstuk geweid aan het maken van 'bladwijzers' waarmee je een formulier met een specifiek record kunt openen, dus de techniek heb ik dan wél weer bedacht :).

Je laatste vraag is gelukkig simpel. Je kunt bestanden op twee manieren opslaan in een database. a) in een bijlageveld (nooit doen!) en b) met padverwijzing in een tekstveld. (You guessed it right: altijd doen!). Met FollowHyperlink kun je de bestanden dan openen.

Hopelijk kun je hier weer wat verder mee! Zo niet: een voorbeeld db dat de problemen reproduceert, is altijd welkom!
 
Hallo OctaFish

Vraag 1:
Nee in Tabel A staan mijn projecten en in Tabel B staat de klantendatabase (en in Tabel C een werknemersdatabase maar dat is nu niet van toepassing)
Wat de bedoeling is dat ik bij het project de klant selecteer en dat in de klantendatabase dan een Veld komt met Gekoppelde Projecten en deze automatisch aangepast word.
En ook dat als ik bij bijvoorbeeld project 1 6 en 15 Klant 1 selecteer dat er dan in de klantendatabase 1,6,15 komt te staan.

Vraag 2
Ik ben niet echt instaat om te programeren, hoopte eigenlijk dat er ergens een scriptje was dat ik over kon nemen. Heb het namelijk wel voor elkaar gekregen dat als je op een knop drukt een nieuw bericht verzenden in outlook + het e-mail adres al ingevuld. Dit met een filmpje op youtube.

Vraag 3
Nou, zoals ik al zei gaat het om een project + klanten + werknemers database. En ik heb een basis pagina gemaakt die je krijgt als je de database opstart en daar staat een knop+lijstje dat je naar het goede project kan gaan. Op dit project(formulier) staat weer een knop om naar de gekoppelde klant/werknemer te gaan. (Dat is handig met mail verkeer enzo). Maar op die basis pagina staat ook een knop+lijstje om direct naar de klant te gaan. Daarom kun je op 2 manieren op bij de klant(formulier) kunt komen. En misschien worden het er nog meer omdat er ook nog een factuur systeem bij gaat komen en daar waarschijnlijk ook een knop bij komt om terug te gaan naar die klant. Maar om nu bij de klant 3 knoppen te gaan maken (of meer) vind ik niet mooi/onoverzichtelijk.

Vraag 4
Oh, volgens mij gebruik ik nu dus de bijlageveld. Hoe kan ik een padverwijzing maken? (Dat database gebruikers dus alleen maar hoeven te clicken en toevoegen voor hun bestand (net als bijlagenveld dus alleen zonder dat die alles 1000x opslaat)

En als laatste: Thanks voor het welkom heten :-)
Ps Ik had juist meerdere vragen in 1 topic gesteld omdat ik dacht om nou 4 topics aan te maken... Dat ruikt naar spam vind ik.
 
Laatst bewerkt:
Ok, laten we met vraag 1 beginnen. (of eigenlijk je PS ;) ). De reden dat we graag één topic per vraag zien, is omdat je dan gerichter hulp krijgt. Iemand kan bijvoorbeeld de Outlook code hebben (ik uiteraard ook wel) maar op basis van de titel van je vraag (die behoorlijk nietszeggend is) de vraag overslaan. Zou je een vraag hebben met de titel 'Outlook agenda bijwerken vanuit Access formulier' dan zou die persoon de vraag waarschijnlijk wél zien en willen helpen.

Back to business :).
Wat de bedoeling is dat ik bij het project de klant selecteer en dat in de klantendatabase dan een Veld komt met Gekoppelde Projecten en deze automatisch aangepast word.
En ook dat als ik bij bijvoorbeeld project 1 6 en 15 Klant 1 selecteer dat er dan in de klantendatabase 1,6,15 komt te staan.

Mij lijkt dit een zinloze weg; zelf zou ik kiezen voor een koppeltabel tProjecten_Klanten. In die tabel kun je dan alle specifieke (afwijkende) aspecten per klant apart opslaan. Als je dus 3 klanten aan een project koppelt, krijg je in die tabel 3 records. Het is an sich wel mogelijk om in de tabel tProjecten een multi-waarden veld op te nemen dat je koppelt aan de tabel tKlanten (je hebt het een paar keer over 'klantendatabase', maar je bedoelt waarschijnlijk 'klantentabel') zodat je per project meerdere klanten kunt selecteren, maar dit type veld wijkt zó af van normale velden (en je db is op slag niet meer compatibel met welk database systeem dan ook) dat je dat hier niet voor zou moeten gebruiken. Aparte tabel dus.
Op een projectformulier kun je dan een subformulier zetten dat de gekoppelde klanten laat zien, en op het Klanten formulier een subformulier met gekoppelde projecten.
De reden om in ieder geval in de tabel tKlanten géén projectveld te zetten is natuurlijk dat je per klant meerdere projecten wilt kunnen toevoegen. En dat geldt dus ook voor tProjecten. Vandaar dat een koppeltabel de ideale oplossing is.

Ga je projecten koppelen aan klanten, dan gebruik je daarvoor het project formulier waarin je vanuit een keuzelijst in het gekoppelde Klantenformulier de klanten kiest, bijvoorbeeld. Wil je in één keer meerdere klanten koppelen, dan gebruik je een niet-gebonden formulier waarin je in één keuzelijst een project kiest, en in een andere keuzelijst de gewenste klant(en). Met een knop laat je dan de records aanmaken in de tabel tProjecten_Klanten. De aangemaakte records zie je dan gelijk terug in de formulieren fProjecten en fKlanten in de resp. subformulieren.

Ik snap nog steeds niet helemaal wat je met je Outlook vraag wilt; een project loopt doorgaans een bepaalde periode, en daarvoor gebruik je dan een datumveld. In Access 2010 en verder hebben we nu een DatePicker en geen apart formulier meer. M.b.v. die datepicker selecteer je dan een datum. Maar dan: je hebt dan een project met datums. Wat moet er dan gebeuren? Moet er een nieuwe afspraak worden gemaakt in Outlook op basis van die datums? Dat is niet hetzelfde als synchroniseren overigens...

Vanuit een formulier andere acties doen, of formulieren openen, is niet zo heel lastig. Je formulier fKlanten kun je vanuit het subformulier fProjecten prima openen door het KlantID als filter te gebruiken. Of je daarvoor aparte knoppen moet maken, laat ik aan jou over. Ik doe dat eigenlijk nooit, gebruik liever een dubbelklik of label. Houdt het scherm rustiger. En zo'n 'tussendoortje' doe ik dan meestal in Dialog modus zodat je na het sluiten automatisch weer terugkomt op het vorige formulier. Al was het maar om de workflow intact te houden.

Laatste vraag: een bijlage sla ik dus op in een tekstveld, waarbij het volledige pad + bestandsnaam dan in het veld komt te staan. Althans: als de paden continue veranderen of niet consequent zijn ingedeeld. Als je een vast (start)pad hebt, kun je volstaan met het variabele deel van de bestandsnaam en het vaste deel in een constante zetten bijvoorbeeld. Zo kun je ook simpel een testversie omzetten naar een productieversie op een andere locatie. Ik gebruik bijvoorbeeld een map <Personen>\<PersoonID>\<DossierID> die standaard bij het maken van een nieuw dossier wordt aangemaakt in de vaste map CurrentProject.Path. Als de db wordt verplaatst, hoef ik alleen de map <Personen> + submappen mee te verplaatsen, en alles werkt gewoon door.
Het toevoegen van bestanden doe ik dan met een FilePicker dialog, waarin je ofwel één bestand, ofwel meerdere bestanden tegelijk kunt uploaden naar de doelmap.
 
Vraag 1 & 4 Ik snap wat je zegt, alleen niet hoe ik dit in moet stellen.
Vraag 1 Een extra tabel is wat mij betreft prima, als het in het formulier maar overzichtelijk is. Alleen is het wel meerdere projecten bij een klant, jij beschreef het andersom maar dat is niet zo erg.

Vraag 2
Bij de kalender bedoel ik dit ongeveer:
screen.png
Dit is mijn projecten formulier voor al aangemaakte projecten. (komen dus uploaden van bestanden, notitie blok etc erbij)
En dat er dan rechts een kalender staat. En op moment dat ik in die kalender iets verander dat dat ook automatisch in outlook gebeurt. (die kalender is dus voor elk project gewoon dezelfde maar wel met een weergave)
En dat de Deadline er ook automatisch inkomt (datum van aanmaken & uitwerkdatum hoeven niet)

Vraag 3
Huh? :')
 
Laatst bewerkt:
Er is (helaas) een vraag bij gekomen.

Ben nu met het facturen systeem bezig. En wil dat als ik de klant selecteer in het eerste vak dat in het 2e vak de bedrijfsnaam komt, het 3e vak straat & Huisnummer, 4e vak de postcode en 5e vak de Plaats.

Nu staan deze wel allemaal in de klantenlijst wel in aparte Velden. Maar krijg het niet gekoppeld.
 
Alleen is het wel meerdere projecten bij een klant, jij beschreef het andersom maar dat is niet zo erg.
Niet helemaal goed gelezen:

De aangemaakte records zie je dan gelijk terug in de formulieren fProjecten en fKlanten in de resp. subformulieren.
Bij een juiste invulling zie je in beide formulieren de juiste koppelrecords, maar gespiegeld.

Heb je nu een Outlook object in je formulier gezet? Of staan Outlook en Access naast elkaar open? Moeilijk te zien zo...

Vraag 3: jij gebruikt knoppen; ik dubbelklik acties op een tekstveld (of label). Houdt het scherm rustiger.

Deadlines automatisch berekenen lijkt mij een kwestie van de juiste query maken; is niet veel meer dan een datum optellen met een getal. Simpele berekening, die je dus niet opslaat in je tabel.
Je nieuwe vraag is simpel op te lossen door de klant te zoeken in een keuzelijst met invoervak (heb je al) en de extra velden in die keuzelijst te zetten. Met de formule =cboKlant.Column(#) als Besturingselementbron haal je dan de juiste waarde uit de juiste kolom. Let wel op dat # begint bij 0 als zijnde de eerste kolom. Dus als je de derde kolom uit de keuzelijst in het tekstveld wilt zien, gebruik je de formule =cboKlant.Column(2).
 
Nee ik heb geen Outlook Object in m'n formulier gezet, nja niet in access maar via paint. Kan dat wel dan?

Het gaat er niet om dat de deadline automatisch berekend word, maar automatisch in de outlook kalender komt.

Volgens mij snap ik wat je bedoeld met Vraag 3. Even in elkaar zetten of ik snap of je daadwerkelijk hetzelfde bedoeld.

//123.png
 
Laatst bewerkt:
Dat was niet helemaal wat ik bedoelde, maar als het voor jou werkbaar is, zou je dat zo kunnen maken. Ik heb nog weinig zicht op de workflow die je gebruikt; in mijn systemen open je formulieren met een bepaald doel, als je in een specifiek proces zit dus. Een extra formulier wordt dan geopend vanuit dat proces, en je moet dan bij sluiten terug naar het oorspronkelijke proces. Dat is allemaal goed dicht te zetten en te maken.

Lukraak formulieren openen, en dan ook nog eens vanuit zo'n willekeurig geopend formulier teruggaan naar een ander (willekeurig geopend) formulier is bijna niet te doen. Je moet dan bij elk nieuw te openen formulier het oude formulier verbergen (dus niet sluiten) en dan bij sluiten van het 'tussenformulier' de collectie OpenForms doorlopen om een eerder geopend formulier weer te activeren.
 
Ik heb besloten om het gehele systeem anders te bouwen. Omdat het idd allemaal heel erg omslachtig/onoverzichtelijk/inefficient was.

Maar die kalender zou ik nog steeds graag erbij doen. Maar weet dus niet hoe.
 
En daarmee bedoel je denk ik dat je een item ook exporteert naar Outlook?
 
Dat is inderdaad wel de bedoeling.

Heb nog een vraag, maar daar zal ik morgen even nieuw topic voor openen dan word deze puur voor outlook. Zoals je eerder had aangegeven dat dat beter was.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan