Pulsante con attivazione al click/doppio click

Anonimo
2018-02-10T16:52:32+00:00

Salve a tutti,

sto realizzando un piccolo progetto su Access in cui necessito di un pulsante che, quando lo clicco, esegua un'azione mentre,quando lo clicco due vote, ne esegua un altra. Il problema è che non faccio in tempo a cliccare due volte che subito viene eseguita l'azione da "un click". Questa cosa mi preclude quindi la possibilità di utilizzare la funzione associata al tasto "doppiamente premuto". Se qualcuno sa come poter  arginare questo problema, mi farebbe molto comodo, grazie!

Buona serata

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-02-12T12:51:22+00:00

ciao Davide,

le hai studiate le soluzione proposte...?

[...]

il mio database dovrò poi spostarlo su vari dispositivi, quindi avrei bisogno di un modo per poter far eseguire un suono wav che ho nella cartella con il mio database. Ovvero, vorrei richiamare il suono ma senza dover esprimere "C:\Users...".

[...]

disponi una cartelle fissa su ogni pc in cui includere il suono o i suoni che vuoi riprodurre in modo da passare al API sndPlaySound sempre lo stesso path per tutti i dispositivi.

Se vedi nel link dell'altro 3D la routine richiamava la cartella C:\windows\media, in cui solitamente sono presenti tutti i suoni di Windows, quindi se richiami uno di quei suoni puoi procedere in modo analogo.

[...]

Giuro che questa è l'ultima richiesta. Vorrei sapere com'è possibile avere più di un pulsante con questa funzione doppio/un click su un'unica maschera. Non saprei proprio dove poter inserire il codice che mi hai fornito, visto che un pulsante funziona bene....perchè non metterne 2!

[...]

Puoi accendere tutti i 3D che vuoi basta che fai tue le soluizioni non limitandoti al copia/incolla, non ti serve a nulla.

Ti basta richiamare lo stesso codice presente in quello della demo nell'evento doppio click.

Se la stessa cosa dovesse essere estesa a n forms e controlli, forse è il caso di pensare ad una classe specifica, ma le cose si complicano.

ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-02-12T09:58:26+00:00

ciao Davide,

ho modificato e semplificato il codice mostrato nel del precedente 3D( Esecuzione file Audio ad apertura Access) inserendolo nel doppio click del command button, il codice mostrato nel post precedente a questo, di questo 3d, intendo dire, mi sembra ben concepito ed una valida alternativa per la gestione del doppio click del comman button :

codice in modulo standard : 

Option Compare Database

Option Explicit

Private mblnDoubleClicked As Boolean

#If Win64 Then

    Private Declare PtrSafe Function sndPlaySound _

Lib "winmm.dll" _

Alias "sndPlaySoundA" ( _

ByVal lpszSoundName As String, _

ByVal uFlags As Long) As Long

#Else

    Private Declare Function sndPlaySound _

Lib "winmm.dll" _

                         Alias "sndPlaySoundA" ( _

ByVal lpszSoundName As String, _

ByVal uFlags As Long) As Long

#End If

Const SND_SYNC = &H0        ' (Default) Play the sound synchronously. Code execution

' pauses until sound is complete.

Const SND_ASYNC = &H1       ' Play the sound asynchronously. Code execution

' does not wait for sound to complete.

Const SND_NODEFAULT = &H2   ' If the specified sound is not found, do not play

' the default sound (no sound is played).

Const SND_MEMORY = &H4      ' lpszSoundName is a memory file of the sound.

' Not used in VBA/VB6.

Const SND_LOOP = &H8        ' Continue playing sound in a loop until the next

' call to sndPlaySound.

Const SND_NOSTOP = &H10

Public Sub PlayTheSound(ByVal WhatSound As String, Optional Flags As Long = 0)

If FileExists(WhatSound) Then

    sndPlaySound WhatSound, Flags

End If

End Sub

Private Function FileExists(strPathFile As String) As Boolean

       On Error Resume Next

       FileExists = ((GetAttr(strPathFile) And vbDirectory) = 0)

End Function

codice nella modulo di classe della form :

Option Compare Database

Option Explicit

Private mblnDoubleClicked As Boolean

Private Sub cmdClicks_Click()

  Me.TimerInterval = 100     'turn on timer

End Sub

Private Sub cmdClicks_DblClick(Cancel As Integer)

  mblnDoubleClicked = True   'set flag

End Sub

Private Sub Form_Timer()

  Me.TimerInterval = 0       'turn off timer

  If mblnDoubleClicked Then

    mblnDoubleClicked = False  'reset flag

    PlayTheSound "fullPathFileEstensioneWav"   ' personalizza il path completo del file con .wav

    'MsgBox "Double Clicked"

    'run 2-click code...

  Else

    MsgBox "Single Clicked"

    'run 1-click code...

  End If

End Sub

il tutto lo ritrovi in questa demo.

Ricordati solamente di personalizzare li fullPath del file con estensione Wav.

Al doppio click dovresti sentire il suono impostato allo scatenarsi dell'evento doppio click.

HTH.

Ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-02-12T11:22:32+00:00

    Grazie tante Sandro. Colgo l'occasione per chiederti una semplice cosa: il mio database dovrò poi spostarlo su vari dispositivi, quindi avrei bisogno di un modo per poter far eseguire un suono wav che ho nella cartella con il mio database. Ovvero, vorrei richiamare il suono ma senza dover esprimere "C:\Users...". Grazie ancora

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-02-11T17:18:16+00:00

    Grazie tante per la risposta a questo post (nonchè al mio altro inerente all'avvio di un file audio)! Ho visionato il link che mi hai gentilmente fornito ma, sfortunatamente, in ambito VBA devo ammettere che sono un neofita. Se fossi così tanto gentile da spiegarmi in modo anche solo generale la "label", mi renderesti un grande servigio.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-02-11T08:21:07+00:00

    ciao Davide,

    anche se il command button espone l'evento doppio click non credo sia da utilizzare perché il problema che riscontri è esattamente quello di cui al tuo post.

    Prova a valutare una semplice label a cui assegni all'evento doppio click la routine VBA che ti interessa eseguire.

    In alternativa valuta questo :

    http://www.tek-tips.com/viewthread.cfm?qid=990847

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento