Ik heb een crostabquerie die van een tabel met de velden Machinenaam en Coating een tweedimensionale weergave geeft.
Omdat er machines toegevoegd moeten kunnen worden kan ik deze query niet in een form zetten. Als er een veld bijkomt moet deze ook in de tabel aangegeven worden.
Nu heb ik de volgende oplossing gevonden:
Bij het openen van het form laat ik de aanwezige machines in een (DAO)recordset (Rs) zetten, deze lees ik een voor een uit, en dan stel ik de naam (caption) en recordsource van de velden in het form aan. Hiervoor heb ik genoeg velden in het form aangemaakt om het max aantal machines te kunnen dekken.
Dit met onderstaand stukje code:
Vraag:
Is dit eenvoudiger te doen (waarbij de DB volledig dynamisch blijft!!!)
Is dit niet mogelijk dan gebruik ik mijn oplossing, maar.........
Probleem:
Ik heb een probleem met het wijzigen van de caption van de labels en de recordsource van de velden.
Er zijn een aantal labels die ik van naam wil veranderen
Daarvoor heb ik een variabele die alle labelnamen bevat (LabelNaam=LabelNaam+1.... zeg maar) Nu wil ik daarna het volgende stukje code uitvoeren:
Me.[LabelNaam].Caption = Rs.fields (“machinenaam”).value
Dit werkt niet omdat hij de string [LabelNaam] gebruikt ipv de stringwaarde van de variabele LabelNaam.
Welke code werkt wel??
(dit probleem heb ik dus ook met het wijzigen van de recourdsource, maar is hetzelfde)
Omdat er machines toegevoegd moeten kunnen worden kan ik deze query niet in een form zetten. Als er een veld bijkomt moet deze ook in de tabel aangegeven worden.
Nu heb ik de volgende oplossing gevonden:
Bij het openen van het form laat ik de aanwezige machines in een (DAO)recordset (Rs) zetten, deze lees ik een voor een uit, en dan stel ik de naam (caption) en recordsource van de velden in het form aan. Hiervoor heb ik genoeg velden in het form aangemaakt om het max aantal machines te kunnen dekken.
Dit met onderstaand stukje code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| Dim Db As DAO.database
Dim Rs As DAO.Recordset
Dim SQL As String
Dim LabelCaption
Dim LabelNaam
Dim LabelNummer
Set Db = CurrentDb()
Set Rs = Db.OpenRecordset("Instellingen")
SQL = "SELECT distinct [Combinatie-Coating/Machine].Machine FROM &_
[Combinatie-Coating/Machine];"
Set Rs = Db.OpenRecordset(SQL, dbOpenDynaset)
Do While Not Rs.EOF
LabelCaption = Rs.Fields("Machine").Value
LabelNummer = 1
LabelNaam = "Machine" & LabelNummer & "_Label"
LabelNummer = LabelNummer + 1
Me.[LabelNaam].Caption = LabelCaption
Rs.MoveNext
Loop |
Vraag:
Is dit eenvoudiger te doen (waarbij de DB volledig dynamisch blijft!!!)
Is dit niet mogelijk dan gebruik ik mijn oplossing, maar.........
Probleem:
Ik heb een probleem met het wijzigen van de caption van de labels en de recordsource van de velden.
Er zijn een aantal labels die ik van naam wil veranderen
Daarvoor heb ik een variabele die alle labelnamen bevat (LabelNaam=LabelNaam+1.... zeg maar) Nu wil ik daarna het volgende stukje code uitvoeren:
Me.[LabelNaam].Caption = Rs.fields (“machinenaam”).value
Dit werkt niet omdat hij de string [LabelNaam] gebruikt ipv de stringwaarde van de variabele LabelNaam.
Welke code werkt wel??