Voettekst rapport

Status
Niet open voor verdere reacties.

wacco

Gebruiker
Lid geworden
9 mrt 2006
Berichten
229
Hallo,

Is het mogelijk dat wanneer een rapport werkelijk wordt geprint, er een tekst wordt toegevoegd aan de voettekst.
En is de plaats van deze tekst dan ook nog te bepalen?
Deze tekst is dan alleen zichtbaar op de geprinte versie, en niet tijdens de preview.

eigenlijk iets zoals in excel
Code:
ActiveSheet.PageSetup.Centerfooter ="Dit is mijn tekst"

m.v.g
 
Laatst bewerkt:
Waarom mag je de tekst in de preview niet zien? Zo'n wens ben ik dus echt nog nooit tegengekomen. En ik zie daar dus ook totaal het nut niet van in. Een rapport kun je ook altijd gelijk laten afdrukken, dan heb je de hele preview niet nodig.
 
@Octafish.
Inderdaad, het niet laten zien op de preview is een rare gedachtenkronkel van mij geweest, geen idee hoe ik daar eigenlijk op kwam :confused::confused:
Maar is het wel mogelijk dat ik middels een VBA code extra tekst aan een voettekst kan toevoegen, en hoe ziet deze code er dan uit?

Gr,
 
Nog steeds niet helemaal duidelijk wat je nu wilt. Een Access rapport bestaat uit vaste objecten. Extra tekst toevoegen kan dus alleen aan en bestaand object. Dat mag dan overal staan, dat maakt verder niet uit. De gebeurtenis <Voor opmaken> is daar prima geschikt voor.
 
Laatst bewerkt:
Ik heb een groot aantal rapporten, en in de voettekst wil ik een veranderbare tekst aanbrengen die op alle rapporten gelijk is.
Als ik deze eigen tekst wil veranderen, zou ik deze in alle rapporten (welke van verschillende tabellen en query's is samengesteld) apart moeten veranderen.
Ik wil dus graag dat ik de tekst op 1 plek verander, en dat dan automatisch in alle rapporten de voettekst is aangepast.
Is hier een simpele manier voor, misschien via een module?....alleen ik heb geen idee hoe deze dan te maken, of op het juiste moment aan te roepen.
Hopelijk is het probleem nu wat duidelijker.

Gr
 
Ik denk dat ik een oplossing heb gevonden.
Ik heb een module aangemaakt, genaamd MijnTekst
In deze module staat de volgende code :
Code:
Public Function MijnTekst() As String
 MijnTekst="Dit wordt mijn eigen tekst."
 End Function

Vervolgens heb ik een Tekstvak aangemaakt op de plaatsen waar ik dan wil.
En heb in het besturingselementbron dit geplaatst : =MijnTekst()

En dit werkt.
Ik hoop dat dit de juiste manier is, maar zeker weten doe ik dit niet.......is er misschien nog een andere manier

Gr,
 
Laatst bewerkt:
Je hebt het probleem nu in ieder geval duidelijk omschreven :). Ik ben benieuwd wat dit nu nog met de vraag te maken heeft:
En is de plaats van deze tekst dan ook nog te bepalen?
Zoals je het nu omschrijft is er een hele simpele oplossing waarvoor je niks hoeft te doen. Nou ja, niks.... Ik heb 2 oplossingen voor je, allebei ongeveer even simpel.

1. Je hebt een aparte tabel nodig voor de tekst die je wilt gebruiken. Die tabel heeft één record met één tekstveld. Daar zet je uiteraard je tekst in. Vervolgens voeg je die tabel toe aan alle queries of tabellen die je voor je rapporten gebruikt. De tabel wordt niet gekoppeld (hoeft namelijk niet) en het nieuwe tekstveld voeg je gewoon toe aan de query. Voer je de query nu uit, dan zie je, naast de bestaande velden, het tekstveld bij alle records terugkomen. En dat is prima. Query sla je dan uiteraard op.
Dat tekstveld voeg je vervolgens toe op de plek waar je hem hebben wilt. In jouw geval dus een (rapport)voettekst. Meer is het niet.
2. Je kunt ook werken met een TempVars variabele. Deze moet je bij het starten van de db wel een keer declareren, en uiteraard vullen. Dat zou je kunnen doen op basis van een startformulier of startfunctie die altijd draait. Zodra de TempVar is gedeclareerd, kun je hem toewijzen aan een label of tekstvak op je rapport.

Optie 2 werkt alleen met een stukje programmeren, vrees ik. Maar in essentie zijn het maar 3 regels. Op een startformulier moet je de Tempvar vullen, en dat kan bijvoorbeeld zo:
Code:
Private Sub Report_Load()
    TempVars.Add "varVoettekst", InputBox("Typ de tekst van de voettekst", "Nieuwe voettekst")
    Me.lblVasteTekst.Caption = TempVars("varVoettekst")
End Sub
Ik heb de code voor het gemak even bij het openen van een rapport gezet om te testen, maar dat kan dus ook anders zoals ik al uitlegde. In dit voorbeeld wordt de tekst gelijk aan het label gehangen.

De volgende code gebruikt de eerder gemaakte variabele op een ander label.
Code:
Private Sub Report_Load()
    Me.lblNogEen.Caption = TempVars("varVoettekst")
End Sub
 
@Octafish,
Bedankt voor de snelle reactie.
En de optie 1 welke jij gegeven heb, werkt perfect.
Is precies de bedoeling, en goed te onderhouden, was hier nooit zo snel opgekomen.

Wat betreft de vraag, welke ik had gesteld over de bepaling van de plaats, is nu niet meer relevant omdat de plaats direct wordt bepaalt bij de opmaak.

Maar de door mij zelf gevonden oplossing (zie eerdere melding, met een module), is dat ook een manier om dergelijke zaken te tackelen?
Of is dat niet de juiste manier, en welke haken en ogen zitten hier aan?

In ieder geval bedankt, kan nu weer verder.

Gr,
 
Jouw oplossing had ik nog niet gezien (je ziet aan de tijd dat ik net bezig was mijn antwoord in te kloppen), maar zo kan het inderdaad ook. Nadeel daarvan is dat je steeds de code in moet als je een nieuwe tekst nodig hebt. Mijn oplossingen hebben dat niet. Maar je moet gebruiken wat voor jou het handigst is :).
 
Ga nog bekijken welke oplossing ik definitief ga gebruiken.
En inderdaad, om telkens in de code te gaan om tekst te veranderen is niet echt handig.
Dus waarschijnlijk wordt het de oplossing (optie 1) welke Octafish heeft aangedragen.

Zet deze op opgelost.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan