1 veldwaarde gebruiken in diverse rapporten

Status
Niet open voor verdere reacties.

AdvB

Gebruiker
Lid geworden
1 jul 2021
Berichten
48
Ik maak een aantal prijslijsten.
die prijslijsten moeten vanuit de ISO verplicht een versienummer vermeld krijgen.
ik wil het liefst dat niet hard opnemen in layout maar met een "variabele" die door gebruiker zelf aan te passen is.

Ik weet echter niet hoe.
ik dacht zelf formulier (zonder toevoeg, verwijdermogelijkheid van records) met daaronder een tabel (waar dus maar 1 record in staat).
Ik krijg echter dat record niet in rapport omdat logischerwijs die tabel geen relatie heeft met de tabellen die ik nodig heb om tot prijslijst te komen.
 
Ik snap je vraag niet. Hoe kom je aan die prijslijsten? Wat is er op tegen om in die prijslijsttabel een veld ISO op te nemen en te vullen? Wat komt er in die tabel met één record (hoeveel velden? 1? 255?) te staan?
 
antwoord aan OctoFish

binnen artikelbestand zijn 4 velden die per prijslijst (1,2,3,4,) de verschillende kortingen aangeven.
dus er is geen prijslijsttabel, ik heb t redelijk star gemaakt maar 4 prijslijsten is ruim voldoende

in dat record wat versienummer aangeeft staat maar 1 veld (of 2 als er een autonummering bij moet maar dat lijkt me niet)
 
Dan nog snap ik het probleem niet. Wat is de ISO Wat is een versienummer? Wie bepaalt die nummers? Moet elke 'prijslijst' zijn eigen ISO nummer krijgen? Waarom kunnen de prijslijsten niet in één tabel? Ik zie eerlijk gezegd het voordeel niet van 4 verschillende tabellen voor 4 prijslijsten. Maak eens een voorbeeldje, zodat we wat meer snappen van wat je aan het doen bent.
 
toevoeging

als ik je gewoon zou vragen:
  • ik wil een veld/variabele door gebruiker in laten vullen (in dit geval een versienummer van een prijslijst maar dat doet er niet toe)
  • en dat veld wil ik tonen in verschillende rapporten
  • hoe doe ik dat dan ?


probleem nu is dat ik een tabel heb gebruikt met maar 1 record en 1 veld. Als ik dat in een rapport wil tonen heeft die tabel geen relationele verbinding met de daadwerkelijke tabellen in het rapport.
 
Als het om één waarde gaat, die je op verschillende plekken terug wilt zien (niet opslaan dus), dan kun je het beste een TempVar gebruiken. Als je een formulier gebruikt (om in te loggen, rapporten te kiezen o.i.d.) dan zet je op dat formulier een tekstvak met een knop (knop hoeft niet eens) die de inhoud van dat tekstvak in een Tempvar zet, en die tempvar kun je dan oproepen in rapporten, of in de query die onder de rapporten hangt. Dan heb je volgens mij de werkwijze die je ambieert.
 
extra toelichting

Octafish, Wederom bedankt.

Maar ik wel het veld ook opslaan (dus niet alleen zien)
 
Zelfde werkwijze, maar dan moet je in je functie dus eerst die tabel openen met een recordset (of DLookup gebruiken, kan natuurlijk ook als met maar één record is met één veld) en die waarde vervolgens in de TempVar zetten. Eventueel nog uit te breiden met de mogelijkheid om middels een tekstvak de waarde aan te passen en weer op te slaan.
 
wederom bedankt maar mijn oren klapperen.
recordset, DLookup gebruiken, in de TempVar zetten ???
ik neem aan dat ik dan VBA moet gebruiken, echter daar kan ik niks.
Zou je mij voorbeeld willen geven zodat ik daar dan mijn eigen databasevelden/tabellen in op kan nemen ?
 
Ja, dat moet geprogrammeerd worden. Als je een (uitgekleed) voorbeeldje kan posten, kunnen we dat er wel voor je inzetten. Of mail hem naar mij, dat mag ook :).
 
Hey, als je een tabel gebruikt met 1 veld en 1 record, dan kan je die gewoon zonder relaties aan welke query dan ook toevoegen. In Oracle databases hebben ze zelfs zo een systeemtabel die Dual noemt. Alls je een tabel zonder relaties in een query opneemt krijg je een cartesisch produkt, duas alle rijen in tabel 1 * alle rijen tabel 2. Als tabel 1 100 rijen heeft en tabel 2 500 rijen heb je dus 100* 500 = 50000 rijen. Maar als je dummy tabel maar één rij heeft: 1*500 blijft 500 :d. Dus in dit geval hoef je geen tempvars of enige programmatie te gebruiken.
 
Ook een oplossing. Er gaan meerdere wegen naar Rome. Een Tempvars is beter te beheren, omdat je een tabel makkelijker aanpast dan een TempVar, en met een tabel moet je voor elke query die tabel erbij zetten, anders heb je niks. 't Is maar wat je handig vindt.
 
Oei Octafish, dat is al de tweede keer dat we overeen komen, seffens gaan we nog samen een pint moeten gaan drinken, of liever een Belgische trappist?
 
D'r gaat weinig boven een goed Belgisch bierke :). De meeste trappisten heb ik wel in huis gehad, maar de Westvleeteren is nogal lastig te scoren hier. Mag je altijd klaar zetten :p
 
De database kan nog wel wat opgeschoond worden, denk ik :). Wat je probleem betreft: dat was prima te reproduceren, maar niet direct te verhelpen. Soms gebeurt dat om onverklaarbare redenen. Ik heb de keuzelijst eerst omgezet naar een tekstvak en getest met een handmatig ingevuld artikelnummer. Ging prima. Vervolgens weer omgezet naar een keuzelijst, en die opnieuw opgebouwd. Daarna deed-ie het ook weer prima. Schiet mij maar lek :). Maar het is dus simpel te verhelpen. Alternatief: het complete subformulier verwijderen en opnieuw aanmaken.

Ter info: ik heb wél in je tabel alle keuzelijsten op de velden eruit gegooid. Ik gebruik ze nooit, ze veroorzaken alleen maar ellende en in een tabel horen principieel geen keuzelijsten thuis, omdat je in een tabel (vind ik) altijd de opgeslagen waarden wilt kunnen aflezen. En dat kan dus niet met die keuzelijsten. Je krijgt ook geheid problemen als je gaat koppelen met andere systemen, of Union queries gaat maken etc. Ook voor filteren is het érg handig dat je "1053D" moet invullen als criterium, maar dat je "ABC2" ziet. Ik hou er niet van, en ik pleur ze er dus als eerste altijd gelijk uit. Keuzelijsten horen in formulieren gebruikt te worden, nergens anders.
 
Allereest bedankt voor de moeite die je hebt genomen.

[1a] jij hebt t over keuzelijst in tabellen. ik weet niet precies wat je bedoeld maar ik vermoed dat dat het gevolg is van als ik tabel aanmaak en bij een veld kies voor "wizard opzoeken". klopt dat ? op die keuzelijsten eruit te halen moet ik dan eerst het hele veld verwijderen ?

[1b] ik dacht dat je met de "wizard opzoeken" ook automatisch de tabellen aan elkaar koppelt. Is het zonder keuzelijsten voldoende om in [relaties] de tabellen te koppelen ?

[2] jij geeft aan dat er nog wel wat op de schonen is. Wat zou ik (in hoofdlijn) moeten opschonen ? ik ben gewoon begonnen met beperkte kennis en blijf dus de fouten maken die ik in het begin ook maak.

[3] ik krijg t nog niet voor elkaar om vanuit die nieuw opgezette keuzelijst velden te vullen, t lijkt ook alsof de wizard niet meer actief is. zou je mij de aangepaste database willen terugsturen dan kan ik dat voorbeeld volgen. Ik moet stoppen voor vandaag, zal morgen nog een nieuwe poging doen
 
Ad 1a: ja. Je merkt gauw genoeg dat je daar keuzelijsten hebt, want als je een veld met een keuzelijst selecteert, krijg je een... keuzelijst :). Allemaal omzetten naar een tekstveld, raad ik dus aan.
Ad 1b: de keuzelijsten maken geen correcte relaties aan, alleen waardeloze. Relaties leg je zelf in het Relaties venster, waarbij je de juiste opties (Referentiële integriteit bijvoorbeeld) instelt. Liggen de relaties in de tabellen goed, dan liggen ze in de queries ook goed.
Ad 2: Beperkte kennis kun je oplossen door je in te lezen in de materie :). Ik heb ooit eens een hersenoperatie laten doen door een chirurg die óók beperkte kennis had. Is me niet bevallen :d
Ad 3: Ik stuur je de aangepaste versie voor zover ik 'm nu heb weer naar je terug vanavond.
 
ik wacht rustig af.

ik merk dat we discussie over 1 vraag nu aan t voeren zijn bij een andere vraag van mij.
Het is voor mij helder maar kan me voorstellen dat de rest het niet meer kan volgen.

De laatste reacties gaan over mijn vraag: "Foutmelding bij simpele code..."


Bekijk bijlage 360248
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan