Hoe open ik een formulier met een keuze lijst?

Status
Niet open voor verdere reacties.

Deonitius

Gebruiker
Lid geworden
6 jan 2008
Berichten
18
Ik heb een database gemaakt(.mdb access 2003) en daar wil ik verschillende formulieren openen adv een keuzelijst, zodat ik het formulier filter. (parameterquery)
Gebruikers moeten inloggen en zien dan een menu waarop alleen knoppen zichtbaar zijn die bij hun machtiging horen. Nu moet ik bijv alles in 6 voud maken (muv de tabellen) om alleen hun afdeling te openen.

In open nu formulieren en rapporten van een bepaalde periode adhv een periode ID, ik ken die bijna uit mijn hoofd maar voor de rest is het erg onvriendelijk werken.
Ik zoek me kleurenblind ik het handboek Access 2003 en op internet maar kom er niet uit, wie kan mij helpen?

Alvast bedankt
 
Kijk eens op onderstaande link:

Ga in het menu links naar "Beveiligen" en vervolgens "Gebruikersgroepen".

http://www.accesspower.nl/

Misschien kun je hier wat mee.

mvg
Charles
 
Bedankt,
Ik heb van die site al wat handige tips gehaald maar hoe moet ik daar bijvoorbeeld een voorwaarde aan koppelen?
Zoiets van een select case statement met een where functie?
 
Klein voorbeeldje met If Then Else functie. Case Select kan natuurlijk ook. Ik blijf erbij dat ik het voorbeeld in mijn vorige post veel mooier vind. Misschien toch maar eens naar de stappenuitleg kijken.

mvg
Charles
 

Bijlagen

Ik vind de simpele oplossing van access power ook prima en gebruik die ook.
Ik heb overigens alles zelf geleerd wb access en begin nu VB pas een beetje te snappen, dus vandaar dat ik er een beetje moeite mee heb. In mijn database zit ong 600 man personeel, verdeelt over 6 hoofd-afdelingen die allemaal weer uit sub en subsub eenhedenbestaan waar functies inzitten. Personeel wisselt regelmatig van functie en zit daarom allemaal bij elkaar. Na het inloggen van iemand wil ik dat ze in een hoofdmenu terecht komen met knoppen naar formulieren en rapporten en dat die dan gefilterd zijn. Bijvoorbeeld de het formulier met persoons gegevens mag dan allen dat personeel laten zien dat ingedeeld zit bij de betreffende hoofd afdeling. Een afdeling heeft naast de naam ook een 4 cijferige code en daar moet dus op gefilterd worden
Ik krijg nu al 13 gebruikers groepen (Beheer, 6 afdelingen bewerken en 6 afdelingen inzien)en dat zal alleen nog maar groeien want boven de hoofdafdelingen zit weer een staf die onderverdeeld is in secties en die moeten sommige dingen wel of juist niet kunnen inzien en/of bewerken van de gehele organisatie.
 
Ik had geen idee dat het om zoveel gebruikers ging, aangezien je het alleen had over het verbergen en zichtbaar maken van knoppen. Ik begrijp uit je laatste post, dat het ook nog om lees- en schrijftrechten gaat. Misschien kun je ook nog wat met onderstaande link. Hier staat een voorbeeld met een inlogmenu op basis van verschillende rechten.

http://www.pcmenu.info/pc_help/access/voorbeelden.htm#InlogMenu

mvg
Charles
 
Ik heb voor een klant in een soortgelijke situatie een tabel met menu opties, en aan deze tabel hangen groepsrechten. Ik gebruik een doorlopend formulier waarachter de recordset gevormd door menuopties & rechten hangt. Op deze manier heb je maar één menu en toch heel flexibel.
 
Hartstikke bedankt, zijn prima voorbeelden en ben al druk bezig om ze te implementeren, maar ik mis nog steeds een klein stukje VBA, dat na het hoofd menu, de formulieren filtert...
De gebruiker van een afdeling mag bijvoorbeeld alleen persoonsgegevens zien van zijn eigen afdeling en niet persoonsgegevens van personeel van de andere afdelingen. Ik denk dat het heel simpel moet zijn maar ik kom er zelf nog even niet uit..

grt Dennis
 
Je zult hier waarschijnlijk me.filter voor moeten gebruiken, maar zonder structuur van de tabellen te zien is het lastig om aan te geven wat de filterexpressie (eigenlijk gewoon een where clause) zou moeten zijn.
 
