Toon posts:

Meerdere besturingselementen verbergen in rapport.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een rapport in Access, met daarop 56 barcodestickers.
Via een formulier worden deze geprint. Op dit formulier moet ook het aantal stickers worden ingevuld. Als het aantal bijvoorbeeld 10 is, dan is het de bedoeling dat hij er 10 gaat printen, en bij de rest van de elementen de eigenschap "visible" op "false" zet. Weet iemand hoe ik dit kan doen zonder heel veel code in te gaan typen.

Alvast bedankt,

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Wat heb je zelf al geprobeerd, wat lukte wel/niet, wat was de foutmelding?
Gelieve dit eerst te doen voordat je een topic opent hier, zie ook Welkom in P&W: FAQ en Beleid *updated: 05-07*

Verwijderd

Topicstarter
Heb met "case" geprobeerd, maar dan krijg je zo'n lange code. Je moet dan bijvoorbeeld als je 40 stickers zou willen, alle 40X4 besturingselementen op "visible=true" zetten en de rest op "visible=false", en dat alleen al bij case 40. Bij case 41 zou je weer zo'n lange lijst met code krijgen....etc. Stel je moet de elementen "Artikel1" t/m "Artikel40" op "visible=true" zetten, kan dat dan met 1 regel code, of moet je 40 regels gaan ingeven?? In dit geval bestaat 1 stickers trouwens uit 4 besturingselementen, dus ik zou dan 160 regels in moeten geven bij "Case 40"

Verwijderd

Topicstarter
Opzich werkt het dan wel, maar ik vraag me af of ik niet van bijvoorbeeld 40 besturingselementen tegelijk de eigenschap "visible" kan instellen met het liefst 1 regel code per case.

Voorbeeld zoals ik nu bezig ben:

Case 1
Report_Barcodes.Artikel1.Visible = True
Report_Barcodes.Artikelcode1.Visible = True
Report_Barcodes.Omschrijving1.Visible = True
Report_Barcodes.Barcode1.Visible = True
Case 2
Report_Barcodes.Artikel1.Visible = True
Report_Barcodes.Artikelcode1.Visible = True
Report_Barcodes.Omschrijving1.Visible = True
Report_Barcodes.Barcode1.Visible = True
Report_Barcodes.Artikel2.Visible = True
Report_Barcodes.Artikelcode2.Visible = True
Report_Barcodes.Omschrijving2.Visible = True
Report_Barcodes.Barcode2.Visible = True
Case 3
Report_Barcodes.Artikel1.Visible = True
Report_Barcodes.Artikelcode1.Visible = True
Report_Barcodes.Omschrijving1.Visible = True
Report_Barcodes.Barcode1.Visible = True
Report_Barcodes.Artikel2.Visible = True
Report_Barcodes.Artikelcode2.Visible = True
Report_Barcodes.Omschrijving2.Visible = True
Report_Barcodes.Barcode2.Visible = True
Report_Barcodes.Artikel3.Visible = True
Report_Barcodes.Artikelcode3.Visible = True
Report_Barcodes.Omschrijving3.Visible = True
Report_Barcodes.Barcode3.Visible = True

En ik moet nog t/m case 56. Het lijkt me dat dit toch eenvoudiger moet kunnen.

[ Voor 79% gewijzigd door Verwijderd op 16-07-2003 13:19 ]


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Stel je moet de elementen "Artikel1" t/m "Artikel40" op "visible=true" zetten, kan dat dan met 1 regel code, of moet je 40 regels gaan ingeven??
Wat dacht je van een loop die een bepaalde handeling x keer uitvoert?

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
Hoe zou ik dat dan kunnen doen? Zou je eens een voorbeeld kunnen geven?

Verwijderd

Kun je in access niet net zoals bij vb een container van elementen maken?
dan kun je er makkelijk doorheen stappen zoals
Visual Basic .NET:
1
2
3
4
5
6
7
8
for I = 0 to Element.Count - 1
begin
    if I < AantalElementenZichtbaar then
        Element[I].Visible = true
    else
        Element[I].Visible = false
    endif
next I

[ Voor 10% gewijzigd door Verwijderd op 16-07-2003 14:59 ]


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Hoe zou ik dat dan kunnen doen? Zou je eens een voorbeeld kunnen geven?
Je zou kunnen beginnen met het zoeken naar een VBA Tutorial. Dit is namelijk erg basic en met een beetje eigen iniatief ook goed zelf uit te zoeken :)
Visual Basic:
1
2
3
For i=1 to 40
' handelingen die je wilt uitvoeren
Next

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
Ik ben te weinig bezig met VB om dit soort dingen in 1x goed te doen. Ik heb nu het volgende, alleen krijg ik een foutmelding: "Compileerfout: Kan de methode of gegevenslid niet vinden." (regel 3) Het besturingselement Artikel1 t/m Artikel56 bestaat gewoon. Wat doe ik fout?


Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
For i = 0 To 56 Step -1
    If i < Form_Barcode.Keuzelijst_met_invoervak45.Value Then
        Me.Artikel(i).Visible = True
        Me.Artikelcode(i).Visible = True
        Me.Omschrijving(i).Visible = True
        Me.Barcode(i).Visible = True

    Else
        Me.Artikel(i).Visible = False
        Me.Artikelcode(i).Visible = False
        Me.Omschrijving(i).Visible = False
        Me.Barcode(i).Visible = False
    End If
    Next i

[ Voor 7% gewijzigd door Verwijderd op 16-07-2003 14:05 ]


Verwijderd

OK, heb even een testje gedaan. element containers zoals vb kent access (vba) niet.
Maar het volgende werkt bij mij wel:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Dim AantalElementen As Integer
    Dim AantalElementenZichtbaar As Integer
    
    AantalElementen = 2
    AantalElementenZichtbaar = 2
    
    For I = 0 To AantalElementen - 1
        For T = 0 To Me.Controls.Count - 1
            If Me.Controls(T).Name = "Bijschrift" & I Then
                If I < AantalElementenZichtbaar Then
                    Me.Controls(T).Visible = True
                Else
                    Me.Controls(T).Visible = False
                End If
            End If
        Next T
    Next I

Disclaimer: Oplossing is niet elegant :)

[ Voor 7% gewijzigd door Verwijderd op 16-07-2003 14:56 ]


Verwijderd

Topicstarter
Krijg het op deze manier niet werkend. Heeft iemand nog een idee?
Pagina: 1