Velden zichtbaar/onzichtbaar op formulier

Status
Niet open voor verdere reacties.

pommeke

Gebruiker
Lid geworden
17 jul 2007
Berichten
232
Hallo,

Ik heb een mini database.
Als in het formulier categrie 2 (deskop) word gekozen moet diagnose zichtbaar zijn en screening onzichtbaar op het formulier
Bij een andere keuze omgekeerd.
Heb er code achter gestoken, maar het wil niet werken.
 

Bijlagen

  • Database11.zip
    38,5 KB · Weergaven: 23
Je hebt een functie gemaakt, die je verder nergens aanroept. Dan gebuert er natuurlijk niks. Je kunt de complete actie veel beter aan de keuzelijst hangen.
Code:
Private Sub Keuzelijst9_Click()
    If Me.Keuzelijst9 = 2 Then
        Me.Diagnose.Visible = True
        Me.Bijschrift11.Visible = True
        Me.Screening.Visible = False
    Else
        Me.Diagnose.Visible = False
        Me.Bijschrift11.Visible = False
        Me.Screening.Visible = True
    End If
End Sub
 
Ik ben overigens absoluut geen voorstander van het te pas en te onpas verbergen van objecten; je schiet er niets mee op namelijk. Je formulier wordt er alleen maar lelijker van (gaten die je toch niet opvult vermoedelijk) en de functionaliteit verbetert er dus ook niet door. Veel beter is in mijn ogen om die objecten tijdelijk te deactiveren. Dat houdt de lay-out netjes, en men kan niet per abuis iets doen met het object. Mission accomplished :).
 
al heel erg bedankt
hoe doe je dat dan, tijdelijk deactiveren?
 
Op exact dezelfde manier, maar dan de eigenschap Enabled = False/True gebruiken.
 
Hallo,

Dat werkte, maar het moet eigenlijk anders gaan.
De vinkjes (ja/nee) moeten gedactiveerd worden als er op geklikt wordt.
Als je op diagnose klikt, moeten de 2 andere deactiveren.
En zo ook voor de andere.
Als je op een van de vinkjes klikt, moeten de andere deactiveren.
Zodat er geen 2 vinkjes tegelijk aangevinkt kunnen worden.
Ook moet het kunnen, als je een fout hebt gemaakt, en je 'un' vinkt het moeten de andere weer beschikbaar worden.

Ik weet dat een checkbox of de keuzevakjes in een groep zetten zou helpen,
maar het is om in een bestaande, goed gevulde (meer dan 20000 records), te zetten.

Ik heb wat aan het proberen geweest,
maar krijg het niet gevonden.
 

Bijlagen

  • Database12.zip
    54,4 KB · Weergaven: 25
De vinkjes (ja/nee) moeten gedactiveerd worden als er op geklikt wordt.
...
Als je op een van de vinkjes klikt, moeten de andere deactiveren. Zodat er geen 2 vinkjes tegelijk aangevinkt kunnen worden.
In de ontwerpwereld maken we gebruik van een aantal 'vaste' uitgangspunten, zoals: hyperlinks onderstrepen etc. Als je een gebruiker iets wilt laten kiezen, dan zijn daar verschillende opties voor, afhankelijk van wat er mag. Zo is een keuzelijst met invoervak prima als er maar één waarde gekozen mag worden, en een keuzelijst prima bij meervoudige selectie. Al mag je de laatste natuurlijk ook gebruiken voor één keuze.

Gaat het om aanklikvelden, zoals selectievakjes en radiobuttons, dan gelden daar óók 'wetten' voor: selectievakjes gebruik je als je meerdere opties mag aanklikken, en radiobuttons voor opties waarbij maar één keuze mogelijk is. Iedereen kent dat, snapt dat en gebruikt dat. Op het moment dat jij, als gebruiker daarvan af wilt wijken, moet je daar dus hele goede redenen voor hebben. Eerlijk gezegd zie ik die niet in jouw opzet, en het blijkt ook niet uit jouw omschrijving. Jij wilt gewoon drie opties, waarvan de gebruiker er één mag/moet kiezen. Dat kan prima, zonder gezeur, als je radiorondjes gebruikt, en geen selectievakjes.
 
Gaat het om aanklikvelden, zoals selectievakjes en radiobuttons, dan gelden daar óók 'wetten' voor: selectievakjes gebruik je als je meerdere opties mag aanklikken, en radiobuttons voor opties waarbij maar één keuze mogelijk is. Iedereen kent dat, snapt dat en gebruikt dat. Op het moment dat jij, als gebruiker daarvan af wilt wijken, moet je daar dus hele goede redenen voor hebben. Eerlijk gezegd zie ik die niet in jouw opzet, en het blijkt ook niet uit jouw omschrijving. Jij wilt gewoon drie opties, waarvan de gebruiker er één mag/moet kiezen. Dat kan prima, zonder gezeur, als je radiorondjes gebruikt, en geen selectievakjes.

Ik ben een amateur in access, geen pro zoals jij. Daarom vraag ik ook hulp.
Zoals ik al melde, het is om te gebruiken in een al bestaande database die meer dan 20.000 records heeft.
Door bepaalde wijzigingen mogen er nu geen meerdere vinkjes meer gebruikt worden.
Voorheen kon dit wel.
Daarom leek het ons het veiligst om gewoon de vinkjes inactief te maken als er een ander is aangevinkt.
Dan moeten er geen structurele veranderingen gebeuren in database en hebben we dus ook minder kans op dataverlies.
De database wordt dagelijks gebruikt door verschillende personen.

Als we dit vooraf hadden geweten hadden gebruik gemaakt van radiobuttons, maar dat is nu telaat.
 
Ik ben een amateur in access, geen pro zoals jij. Daarom vraag ik ook hulp.
En daarom geven we die ook :). Je voorgestelde oplossing is dan nog steeds geen bruikbare, want het deactiveren is dan alleen maar vervelend. Je kunt dan namelijk geen andere meer aanklikken als je het een keer fout hebt gedaan. Je kunt veel beter de andere twee uitzetten bij de Click actie. Veel simpeler dus:
Code:
Private Sub Diagnose_click()
        Me.Repair = False
        Me.Screening = False
End Sub

Code:
Private Sub Repair_click()
        Me.Diagnose = False
        Me.Screening = False
End Sub

Code:
Private Sub Screening_click()
        Me.Diagnose = False
        Me.Repair = False
End Sub
 
Trouwens een tip: door iets aan te passen in de user interface controls is er geen risico op data verlies.
 
Die snap ik even niet :). De meeste formulieren werken gewoon op de data tabellen...
 
lees: door de design van een formulier (zoals checkboxen vervangen door options) aan te passen heb je geen risico op data verlies.
 
Nope, still doesn’t compute :). In dit geval is het ook geen optie (althans: niet voor deze TS) omdat het vervangen van losse velden die zijn gekoppeld aan een checkbox door een Groepsvak een behoorlijke aanpassing van de db zorgt, omdat je doorgaans een groepsvak aan één veld hangt. Dat is dan meestal geen Boolean veld maar een numeriek veld.

Kortom: het kán wel, maar levert een hoop werk op. In ieder geval tabel(len), formulier(en) en wellicht ook rapport(en). Heb je dat er voor over? Wij kunnen die beslissing voor TS niet nemen. Dus zorgen dat op het formulier geen foute invoer meer kan worden gedaan, is een relatief simpele oplossing. Daarnaast zou ik zeker voorkomen dat gebruikers rechtstreeks in een tabel of query kunnen gaan wroeten :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan