Muis uitschakelen in access form

Status
Niet open voor verdere reacties.

fjvanlochem

Verenigingslid
Lid geworden
23 nov 2009
Berichten
53
Ik wil dat op een access formulier de cursor alleen met de returntoets tussen de in te vullen velden kan worden verplaatst. Dus niet met de muis. Bestaat hier voor een manier?
 
Soms kom je echt hele rare vragen tegen, en dit is er wel één uit die categorie. Nee, natuurlijk niet. De muis uitschakelen kun je alleen door de stekker er uit te trekken. Hooguit kun je het scrollwieltje uitschakelen, want dat heeft standaard de functie om door records te bladeren. En dat kan wel eens vervelend zijn. Wat maakt het uit of een gebruiker de muis gebruikt om een veld te selecteren op je formulier? Moet-ie toch zelf weten? Even uitleggen dat het met de pijltjestoetsen en/of de tabtoets veel beter gaat (waarom de Enter toets?) en sneller, en ze laten de muis zelf al staan ("krijg nou niks, je hebt gelijk!" hoor je dan).

Dit soort vragen krijgen we hier doorgaans als het formulier niet goed is ontworpen. Zodat je in een formulier niet alles invult en zomaar kan opslaan bijvoorbeeld. En dat is in een goed formulier dus allemaal afgetikt. Kortom: maak je formulier zodanig foolproof dat een gebruiker niks fout kan doen, en laat hem/haar zelf bepalen hoe het formulier gebruikt wordt.
 
Laatst bewerkt:
+1
En: Je kunt bij het formulier heel eenvoudig kiezen in welk veld de muis bij het opstarten moet staan... en wil je het dan de gebruikers super makkelijk maken, dan geef je ze tip om met de TAB toets naar het volgende veld te gaan. Die volgorde kun je ook nog helemaal sorteren, handig als je het logisch wilt laten zijn/houden....
Maar met alle webshops et al.... zijn de gebruikers van nu wel een heel stuk verder met formulieren dan pak hem beet 15-20 jaar geleden, dus ook handiger meestal met de pc.
 
En: Je kunt bij het formulier heel eenvoudig kiezen in welk veld de muis bij het opstarten moet staan...
Maar dat lijkt dus net het probleem: het maakt niet uit in welk veld je formulier opstart, je kunt met de muis in elk willekeurig veld klikken. Daar gaat je zorgvuldig ingerichte 'flow' :D. En dat schijnt bij TS dus een probleem te zijn...
 
Muis uitschakelen in access
"De beste manier om eens contact op te nemen met Bill Gates is via de Bill and Melinda Gates Foundation. Het hoofdkantooradres is P.O. Box 23350, Seattle, Washington, 98102. Het telefoonnummer vermeld als (206) 709-3400, maar het is niet waarschijnlijk dat u met Bill Gates kunt praten. Zijn e-mailadres bij de stichting is info@gatesfoundation.org.
 
Laatst bewerkt:
Te zot voor woorden.
Gemaakt in excel.
Klik op cmd Button of nog een keer
de muispijl verschijnt bovenaan in de linkerhoek van het scherm.
Klik gewoon op het scherm om terug te activeren.
Bekijk bijlage 336627
 
Laatst bewerkt:
Inderdaad te zot voor woorden: een bijlage die niet werkt :).
 
Ik heb dat ook soms voor. Bij mij werkt het.
Code:
Private Sub CommandButton1_Click()
Static sstrCaption As String
Static blnClip As Boolean
If blnClip Then
Call acb_apiClipCursor(ByVal vbNullString)
Else

Call acb_apiClipCursor(typRect)
End If
blnClip = Not blnClip
Range("F12").Select
End Sub

In module
Code:
Option Explicit
Type acb_tagRect
lngLeft As Long
lngTop As Long
lngRight As Long
lngBottom As Long
End Type

Public Declare Sub acb_apiClipCursor Lib "User32" Alias "ClipCursor" (typRect As Any)
Public Declare Sub acb_apiGetWindowRect Lib "User32" Alias "GetWindowRect" (ByVal Hwnd As Long, typRect As acb_tagRect)
 
Laatst bewerkt:
Maar dat lijkt dus net het probleem: het maakt niet uit in welk veld je formulier opstart, je kunt met de muis in elk willekeurig veld klikken. Daar gaat je zorgvuldig ingerichte 'flow' :D. En dat schijnt bij TS dus een probleem te zijn...
Ik prbeer het aalleen zo makkleijk te maken zodat mensen hopelijk inzien dat de TAB het makkelijkste is, waardoor ze meteen in de flow zitten...
Maak de layout zo aantrekkelijk dat men echt denkt... hier is naar het startveld de TAB "de" manier om het te doen.....
Zoek eens uit of je de muis zo klein kunt maken dat het gebruik van de TAB haast wel moet...
https://docs.microsoft.com/en-us/office/vba/api/access.screen.mousepointer

Of je laat iets gebeuren waardoor ze het gevoel krijgen... oja dat veld moet eerst... enz....
 
Ik denk dat verkleinen maar verkleinen is. Mijn voorstel was de muispijl op een andere plaats te zetten. En dat je eventueel zelf kan kiezen tussen Tab of muisklik.
 
Het probleem zou best kunnen zijn dat het Pavlov effect is... "ik zie een muispijl en dus moet ik er mee aan de slag.... "...

De meeste code die je vindt gaat over mouse wheel disable, maar heb er toch nog een gevonden voor mouse + keyboard.
Heb nu geen tijd om me er in te verdiepen hoe en of.... de keyboard wel aan kan blijven staan, immers het is over de input controls... en als het een algemene uitschakeling is... heb je er niks aan...

Anders wordt het imho toch jouw taak ....om het zo aantrekkelijk te maken dat de tab functie toch DE manier is.... ipv de muis.

https://bytes.com/topic/access/answers/870290-disable-mouse-keyboard
Declare the following API Function:

Code:
Public Declare Function BlockInput Lib "USER32.dll" (ByVal fBlockIt As Long) As Long
Write Code 'similar to' the following. I would strongly assume writing the Code within the context of an Error Trap to Unblock Input and also to turn the Hourglass OFF shound an Error occur:

Code:
Private Sub ImpData_Click()
On Error GoTo Err_ImpData_Click
Dim intCounter As Long
 
DoCmd.Hourglass True
 
BlockInput True
 
For intCounter = 1 To 2147000000
  'take a nap!
Next
 
BlockInput False
 
DoCmd.Hourglass False
 
Exit_ImpData_Click:
  Exit Sub
 
Err_ImpData_Click:
  BlockInput False: DoCmd.Hourglass False
    MsgBox Err.Description, vbExclamation, "Error in Pic Names"
    Resume Exit_ImpData_Click
End Sub

BTW, there is an Escape Route, ALT + CTRL + DEL will effectively Disable Input Blocking.
 
Met onze office die we gebruiken is het ook maar een hulpmiddeltje.
Wij maken soms ook een progje op Excel
Tja voor het serieuze werk een programmeur inschakelen.
 
Jongens, waar hébben we het in hemelsnaam over? Slaat toch allemaal veel te ver door? Als ontwerper van een database zorg je voor twee dingen: 1) dat de applicatie correct werkt en het proces op de juiste manier wordt ondersteund en 2) dat de gebruiker makkelijk en goed kan werken: een goede GUI. Voor dat laatste maak je goede formulieren. Omdat geen twee gebruikers hetzelfde zijn en hetzelfde werken, zijn er in Windows (en Mac ook wel) meerdere manieren om dezelfde handelingen uit te voeren. Ik zeg: laat de gebruiker dat lekker zelf uit zoeken!

Het is niet onze taak om gebruikers te dwingen om op een bepaalde manier te werken. Wél moet je er voor zorgen dat de gebruiker daarbij geen fouten kan maken. Dus als een gebruiker bij het eerste veld begint en bij de laatste eindigt (de happy flow volgt) dan moet het formulier correct werken, maar als de gebruiker andersom wil werken (van achteren naar voren) dan moet het proces óók correct worden doorgelopen. Je zorgt er dus voor dat er nooit en te nimmer op verkeerde momenten verkeerde dingen kunnen worden ingevoerd!

Maar hoe de gebruiker dat wil doen, moet hij/zij toch echt zelf weten, daar moet je als ontwerper vanaf blijven. Wat kan het jou schelen als een gebruiker besluit om het op de verkeerde manier(volgens jou dan) te doen? Heeft-ie toch alleen zichzelf mee? Leg het uit in de handleiding, vertel het desnoods een keer, maar ga niet allerlei ingewikkelde API’s in de strijd gooien om te voorkomen dat iemand met een muis werkt.
 
Deze conclusie had ik al getrokken...
............Anders wordt het imho toch jouw taak ....om het zo aantrekkelijk te maken dat de tab functie toch DE manier is.... ipv de muis.
Daarmee respecteer je de gebruiker toch nog....die het anders wil.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan