Automatische ophoging van een waarde

Bespreek het databaseprogramma
JerryZ
Berichten: 2
Lid geworden op: vr jul 04, 2014 12:47 pm

Automatische ophoging van een waarde

Bericht door JerryZ »

Hallo,

Ik ben sinds een paar daagjes bezig met Openoffice Base, maar ik loop tegen een probleem aan.
Voor een vereniging ben ik bezig met een leden administratie. Ieder lid krijgt een nummer, en het zou makkelijk zijn als dit automatisch opgehoogd word bij het invoeren van een nieuw lid.
(kijkend naar de waarde van het laatste record)
Nou dacht ik dat de auto increment functie van de primairy key hiervoor geschikt was, en dat klopt ook ....... maar toch niet helemaal.
Ik was tijdens het invoeren van een dummy ledenlijst een paar keer de fout in gegaan, en hierdoor loopt die nummering niet meer gelijkmatig op. 1 - 2 - 3 - 5 - 8 - 9 etc
Dus dit is dan ongeschikt om een lid nummer aan te hangen.

Er zal hier ongetwijfeld een oplossing voor zijn, maar ik zoek blijkbaar niet op de juiste termen.
Kan iemand me helpen?

Groeten
Jerry
OpenOffice 4.10 op Windows 7 en Ubuntu
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Automatische ophoging van een waarde

Bericht door RPG »

Hallo

Voor hetgeen je wilt is voor zover ik weet geen gemakkelijke oplossing. Ik accepteren dat de nummering niet zo gelijkmatig oploopt. De primary key is in principe voor de database en niet voor de gebruiker.

Ik kan persoonlijk wel begrijpen dat je het mooi gelijk oplopend wilt hebben maar er is geen reden voor. Wanneer je de teller wilt aanpassen dan moet je de volgende opdracht gebruiken.

Code: Selecteer alles

ALTER TABLE "YourTableName" ALTER COLUMN "YourColumnName" RESTART WITH <restart value>
Deze opdracht kan uitgevoerd worden in de SQL tool.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
JerryZ
Berichten: 2
Lid geworden op: vr jul 04, 2014 12:47 pm

Re: Automatische ophoging van een waarde

Bericht door JerryZ »

Hmja, ik deed het dus idd op deze manier. Maar dan zet je alleen de teller "klaar" op een bepaalde waarde voor de volgende toevoeging.
Maar je snapt dat je je Ledennummers van een vereniging graag in een mooi opeenlopende reeks wil hebben.
Ik heb een paar maanden geleden iets met Mysql gedaan, en daar kan je redelijk makkelijk een record toevoegen , met hierin een waarde die je kan laten afhangen van een query.
Is het bijvoorbeeld wel mogelijk dmv een query op een MAX value in een column het hoogste leden nummer weer te geven op het invul form.
Ik had een query gemaakt, en deze haalde ook de juiste waarde uit de tabel, maar dat deed hij eenmalig. dus er bleef "3" staan. ook al had ik al weer twee records toegevoegd.

Hij zou dus eigenlijk na iedere record-add de waarde moeten verversen.

In elk geval bedankt voor je reactie Romke :super:
OpenOffice 4.10 op Windows 7 en Ubuntu
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Automatische ophoging van een waarde

Bericht door RPG »

Hallo

Formulieren in OOo zijn in principe simpel. Ze geven het resultaat weer van een query. Ik heb geen idee of je dat kunt doen wat je wilt. In OOo wordt onderscheid gemaakt tussen mainform en subforms. Het is wel zo dat je meer mainforms in een enkel document kunt plaatsen.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Automatische ophoging van een waarde

Bericht door RPG »

Hallo

Ik heb er nog even over nagedacht. Ik heb nog steeds geen idee over een oplossing van de feitelijke vraag wel heb ik het idee dat de manier waarop gedacht wordt niet zo in overeenstemming is met de manier hoe openoffice werk. Het is niet alleen de manier hoe OOo werkt maar ook de database engine die gebruikt wordt.

Ik heb het idee dat je in de eerste plaats moet werken aan het voorkomen van verkeerde invoer. Gezien het feit dat OOo normaal gegevens direct weg schrijft zou je een vraag kunnen invoeren direct voor het schrijven. In deze vraag laat je de gebruiker extra kijken en de invoer bevestigen.

Dit is een eenvoudige macro die als antwoord false of true retourneert. De macro moet geactiveerd worden met een event van het data-formulier.

Wanneer je goed bekend met andere talen en programmeren dat is OOo niet een goede keuze om zo iets te doen.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Gebruikersavatar
floris v
Berichten: 2107
Lid geworden op: za apr 11, 2009 3:30 pm
Locatie: Apeldoorn, Nederland

Re: Automatische ophoging van een waarde

Bericht door floris v »

Het is belangrijk hier te bedenken dat AOO Base geen databaseprogramma is maar een soort interface tussen een database en de modules van AOO. Misschien is het te doen om de database op te zetten in mysql en met mysql al het belangrijke onderhoud te doen, en Base alleen te gebruiken als je gegevens netjes wil presenteren.
* AOO 4.1.11 en LibreOffice 7.6.1.2 op Ubuntu 20.x
* Heb je de survival guide voor het forum al gelezen?
Plaats reactie