Ik heb een tabel prive gegevens en werkgevens die 1 op 1 gekoppeld zijn, de werkgegevens zijn weer 1 op veel gekoppeld aan een organisatie tabel daar staan dan ook de functie gegevens in. Dus bij de VBA opracht om het formulier te openen moet inderdaad een filter komen die de gegevens van de gebruiker [afdelingsnr] gebruikt om het formulier te filteren.
Mijn niveau VBA is net genoeg om ongeveer te begrijpen wat er gebeurt en om stukken te kopieeren en aan te passen in mijn eigen database... Hoe gebruik ik dus me.Filter, ik snap alleen dat me aangeeft het huidige form, maar dan?
 
Schrijf me als query in de editor, en dan gebruik je de where clause om mee te filteren. Dit kan eventueel ook bij het openen van het formulier (in de stLinkCriteria als je de wizard gebruikt).
Dus:
Code:
    DoCmd.OpenForm "Form2", , "ID=10"    'ipv ID=10 vul je jouw where clause in

of (in het bewuste formulier)
Code:
  Private Sub Form_Open()
      me.filter = "ID=10"
      me.filteron = true
  end sub
 
Ik heb nu het volgende staan:
Code:
DoCmd.OpenForm "F_PersoonsgegevensSSV", acNormal, , , acFormpropertysettings, acDialog
End Sub

En het moet dus worden:
Code:
DoCmd.OpenForm "F_Persoonsgegevens", , "Afdelingsnr=1623", , acNormal, , , acFormpropertysettings, acDialog

End Sub

Sorry dat ik het niet helemaal snap maar zo krijg ik een foutmelding en ik heb het Afdelingsnr op het hoofd form staan(dat overigens uit meerdere tabbladen en subformulieren bestaat)
Moet er nou niet ergens het autorisatieniveau uitgelezen worden met pfGetbytGebruik ?
 
En het moet dus worden:
Code:
DoCmd.OpenForm "F_Persoonsgegevens", , "Afdelingsnr=1623", , acNormal, , , acFormpropertysettings, acDialog
End Sub

Code:
DoCmd.OpenForm "F_PersoonsgegevensSSV", acNormal, "AfdelingsNr=1623, , acFormpropertysettings, acDialog
End Sub
Maar dan wil je 'm dus gaan koppelen aan een veld, dus bijvoorbeeld
Code:
DoCmd.OpenForm "F_PersoonsgegevensSSV", acNormal, "AfdelingsNr=" & frmMain.AfdelingsNr, , acFormpropertysettings, acDialog
 
Op de eerste code krijg ik geen foutmelding maar die doet ook niks, ik zie nog steeds alle afdelingen....
En de tweede krijg ik allen maar een foutmelding???
 
En de tweede krijg ik allen maar een foutmelding???
Ja, dat is niet zo vreemd: frmMain.AfdelingsNr
Zou wel heel toevallig zijn als jouw formulier frmMain heet en het veld AfdelingsNr. Die had ik even ter illustratie gedaan. Als je je database even leeg post (en bij voorkeur alleen de tabellen/formulieren waar het over gaat dan praat het wat makkelijker.
 
Zover snap ik het wel, ik had ze natuurlijk al verandert in mijn eigen namen..
Ik zal hem leeg maken en kijken of ik hem van mijn defensie laptop af krijg, is een beetje beveiligd..... maar dat wordt misschien morgen wel (erg verslavend is het zeker, maar het kost zoveel nachtrust!!)
 
Zover snap ik het wel, ik had ze natuurlijk al verandert in mijn eigen namen..
Ah okay :thumb: Het is moeilijk voor mij om in te schatten wat je wel en niet weet!

maar dat wordt misschien morgen wel (erg verslavend is het zeker, maar het kost zoveel nachtrust!!)

Inderdaad. Ik moet ook zo eens gaan, vandaag 12 uur gewerkt en toen 1,5 uur 'vrienden-support' gedaan en daarna naar helpmij.
 
Ik heb een basis cursus gedaan, en de rest zelf geleerd uit handboek access 2003 van academic service, veel voorbeelden en heeeel veeel proberen, dus dat ligt ook heel erg aan het onderwerp...... Nu maar eens zoeken naar een goede cursus VBA voor access,
Weltrusten
 
Rene,
Ik heb nu een oudere versie die nog niet gesplitst is, iets makkelijker leegmaken en verkleinen. Maar hij is als rar bestand nog 492kB dus ik nu kan hem zo niet uploaden omdat hij max 100kB groot mag zijn.....
Grt dennis
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan