Zoeken in tabel

Status
Niet open voor verdere reacties.
Het doet nog niet helemaal wat het moet doen, maar hier een idee van de richting die je op zou moeten gaan volgens mij. Je kunt al wel jaren toevoegen, maar er zitten nog een paar foutjes in. Dus er wordt nog aan gesleuteld.
 

Bijlagen

  • test.zip
    97,4 KB · Weergaven: 30
Octafish,

Wederom bedankt. Ik ben wel een absolute leek met vba voor acces. De laatste keer dat ik dit heb gebruikt was in 1996 toen ik als docent gedetacheerd zat bij Xerox Copiers. Heb daar destijds de cursistenadministratie m.b.v. acces bijgehouden. in de bijlage die ik toegevoegd had aan mijn vorige bericht was zo maar een probeersel. Dit is voor mij een uitdaging. Ik ben heel blij met jou hulp en ik ga dan ook dadelijk direct jou opzetje uitproberen om te zien hoe een prof het doet. Ik had nog nooit gehoord van intellisense

Groet Albert Kleine
 
zoeken

Octafish,

Of ik zie het verkeerd, maar als ik het voorbeeld open dat jij mij gezonden hebt zie ik geen verschil met het bestand dat ik jou gezonden heb als zogenaamd probeesel
 
En daar heb je helemaal gelijk in, verkeerde map gezipt :). Hier de goede.
 

Bijlagen

  • test.zip
    55,3 KB · Weergaven: 28
zoeken

Octafish,

Bedankt, zo werkt het perfect. Ik ben nu de vba code regel voor regel aan het bestuderen om van jou hulp ook nog iets te leren
 
Helemaal perfect werkt het nog niet, als je dezelfde kostenplaats wilt aanvullen bijvoorbeeld, omdat de termijn verandert, zou hij geen dubbele records mogen maken. Sowieso zou ik in de tabel daar een unieke index van maken (van de velden [Post_ID], [Jaar] en [MaandID] dus) zodat je maar één combinatie kunt invoeren.
 
Octafish,

Bedoel je in bovenstaand bericht een primaire sleutel van dee 3 velden
 
Nee, alleen een Index. Is heel simpel, in Tabelontwerp klik je op de knop Indexen, en dan voeg je een nieuwe indexnaam toe en kies je het eerste veld. Vervolgens ga je naar de regel er onder, en kies je het tweede veld. Je vult geen Indexnaam in! Dat laatste is heel belangrijk! Daarna herhaal je dat voor het derde veld. Als je alle velden hebt gedaan, ga je naar het eerste veld, waar dus de naam staat, en zet je de optie <Uniek> op <Ja>. Daarmee heb je dan een index van 3 (of meer natuurlijk) velden gemaakt.
 
Octafish,

Wederom bedankt. Ik ben op dit moment jou code aan het bestuderen om te leren hoe jij e.e.a. opgelost. Ik heb de documentatie geprint. Ik kan echter nergens in de code vinden welke tabel jij gebruikt en in welke tabel de gegevens worden weggeschreven. Als ik de eigenschappen van het formulier open met tabbald gegevens is het gegeven recordbron leeg.
 
Er wordt in het formulier geen tabel gebruikt, dus dat heb je goed gezien :). Alles gebeurt dus via VBA. De knop <cmdJaarToevoegen> doet dus alles. In de procedure wordt eerst gekeken of de combinatie van jaar, maand en kostenplaats al bestaat (oftwel: zijn er al records voor dat jaar aangemaakt?). Op basis daarvan krijg je de keuze om ofwel een jaar aan te passen, ofwel een jaar toe te voegen. Dat laatste dus alleen als er geen records voor dat jaar zijn. Door deze controle voorkom je dat er dubbele gegevens worden ingevoerd. Het eerste deel (jaar aanpassen) gaat dus nog niet goed, omdat er soms verkeerde maanden worden toegevoegd. Ik heb het ook maar even (te) snel in elkaar geflanst, om je de procedures te laten zien, niet gelijk een compleet werkende oplossing.
Het toevoegen gaat dus wel goed, omdat dat ook een stuk makkelijker is. Dus even samenvattend: de code opent de tabel [prbtabel] met een filter op kostenplaats en jaar. Op basis daarvan wordt bepaald of een nieuw jaar mag worden toegevoegd. Dat gebeurt in een lus die twaalf keer (net zoveel maanden) wordt uitgevoerd. Daarbij wordt op basis van de ingevulde termijn gekeken of in het veld [Bedrag] een termijnbedrag moet worden ingevuld, of de waarde 0.
Zelf zou ik het overigens enigszins anders aanpakken; ik zou alleen de bedragen in laten vullen die groter zijn dan 0, dus als een kostenplaats 4 keer per jaar wordt betaald, dan maak je 4 records aan, geen 12. Maar jouw aanpak mag uiteraard ook.
 
Octafish,

Ik heb nog een foutje ontdekt in de oplossing die jij mij gezonden hebt. Als je aan het invoeren bent en je kiest voor 1 x per kwartaal betalen, vraagt het systeem een maand waarin te beginnen. Als je dan aangeeft Jan dan maakt hij 12 records aan 9 gevulde;Mrt, Jun,Sep en Dec. Voor de overige maanden maakt hij records aan zonder bedrag. Ik krijg het niet opgelost, ook niet na de code bestudeerd te hebben
 
Dat 'foutje' klopt; ik had al aangegeven dat er wat fouten in zitten. Deze is uiteraard wel op te lossen; ik kijk daar nog wel naar als ik wat tijd heb.
 
veld uit formulier wordt niet weggeschreven in tabel

Ik heb de oplossing van Octafish doorgevoerd. Ik heb in het invulformulier 1 veld toegevoegd. (keuzeveld met invoervak. Probleem is: als ik Het formulier gebruik om de database te vullen wordt het veld relatie niet bewaard in de tabel. Ik heb een voorbeeld database bijgevoegd. Wie kan mij helpen
 

Bijlagen

  • test_oplossing.zip
    74,5 KB · Weergaven: 25
Ik heb het systeem wat aangepast, zodat hij nu een stuk beter werkt. Uiteraard slaat hij nu de relatie ook op. Die zat niet in de recordset, dus dan wordt hij ook niet opgeslagen. Ik zit nog met een klein probleemje, dat hij wel goed begint, maar bij de oneven maanden niet de juiste startmaand pakt. Wordt nog aan gewerkt :)
 

Bijlagen

  • test_oplossing.zip
    54,4 KB · Weergaven: 25
Octafish,

Bedankt voor jou oplossing, ik ga die weer bestuderen in de hoop dat ik er iets van op steek. Zo kom ik steeds een stukje verder.

Groet Albert Kleine
 
Octafish,

Er zat een foutje in de code. Het bedrag werd niet weggeschreven in de tabel. In de code stond nog ''!Bedrag=me.bedrag. Ik heb de quotes weggehaald en nu werkt het
 
Na 2 maal proberen met quotjes weg wordt bedrag niet meer opgeslagen
 
Foutje

Octafish,

Ik ben aan het proberen door de code te bestuderen en kijken waar hij wat doet tot de ontdekking gekomen dat het naar mijn mening ergens in de waardes zit van iTermijn en me.fraTermijn. Ik weet echter alleen niet hoe het op te lossen, heb inmiddels al van alles geprobeerd, helaas zonder succes. Vreemd is dat het soms goed gaat.
 
Laatst bewerkt:
Foutje

Octafish,

Op het moment dat ik het formulier open, invul en verlaat, bijbehorende tabel open staat het bedrag keurig ingevuld bij alle maanden. adoe ik deze exercitie nogmaals voor een andere post dan staan de bedragen allemaal op 0(nul) Maak de tabel leeg en kies verv olhgens coor convert en repair. De kans is nu groot dat als ik het formulier weer open, invul verlaat en tabel open dat de bedragen weer ingevuld staan, maar soms ook niet. Ik denk dat er ergens iets fout gaat met een teller
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan