Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Ερωτήματα ] Δημιουργία συντόμευση (shortcut) (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/2016-dimioyrgia-syntomeysi-shortcut.html)

devcon 23-08-12 17:05

Δημιουργία συντόμευση (shortcut)
 
1 Συνημμένο(α)
Καλησπέρα,

Θα ήθελα την βοήθεια σας.

Χρησιμοποιώ τον ακόλουθο κώδικα και θα ήθελα να δημιουργήσω μία συντόμευση (shortcut) π.χ. «Ctrl+2» ώστε ο κέρσορας να πηγαίνει κατευθείαν στο πεδίου «search» (συνημμένη φωτογραφία).

Ευχαριστώ εκ των προτέρων για την βοήθεια.

Κώδικας:


Private Sub txtSearch_AfterUpdate()

'Find record based on contents of txtSearch.

  Dim strSearch As String
  On Error GoTo errHandler
  strSearch = "[Vessel ID] = " & Me!txtSearch.Value
  Me.Filter = strSearch
  Me.FilterOn = True
  Exit Sub

errHandler:
  MsgBox "Error No: " & Err.Number & "; Description: " & _
  Err.Description

End Sub


ασχετος 23-08-12 21:33

Θανάση καλό σου βράδυ,

Μπορείς να γίνεις λίγο πιο σαφής.

Πότε να πηγαίνει στο πεδίο που θέλεις και από πού;

devcon 24-08-12 06:20

2 Συνημμένο(α)
Καλημέρα Κώστα,

Ευχαριστώ για το ενδιαφέρον που δείχνεις για την επίλυση στου ερωτήματός μου.

Όπως φαίνεται και από την δεύτερη φωτογραφία που είναι η κεντρική φόρμα όταν θέλω να βρω το “ID Vessel” πηγαίνω με το ποντίκι στο πεδίο “Search ID Vessel” πληκτρολογώ το νούμερο και μου εμφανίζει την 3η φωτογραφία.

Το ερώτημα είναι αντί να χρησιμοποιώ το ποντίκι για να μεταβώ στο πεδίο “Search ID Vessel” να έχω την δυνατότητα με μία συντόμευση του πληκτρολογίου ο κέρσορας να πηγαίνει κατευθείαν στο “Search ID Vessel”.

Tasos 24-08-12 07:25

1 Συνημμένο(α)
Καλημέρα!
Θανάση, αρχικά θα πρέπει να δημιουργήσεις μια Δευτερεύουσα Mακροεντολή (Submacro) που θα αποθηκεύσεις με το όνομα AutoKeys (βλ. εικόνα)

Συνημμένο Αρχείο 3448

Στο όνομα της μακροεντολής πληκτρολόγησε {F3} ή κάποιον άλλο συνδυασμό πλήκτρων.

Κατόπιν από την πτυσσόμενη λίστα επίλεξε την εντολή: ΕκτέλεσηΚώδικα (RunCode)
και στο πεδίο Όνομα συνάρτησης (Function Name) πέρασε το όνομα SetSearchFieldFocus() .

Πέρασε την παρακάτω συνάρτηση σε μια κοινή λειτουργική μονάδα (αφού προσαρμόσεις τα ονόματα φόρμας και πεδίου):

Κώδικας:

Public Function SetSearchFieldFocus()
    Dim txtBox As Access.TextBox
    On Error Resume Next
    Forms!frmScan.SetFocus
    Set txtBox = Forms![Orders]![Search ID Vessel]
    txtBox.SetFocus
    If Len(txtBox & "") Then
        txtBox.SelStart = 0
        txtBox.SelLength = Len(txtBox)
    End If
End Function


Υποθέτω ότι η φόρμα στην οποία περιέχεται το πεδίο αναζήτησης έχει το όνομα Orders και είναι η κύρια φόρμα.

Αν η υπόθεση μου είναι σωστή τότε με το πάτημα του πλήκτρου F3 θα εστιάζεται το πεδίο αναζήτησης.

Καλή συνέχεια!

Τάσος

devcon 24-08-12 08:45

Τάσο καλημέρα,

Σε ευχαριστώ για την απάντηση σου.

Ερώτημα:

Τι εννοείς με «κοινή λειτουργική μονάδα»;
Βάζοντας τον κώδικα μέσα στην φόρμα ‘Orders’ μου βγάζει error
“The expression you entered has a function name that MS Access can’t find.
Arguments: SetSearchFieldFocus() – error 2950.

Το πεδίο «Search ID Vessel» είναι unbound με όνομα «txtSearch», όπως φαίνεται και από την κώδικα στο πρώτο μήνυμα μου.

Ευχαριστώ για την βοήθεια.

Κώδικας:


Public Function SetSearchFieldFocus()
    Dim txtBox As Access.TextBox
    On Error Resume Next
    Forms!frmScan.SetFocus
    Set txtBox = Forms![Orders]![txtSearch]
    txtBox.SetFocus
    If Len(txtBox & "") Then
        txtBox.SelStart = 0
        txtBox.SelLength = Len(txtBox)
    End If
End Function


Tasos 24-08-12 12:16

Καλησπέρα Θανάση!

Βάλε τον κώδικα σε ένα κοινό Module. Όχι στο Module της φόρμας γιατί δεν μπορεί να βρεθεί από την μακροεντολή (αυτό σου λέει και το μήνυμα που παίρνεις από την Access).

Τάσος

devcon 24-08-12 14:03

Αγαπητέ Τάσο,

Δεν ξέρω πως να σε ευχαριστήσω.
Δουλεύει άψογα.

Σου εύχοαμι ένα καλό Σαββατοκύριακο.

Θανάσης


Η ώρα είναι 14:18.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2