randkleur verandert niet overal

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.722
HAllo
Als ik een record open dan zet ik de velden locked en enabled false
ik heb een knop "Wijzigen"
klik ik hier op dan zet ik alle velden "open"
ik verander ook de randkleur om aan te geven dat ik in "edit-mode" zit
ik doe het volgende:

PHP:
Private Sub Knop20_Click()
Forms![weergave tarief]!Lijn1.Enabled = True
Forms![weergave tarief]!Lijn1.Locked = False
Forms![weergave tarief]!Lijn1.BorderColor = RGB(237, 28, 36)
Forms![weergave tarief]!LIJN2.Enabled = True
Forms![weergave tarief]!LIJN2.Locked = False
Forms![weergave tarief]!LIJN2.BorderColor = RGB(237, 28, 36)
Forms![weergave tarief]!LIJN3.Enabled = True
Forms![weergave tarief]!LIJN3.Locked = False
Forms![weergave tarief]!LIJN3.BorderColor = RGB(237, 28, 36)
Forms![weergave tarief]!LIJN4.Enabled = True
Forms![weergave tarief]!LIJN4.Locked = False
Forms![weergave tarief]!LIJN4.BorderColor = RGB(237, 28, 36)
Forms![weergave tarief]!LIJN5.Enabled = True
Forms![weergave tarief]!LIJN5.Locked = False
Forms![weergave tarief]!LIJN5.BorderColor = RGB(237, 28, 36)
Forms![weergave tarief]!Tekst137.Enabled = True
Forms![weergave tarief]!Tekst137.Locked = False
Forms![weergave tarief]!Tekst137.BorderColor = RGB(237, 28, 36)
Forms![weergave tarief]!Tekst143.Enabled = True
Forms![weergave tarief]!Tekst143.Locked = False
Forms![weergave tarief]!Tekst143.BorderColor = RGB(237, 28, 36)

Het rare is dat voor tekst137 en tekst143 de rand WEL van kleur veranderd, maar voor de andere velden niet...
Wat is hier aan de hand?

Kan ik dit niet op een handigere manier oplossen (want er volgen nog heel wat velden zelle)?

Bedankt
JP
 
Dit kan zeker makkelijker. Je zou eens kunnen beginnen met je typvaardigheidsoefeningen te verplaatsen van het typen van code naar het toekennen van zinvolle namen voor je objecten. Als je dat gedaan hebt kun je met een For Each loop op basis van de namen alle objecten in één keer opmaken. Dan maakt het ook niet meer uit of je objecten weghaalt of toevoegt, want de loop blijft altijd werken.
 
Had ik geweten hoe dan had ik dat zeker gedaan...
In welke zin verander ik de bestandsnamen??? moest ik ze allemaal informatiever maken, hoe steek ik die dan in een loop...
Sorry... gaat mijn petje (weer) teboven
En, hoe kan het dat sommige lijnen blijkbaar wel werken in mijn code en andere niet
JP
 
Je zou eens kunnen beginnen met een tekstvak voor Naam de naam txtNaam te geven, Adres noem je dan txtAdres en zo verder. Een keuzelijst Plaats noem je dan cboPlaats, en zo verder. Op basis van die namen maak je dan een functie die de objecten controleert,en de voorvoegsels. En op basis van het juiste voorvoegsel voer je dan wat acties uit. Tijd voor een voorbeeldje?
 
Ik ga graag mee in je verhaal en zal dus aanpassen
Laat voorbeeldjes maar komen. Liefst met commentaar (hihi)
 
Ik ga graag mee in je verhaal en zal dus aanpassen
Laat voorbeeldjes maar komen. Liefst met commentaar (hihi)
Ik dacht meer aan een voorbeeldje van jou...
 
Oei.. Ja meer dan de namen van de velden aanpassen kan ik niet zelle
Dat loop gedoe ja... Daar moeg jz niets van mij verwachten want daar ken ik niks van
Is er een algemene consensus betreffende de prefixen van veldnamen?
Anyway
Dikke merci voor alles
En vooral, het geduld!!!
Jp
 
Heb je nog nooit een naam van een object aangepast? Of mag je dat niet? Dat lijkt mij vreemd.... Kijk maar eens bij <Eigenschappen>, tabblad <Overige>, regel <Naam>. Mag je echt wel aanpassen...
Enniewee, dit is een willekeurig voorbeeldje dat je zou kunnen bestuderen.
Code:
Function TestObjecten()
Dim ctl As Control
Dim iTxt As Integer, iChk As Integer, iCom As Integer
    For Each ctl In Controls
        With ctl
            Select Case .ControlType
                Case acTextBox
                    iTxt = iTxt + 1
                    If Left(.Name, 3) = "txt" Then
                        If .BackColor = RGB(198, 248, 255) Then
                            .Locked = False
                            .Enabled = True
                        Else
                            .Locked = True
                            .Enabled = True
                        End If
                    End If
                Case acCheckBox
                    iChk = iChk + 1
                    If Left(.Name, 8) = "chk" Then
                        .Value = -1
                    Else
                        .Value = 0
                    End If
                Case acComboBox
                    iCom = iCom + 1
                    If Left(.Name, 3) = "cbo" Then
                        .Locked = True
                        .Enabled = True
                    End If
            End Select
        End With
    Next ctl
End Function
 
OK, ik ga mij daar eens over buigen en de namen aanpassen zoals je voorstelt
Maar.... nogmaals, Bestaat er enige "afspraak" in hoe je een objectnaam maakt
ik heb begrepen dat een objectnaam voor een string begint met Str, een combobox met Cbo, een checkbox met Chk... maar wat met de andere... (numeriek...enz)
Bedankt
JP
 
Er zijn verschillende websites met tips. Hier is er één.
 
Heb een en ander aangepast qua objectnamen
Ik denk, zoals het -ongeveer- hoort
Toch werkt het niet
Blijkbaar krijg ik de functie niet "gelanceerd"
OF ik doe iets fout..
Nog even een duwtje?

PHP:
Function TestObjecten()
Dim ctl As Control
Dim iTxt As Integer, iChk As Integer, iLst As Integer
    For Each ctl In Controls
        With ctl
            Select Case .ControlType
                Case acTextBox
                    iTxt = iTxt + 1
                    If Left(.Name, 3) = "Txt" Then
                        .BoderColor = RGB(198, 248, 255)
                        .Locked = False
                        .Enabled = True
                    End If
                Case acCheckBox
                    iChk = iChk + 1
                    If Left(.Name, 3) = "Chk" Then
                        .BoderColor = RGB(198, 248, 255)
                        .Locked = False
                        .Enabled = True
                     End If
                Case acListBox
                    iCom = iCom + 1
                    If Left(.Name, 3) = "Lst" Then
                        .BoderColor = RGB(198, 248, 255)
                        .Locked = False
                        .Enabled = True
                    End If
            End Select
        End With
    Next ctl
End Function

Private Sub Knop20_Click()
TestObjecten
End Sub

Knop20 is de "wijzigen" knop
ik begrijp ook niet goed wat de functie is van de lijn (bvb) iCom = iCom + 1
Bedankt
 
Typefoutje wellicht? Ik zie overal 'BoderColor' in je code staan, i.p.v. BorderColor
 
Ik kan nu niet een en ander uitproberen, maar ik denk dat het probleem ook zit in het aanroepen van de fynctie onder knop20 omdat ik zelfs geen foutmelding krijg.. Ik laat zelfs de functie, op deze manier niet lopen!!!
 
Dan is het handig als je de code van de knop ook post.
 
die staat er bij hoor, helemaal onderaan... maar voor de duidelijkheid... hier nog eens:

Private Sub Knop20_Click()
TestObjecten
End Sub

merci
 
En waar heb je die functie neergezet?
 
Overigens is de functie van de tellers hier niet nodig; ik heb de functie uit een ander voorbeeld gehaald waar ik 'm wel gebruik. Maar die regels (en de declaraties van de bijbehorende variabelen) kunnnen probleemloos weg.
 
euhm.... in dezelfde module tussen de andere objecten van hetzelfde formulier....
ik zette er gisteren een stop tussen, maar de code stopte niet, dus het programma kwam er gewoon niet
JP
 
Ik zou het onderbrekingspunt ook op de knop doen, en niet in de functie
Code:
Private Sub Knop20_Click()
<F9>     TestObjecten
End Sub
 
Wat je voorstelde met die <F9> gaf een compilatiefout...
Maar

dit is mijn huidige code:

PHP:
Function TestObjecten()
Dim ctl As Control
    For Each ctl In Controls
        With ctl
            Select Case .ControlType
                Case acTekstvak
                    If Left(.Name, 3) = "Txt" Then
                        .BorderColor = RGB(198, 248, 255)
                        .Locked = False
                        .Enabled = True
                    End If
                Case acSelectievakje
                    If Left(.Name, 3) = "Chk" Then
                        .BorderColor = RGB(198, 248, 255)
                        .Locked = False
                        .Enabled = True
                     End If
                Case acListBox
                    If Left(.Name, 3) = "Lst" Then
                        .BorderColor = RGB(198, 248, 255)
                        .Locked = False
                        .Enabled = True
                    End If
            End Select
        End With
    Next ctl
End Function

dat actextbox gedoe veranderde ik actekstvak omdat ik dacht dat dat zo moest omdat ik een nederlandstalige access bezig ben
Als ik een stop zet bij "if left(, name)..... stopt het programma niet, dus, het programma komt daar ook helemaal niet omdat aan de if-voorwaarde niet voldaan werd
het moet due, m.i. anders
Nog ideeen?

Bedankt
JP
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan