Inhoud

# Gegevens

Op het tabblad Gegevens definieert u de formuliereigenschappen die verwijzen naar de database die aan het formulier is gekoppeld.

De gegevensbron definiëren waarop het formulier moet worden gebaseerd of aangeven welke gegevens door de gebruiker kunnen worden bewerkt. Los van de sorteer- en filterfuncties, worden alle benodigde eigenschappen weergegeven voor het maken van een subformulier.

Om toegang te krijgen tot deze functie..

Open het contextmenu van een geselecteerd formulierelement - kies het tabblad Formuliereigenschappen - Gegevens.

Open de werkbalk Formulierontwerp en klik op het pictogram Formuliereigenschappen tabblad - Gegevens.

## Alleen gegevens toevoegen

Bepaalt of het formulier alleen de toevoeging van nieuwe gegevens toestaat (Ja) of dat het ook andere eigenschappen toestaat (Nee).

Als Alleen gegevens toevoegen is ingesteld op 'Ja', kunt u geen gegevens wijzigen of verwijderen.

## Cyclus

Bepaalt hoe de navigatie moet worden uitgevoerd met de tab-toets. Met de tab-toets kunt u vooruit gaan in het formulier. Als u tegelijkertijd op de Shift-toets drukt, volgt de navigatie de tegenovergestelde richting. Als u het laatste (of het eerste) veld bereikt en nogmaals op de tab-toets drukt, kan dit verschillende effecten hebben. Definieer de toetsbesturing met de volgende opties:

Optie | Betekenis
--- | ---
Standaard | Op basis van deze instelling wordt automatisch een cyclus gedefinieerd die een bestaande databasekoppeling volgt: Als het formulier een databasekoppeling bevat, wordt met de Tabtoets standaard een wijziging geïnitieerd in de volgende of de vorige record wanneer het laatste veld wordt verlaten (zie Alle records). Als er geen databasekoppeling is, wordt het volgende/vorige formulier weergegeven (zie Huidige pagina).
Alle records | Deze optie is alleen van toepassing op databaseformulieren en wordt gebruikt voor het navigeren door alle records. De huidige record wordt gewijzigd als het laatste veld van een formulier wordt verlaten via de Tabtoets.
Actieve record | Deze optie is alleen van toepassing op databaseformulieren en wordt gebruikt voor het navigeren binnen de huidige record. De huidige record wordt gewijzigd als het laatste veld van een formulier wordt verlaten via de Tabtoets.
Huidige pagina | Bij verlaten van het laatste veld van een formulier, springt de cursor naar het eerste veld in het volgende formulier. Dit is standaard voor HTML-formulieren; deze optie is dus bijzonder relevant voor HTML-formulieren.

## Filteren

Voer de vereiste voorwaarden in voor het filteren van de gegevens in het formulier. De filterspecificaties volgen SQL-regels zonder de WHERE-clausule te gebruiken. Als u bijvoorbeeld alle records met de voornaam "Mike" wilt weergeven, typt u in het gegevensveld: Voornaam = 'Mike'. U kunt ook voorwaarden combineren: Voornaam = 'Mike' OF Voornaam = 'Peter'. Alle records die aan een van deze twee voorwaarden voldoen, worden weergegeven.

De filterfunctie is beschikbaar in de gebruikersmodus via de pictogrammen AutoFilter en Standaardfilter op de werkbalk Formuliernavigatie.

## Gegevens toevoegen

Bepaalt of gegevens kunnen worden toegevoegd.

## Gegevens wijzigen

Bepaalt of de gegevens kunnen worden aangepast.

## Gegevensbron

Definieert de gegevensbron waarnaar het formulier moet verwijzen. Als u op de knop ... klikt, roept u het dialoogvenster Open aan, waar u een gegevensbron kunt kiezen.

## Hoofdvelden koppelen

Als u een subformulier maakt, voert u het gegevensveld in van het bovenliggende formulier dat verantwoordelijk is voor de synchronisatie tussen hoofd en subformulier. Om meerdere waardes in te voeren, drukt u op Shift + Enter na elke invoerregel.

Het subformulier is gebaseerd op een SQL-query; meer specifiek, op een Parameter Query. Als een veldnaam wordt ingevoerd in het vak Hoofdvelden koppelen, worden de gegevens in dat veld in het hoofdformulier gelezen naar een variabele die u moet invoeren in Slave-velden koppelen. In een geschikte SQL-instructie wordt deze variabele vergeleken met de tabelgegevens waarnaar het subformulier verwijst. U kunt ook de kolomnaam invoeren in het vak Hoofdvelden koppelen.

Bekijk het volgende voorbeeld:

De databasetabel waarop het formulier wordt gebaseerd, bijvoorbeeld een klantendatabase ("Klanten"), waarin elke klant over een uniek nummer beschikt in een gegevensveld met de naam "Klant_ID". De orders van de klant worden bijgehouden in een andere databasetabel. U wilt nu alle klantorders bekijken nadat deze in het formulier zijn ingevoerd. Hiertoe moet u een subformulier maken. Voer onder Hoofdvelden koppelen het gegevensveld uit de klantendatabase in waarmee de klant wordt aangegeven, het veld KLANT_ID. Voer onder Slave-velden koppelen de naam in van een variabele waarmee de gegevens van het veld KLANT_ID worden geaccepteerd, bijvoorbeeld x.

In het subformulier moeten de juiste gegevens uit de ordertabel ("Orders") voor elke klant of klant ID (Klant_ID -> x) worden weergegeven. Dit is alleen mogelijk als elke order uniek is toegewezen aan één klant in de ordertabel. Als alternatief kunt u een veld gebruiken met de naam "K_ID"; om er zeker van te zijn dat dit veld niet wordt verward met het veld in het hoofdformulier ("Klant_ID").

Nu kunt u eenvoudig de waarde in het veld "K_ID" in de tabel "Orders" vergelijken met de waarde in het veld "Klant_ID" in de tabel "Klanten". U kunt dit bijvoorbeeld doen met behulp van de x-variabele met de volgende SQL-instructie:

SELECT * FROM Orders WHERE K_ID =: x (als in het subformulier alle gegevens uit de ordertabel moeten worden weergegeven)

of:

SELECT Item FROM Orders WHERE K_ID =: x (als u in het subformulier uit de ordertabel alleen de gegevens wil weergeven die zijn opgenomen in het veld "Item")

De SQL-instructie kan worden ingevoerd in het veld Gegevensbron of u kunt een parameterquery maken die u kunt gebruiken om het subformulier te maken.

## Inhoud

Bepaalt de inhoud die voor het formulier moet worden gebruikt. De inhoud kan een bestaande tabel zijn of een query (eerder gemaakt in de database), of kan worden gedefinieerd door een SQL-statement. Voordat u inhoud invoert, moet u het exacte type definiëren in Inhoudstype.

Als u Tabel of Query hebt geselecteerd in Soort inhoud, worden in het vak alle tabellen en query's weergegeven die in de geselecteerde database zijn ingesteld.

## Navigatiebalk

Geeft aan of de navigatiefuncties in de onderste formulierbalk kunnen worden gebruikt.

De optie "Bovenliggende formulier" wordt gebruikt voor subformulieren. Als u deze optie kiest voor een subformulier, kunt u navigeren met behulp van de records van het hoofdformulier als de cursor zich in het subformulier bevindt. Omdat een subformulier is gekoppeld aan het hoofdformulier met een 1:1-verhouding, wordt de navigatie altijd uitgevoerd in het hoofdformulier.

## SQL-opdracht analyseren

Specificeert of de SQL-instructie moet worden geanalyseerd door LibreOffice. Indien ingesteld op Ja, kunt u op de knop ... klikken naast de keuzelijst Inhoud. Dit opent een venster waarin u grafisch een databasequery kunt maken. Wanneer u dat venster sluit, wordt de SQL-instructie voor de gemaakte query ingevoegd in de keuzelijst Inhoud.

## Slave-velden koppelen

Als u een subformulier maakt, voert u de variabele in waar mogelijke waardes uit het bovenliggende formulierveld kunnen worden opgeslagen. Als een subformulier is gebaseerd op een query, voert u de variabele in die u in de vraag. Als u een formulier maakt met een SQL-instructie die is ingevoerd in het veld Gegevensbron, voert u de variabele in die u in de instructie hebt gebruikt. U kunt elke variabelenaam kiezen. Als u meerdere waardes wilt invoeren, drukt u op Shift + Enter.

Als u bijvoorbeeld het databaseveld "Klant_ID" als bovenliggend veld onder Hoofdvelden koppelen hebt opgegeven, kunt u onder Slave-velden koppelen de naam definiëren van de variabele waarin de waardes van het databaseveld "Klant_ID" moeten worden opgeslagen. Als u nu een SQL-instructie in het vak Gegevensbron opgeeft met behulp van deze variabele, worden de relevante waardes in het subformulier weergegeven.

## Soort inhoud

Aangeven of de gegevensbron een bestaande databasetabel of -query is en of het formulier dat moet worden gegenereerd, is gebaseerd op een SQL-instructie.

Als u Tabel of Query kiest, wordt in het formulier verwezen naar de tabel of query die u opgeeft onder Inhoud. Als u een nieuwe query of een subformulier, wilt maken, moet u de optie SQL kiezen. Vervolgens kunt u de instructie voor de SQL-query of het subformulier direct invoeren in het vak Lijstinhoud op het tabblad met eigenschappen voor besturingselementen.

## Sorteren

Specificeert de voorwaarden voor het sorteren van de gegevens in het formulier. De specificatie van de sorteervoorwaarden volgt SQL-regels zonder het gebruik van de ORDER BY-clausule. Als u bijvoorbeeld wilt dat alle records van een database in oplopende volgorde in het ene veld worden gesorteerd en in een ander veld in aflopende volgorde volgorde, voer Voornaam ASC, Naam DESC in (ervan uitgaande dat Voornaam en Naam de namen van de gegevensvelden zijn).

De daarvoor bestemde pictogrammen op de werkbalk Formuliernavigatie kunnen in gebruikersmodus worden gebruikt om te sorteren: Oplopend sorteren, Aflopend sorteren, Sorteren.

## Verwijderen toestaan

Bepaalt of de gegevens kunnen worden verwijderd.

## Wat is een subformulier?

Formulieren worden gemaakt op basis van een databasetabel of databasequery. In formulieren worden de gegevens op grafische wijze weergegeven en kunnen worden gebruikt om nieuwe gegevens in te voeren of bestaande gegevens te bewerken.

Als u een formulier nodig heeft dat kan verwijzen naar de gegevens in een tabel of query en dat bovendien gegevens uit een andere tabel kan weergeven, moet u een subformulier maken. Dit subformulier kan bijvoorbeeld worden een tekstvak dat de gegevens van een andere databasetabel weergeeft.

Een subformulier is een aanvullende component van het hoofdformulier. Het hoofdformulier wordt het 'bovenliggend' formulier of 'master' genoemd. Subformulieren zijn nodig als u toegang wilt tot meerdere tabellen uit een formulier. Voor elke tabel is een eigen subformulier nodig.

Nadat u een formulier hebt gemaakt, kunt u het veranderen in een subformulier. Ga hiervoor naar de ontwerpmodus en open de Formulier-navigator. In de Formulier-navigator sleept u een formulier (dat een subformulier moet worden) op een ander formulier (dat een model zal worden).

De gebruiker van het document kan niet zien of een formulier over subformulieren beschikt. De gebruiker ziet alleen een formulier waarin gegevens zijn ingevoerd of waarin bestaande gegevens worden weergegeven.

Specificeer het hoofdveld voor koppeling bij de gegevensvelden in het hoofdformulier. In het subformulier kan het slave-veld voor koppeling ingesteld worden als een veld dat in overeenstemming gebracht zal worden met de inhoud van het hoofdveld voor koppeling.

Wanneer de gebruiker door de gegevens navigeert, geeft het formulier altijd de huidige gegevensrecord weer. Als er subformulieren gedefinieerd zijn, wordt de inhoud van deze formulieren na een korte vertraging van ongeveer 200 ms weergegeven. U kunt dan snel door de gegevensrecords van het hoofdformulier bladeren. Als u naar de volgende hoofdgegevensrecord gaat binnen de vertragingstijd, worden de gegevens van het subformulier niet opgehaald en weergegeven.