Toon posts:

[Access] Crosstab query in tabel en Automatisch hernoemen ve

Pagina: 1
Acties:

Verwijderd

Topicstarter
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:

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?? :? (dit probleem heb ik dus ook met het wijzigen van de recourdsource, maar is hetzelfde)

Verwijderd

Topicstarter
Heb ook nog geprobeert om aan de machines volgnummers mee te geven, dus als er een machine toegevoegd wordt krijg je het laatste nummer +1. zo kan je dus het aantal velden in je form afhankelijk van het aantal machines instellen, werkt wel, maar volgnummer moet opeenvolgend zijn, en beginnen bij 1