subform data

Status
Niet open voor verdere reacties.

SchreuderSMC

Gebruiker
Lid geworden
13 mrt 2014
Berichten
31
Hallo,

Ik heb, denk ik, een hele simpele vraag, maar mijn hoofd zit vast en ik kom er niet meer uit :D

Ik heb een formulier, formulier X;
In formulier X zit een subform, genaamd Y;

In subform, met daarin 3 columns die komen uit TABEL A.

Wel te verstaan ID, categorie NL, categorie ENG.

Ik wil graag dat ik wanneer ik in de dropdown van column ID een nummer kies, dat dan categorie NL en categorie ENG direct de daarbij behorende waardes laat zien.



EDIT: in de 2e en 3e column moet dan iets ( ik ken geen mysql shizzle ) if column ID is selected, display corresponding values in column Category NL en catergory ENG

Ben ik er bijna of ga ik nu helemaal verkeerd ? Thanks alvast
 
Laatst bewerkt:
... ik ken geen mysql shizzle ...
Is dat de Nederlandse inzending voor het volgende Songfestival? Ik ken die band niet :).
Maar zonder gekheid: ik weet niet precies wat je subformulier moet doen, maar geweldig ziet het er niet uit. In je tabel [Categorie] heb je blijkbaar een veld [categorie NL] een veld [categorie ENG] en veld [ID]. Dat subformulier zou normaal gesproken gekoppeld moeten zijn aan een veld op je hoofdformulier, maar daar lijkt hier geen sprake van. Maar waarom zet je drie velden uit tabel [Categorie] op het subformulier? Een is namelijk al genoeg! En dat is dan de keuzelijst die het ID veld ophaalt. Wil je daarnaast ook de velden [categorie NL] en [categorie ENG] op je subformulier zien, dan neem je die velden mee in de Rijbron van de keuzelijst (als kolommen 2 en 3) en dan maak je 2 niet-afhankelijke velden op je subformulier die dan de formule =cboCategorie.Column(#) als Besturingselementbron krijgen. Dat wordt dan resp. =cboCategorie.Column(1) voor [categorie NL] en =cboCategorie.Column(2) voor [categorie ENG].
En ik ga nu nog even googlen op de band 'mysql shizzle' :)
 
Hoi Octafish. Het subformulier is ook gekoppeld ( maar vond ik niet belangrijk om te melden, dom ? ). Het is gekoppeld via 'bestelnummer'. Ik ben redelijk noob op dit gebied nog, maar vindt het reuze interessant. Wat bedoel je met =cboCategorie.Column(1) etc ?

Hoe zou ik dat moeten zien / aanmaken ? PS. de band is nog vrij underground, zal je niet vinden :D
 
Dom is het pas als je moedwillig iets niet vermeld dat belangrijk is voor je vraag, en je weet dat zelf :). In jouw geval dus eerder onwetendheid. Maakt niet uit, want we zijn nu een stuk verder. Je subformulier is dus niet gebaseerd op de tabel met de categorieën, maar op een tabel Bestelregels, die is gekoppeld aan de tabel Bestellingen (ik verzin maar wat tabelnamen). Je wilt dus een nieuw artikel invullen o.i.d. en daar een categorie bij kiezen en daarvoor heb je een tabel Categorie gemaakt, en nu wil je, als je een categorie kist, dat de EN en NL vertalingen ook in het subformulier te zien zijn. Vertaal ik het zo goed?
 
100%

En hier, meer voor mezelf, nog een verduidelijking:

.."en nu wil je, als je een categorie kist, dat de EN en NL vertalingen ook in het subformulier te zien zijn."

Ja, als ik een Nederlandse Categorie selecteer in column 2 dat ie dan ook gelijk de engelse vertaling ernaast zet in column 3. ( die staan naast elkaar in de tabel 'categorieen' met alleen een unieke ID uiteraard )
 
Nu ben ik je toch weer een beetje kwijt :). Je gebruikt een keuzelijst om de categorie te selecteren. Die haal je uit een tabel. In die tabel staan de EN en NL omschrijvingen. Ergo: als je het ID ophaalt met de keuzelijst, weet je ook de vertalingen. En dat is de techniek die in ik bericht #2 beschrijf: neem alle velden op in de query van de keuzelijst, en verwijs er naar in de niet-gekoppelde tekstvelden met formules (=cboCategoie.Column(#) ). In de tabel Bestelregels heb je namelijk alleen het ArtikelID nodig. Alternatief is dat je in het subformulier de tabel Bestelregels koppelt aan Categorie, en als je dan een waarde kiest in de keuzelijst, wordt de rest vanzelf ingevuld. Ben je er ook.
 
Dan geef ik hetzelfde antwoord :).
 
Hoi Octafish.

Ik denk dat ik er in mijn hoofd bijna ben. Maar ik kan het nog net niet begrijpen. Ik ben een beginneling en ondanks een paar video cursussen op lynda.com kan ik jou uitleg nog net niet direct toepassen.

Kan je het nog simpeler uitleggen of tekenen ? :) Ik weet dat ik veel vraag.
 
Lynda is, hoewel erg goed, Engelstalig en dat kan een extra moeilijkheidsfactor zijn. Kijk eens in de Handleidingen sectie en zoek de Access cursus op, daar staat het allemaal uitgelegd. Ik hou het hier dus kort.
Je hebt dus een tabel [Categorie] met de velden [CatID], [categorie NL] en [categorie ENG]. [CatID] is het sleutelveld, dus als je [CatID] opzoekt weet je de waarden van [categorie NL] en [categorie ENG]. In je subformulier sla je een Bestelnummer op, en een waarde [CatID]. [Categorie NL] zoek je op met een keuzelijst die is gebaseerd op de tabel [Categorie]. Die keuzelijst bevat in ieder geval de velden [CatID], [categorie NL] en [categorie ENG], want die waarden wil je zien in je subformulier. Als je in de query van het subformulier die velden hebt neergezet in dezelfde volgorde, dan bevat je keuzelijst dus 3 kolommen, waarvan je de <kolomBreedten> dan instelt op (bijvoorbeeld) 0cm;4cm;0cm. Je ziet dus alleen de kolom [categorie NL], maar de andere 2 zijn wel op te vragen. Dat doe je met de formule die ik eerder heb aangegeven. Je maakt daarvoor 2 niet-gebonden tekstvakken (die zijn dus níet gekoppeld aan een tabelveld) en die krijgen als besturingselementbron resp. de formule:
=cboCategorie.Column(0) voor [CatID] en =cboCategorie.Column(2) voor [categorie ENG].
Het resultaat is nu, dat als je een categorie kiest in de keuzelijst, de andere 2 velden netjes gevuld worden. In je tabel sla je alleen [CatID] op, want dat is het sleutelveld uit de tabel Categorie.

De tweede variant is zelfs nog simpeler, want die regels alles al in de query die je gebruikt voor het subformulier. Daarvoor moet je de tabel Categorie dus wél opnemen in de query van dat subformulier, want je moet uit die tabel de velden [categorie NL] en [categorie ENG] toevoegen. Het veld [CatID] zit als het goed is al in de tabel die je nu voor het subformulier gebruikt, en die kan dus blijven staan. In je formulier kun je nu de tekstvelden uit de query gebruiken, en een Keuzelijst voor het veld [CatID]. Deze variant is wel ietsje minder praktisch (vind ik) omdat je nu in beginsel in staat bent om de categorieën tekstueel aan te passen. Je gebruikt nu namelijk een tabelveld, en als je dat muteert, dan verander je dus de tabel. Lijkt mij niet erg nuttig. Dus ik gebruik meestal de eerste variant. Daar kan de gebruiker niks in slopen.
 
Beste Octafish,

Klopt het dat als ik meerdere categorieen wil koppelen aan een bestelnummer dat het op uw manier niet kan ?

EDIT: Ik ben dus al vanaf 08:00 bezig en het lukt me niet. Ik heb hier nog 2 printscreens. Ik wil dus de nederlandse categorie selecteren en dat dan de engelse categorie automatisch daarnaast verschijnt.1.jpg2.jpg
 
Laatst bewerkt:
Je eerste vraag: nee, dat klopt niet wat je stelt. Je kunt best meerdere categorieën koppelen mits Bestelnummer natuurlijk niet een unieke index heeft, want dan gaat het inderdaad niet.
Je tweede (en echte) probleem kan ik verder niet zo oplossen, daar heb ik de db voor nodig. Ik heb alle code die je nodig hebt gegeven, en als je daar niet mee uit de voeten kunt, dan zul je echt de db mee moeten sturen, niet alleen plaatjes.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan