Access Sneltoetsen uitschakelen

Status
Niet open voor verdere reacties.

Robert971

Gebruiker
Lid geworden
6 jul 2012
Berichten
171
Is er een VBA functie beschikbaar waarmee alle Access 2010 sneltoetsen worden uitgeschakelijk (zoals de Tab toets etc).
En is het mogelijk om deze ook per toets afzonderlijk uit te schakelen?
Uiteraard heb ik via de Opties: Speciale access toetsen al uitgeschakeld, maar de bijv. de tabtoets werkt nog steeds in betreffende software.

Hoop dat er een oplossing voor is.
 
Heb het nu op de volgende manier gedaan. Niet de meest fraaie oplossing want per besturingselement met dit event worden geprogrammeerd.
Code:
Private Sub cboTaal_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 9
KeyCode = 0
End Select
End Sub

Ik heb het ook als formulierevent geprobeerd via:
Code:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
 Case 9
 KeyCode = 0
 End Select
End Sub

Hopende dat het dan op alle besturingselementen zou werken op betreffend formulier. Maar werkt helaas niet.
Mocht iemand hier wel een methode voor hebben dan houd ik me aanbevolen
 
En waarom zou je dat in godes naam willen? Ik zou een ontwerper die formulieren waarmee ik moet werken op die manier mismaakt, zes keer kielhalen. En ik heb niet eens een boot...
 
Het kan in in sommige gevallen gebeuren dat het Record overspringt naar (Nieuw) bij een formulier. Wat absoluut niet de wens is.
Bijvoorbeeld men is aan het werk in Record 20 en bij klikken op tabtoets in bijv. memoveld of Id veld verspringt het Record naar (Nieuw). En is het formulier weer blanco.
Dit is niet de bedoeling.
Of het goed is om dit te doen daar kun je over discussiëren, maar mijn vraag is vooral of het mogelijk is op een makkelijkere manier dan ik net heb genoemd.
 
Je noemt een probleem dat je makkelijk kunt omzeilen, maar je pakt daar een nogal stevige botte bijl voor. Alsof je een mitrailleur pakt om een mug van de muur te jagen. Zal vast werken, maar je blijft plamuren...
Gewoon voorkomen dat het formulier in de status Nieuw record komt lijkt mij veel efficiënter.
 
Als je daar een efficiënte manier voor weet, graag. Welke is dat dan? ik weet het namelijk nog niet..
 
Je kunt bijvoorbeeld de status NewRecord gebruiken bij de gebeurtenis <Bij aanwijzen> om het aanmaken van een record te blokkeren. Wat je in ieder geval (in mijn ogen) nooit moet doen is de ingebouwde bediening van het programma vernaggelen voor de gebruikers. Dat duidt, vind ik, op onkunde van de ontwerper. En daar hoeft een gebruiker toch niet onder te leiden?
 
Ik snap nog niet helemaal wat je bedoelt. Kun je de code uitschrijven? Bedoel je iets van If me.Veld1(idveld).value = New Record then Form.locked = True
Over het vernaggelen van het programma..dan vind je het waarschijnlijk ook onkunde als je de optie 'Speciale Access Toetsen' uitvinkt; zoals F11. Dit is in principe ook een standaard functionaliteit van de Access.
Daarnaast waarom zou de gebruiker eronder leiden? Het is namelijk de bedoeling dat niet zomaar zonder dat de gebruiker het doorheeft, na het klikken op de tabtoets het formulier in een nieuwe status springt namelijk 'New Record'.
 
Sociale Access toetsen zijn, zoals de naam al aangeeft, speciale toetsen in Access. Met F11 open je de 'technische' objecten waar een gebruiker niets te zoeken heeft. Da's anders als een tabtoets uitschakelen.
Als functioneel beheerder interesseert het mij, als ik eerlijk ben, geen zak of iemand een keer ongewild een nieuw record aanmaakt of niet. Moet-ie zelf weten. Zolang hij/zij verder geen kwaad aanricht is er niks aan de hand. Kwaad is bijvoorbeeld als het record verder leeg kan worden opgeslagen. Goed beheer zit er in dat je dát dus voorkomt! Een nieuw record kun je altijd met Escape verwijderen als gebruiker. Big deal... Je moet als beheerder niet op de stoel van de gebruiker gaan zitten; laat hem fouten kunnen maken. Zolang er dus maar niks fout gedaan kan worden.

Het helpt natuurlijk ook als je de tabtoets volgorde goed instelt. Dus dat een tab na het laatste veld niet naar een nieuw record gaat, maar na een onzichtbaar object of een knop.
Mijn voorbeeldje heeft betrekking op een formulier gebeurtenis; je kunt nooit op een teksvak checken of dat een nieuw record is.
Code:
If Me.NewRecord Then
Etc.
 
Hallo,

Je kunt toch ook de formuliereigenschappen aanpassen: zie schermafdruk

Tabtoets.JPG

Als je bij Werking tabtoets huidige record selecteert blijf je altijd in het huidige record. Doe je dat in het laatste veld dan springt de cursor naar het eerste veld.

Gr. Jan
 
Als het alleen om de Tab toets ging, is dat een prima oplossing. Maar je vraagstelling was heel anders :D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan