-1
votes

SetFocus est une fonction?

J'ai vu cette ligne de code txtnewcaption.setfocus et a été raconté que setFocus est utilisé comme substance Ici, mais c'est aussi une fonction. Je lis également en ligne que la différence entre une sous-sous et une fonction est qu'un sous-bas ne renvoie aucune valeur mais une fonction renvoie une valeur. Je ne pouvais pas imaginer quel type de valeur sefoucs pourrait revenir, donc j'ai cherché des articles en ligne sur setfocus mais aucun d'entre eux ne m'a donné un exemple de setfocus < / Code> Utilisé comme fonction pour renvoyer une valeur. Je suppose qu'il y a quelque chose d'inexact ou de fausse avec ma compréhension ou de ce que j'ai dit.

Pourriez-vous m'aider à clarifier la confusion?

Merci!


3 Réponses :


0
votes

Les fonctions ne doivent pas nécessairement retourner une valeur. Vous pouvez appeler des fonctions comme vous pouvez appeler des sous-marins. Essayez de vous-même: écrivez une fonction, entrez dans la fonction dans un sous, puis vérifiez votre fenêtre de localisation.

Les fonctions ont le bonus supplémentaire de pouvoir retourner des valeurs, mais ne pas avoir à.

Edit: Mis à côté de la nécessité de retourner une valeur, je suis sûr qu'il existe une raison d'utiliser l'une sur l'autre, mais je déterminerai généralement s'il faut utiliser un sous ou une fonction par la complexité de la tâche. J'utilise des fonctions pour effectuer des tâches et des sous-marins simples à effectuer plus complexes.


2 commentaires

La question est de revenir, ou de ne pas retourner qc. (sans byref) ripttuly.com/vba/example/4805/Introduction-à- Procédures


Merci pour ton aide!



-1
votes

Si vous Recherchez la documentation Microsoft (MSDN ) pour setFocus , vous le trouverez défini comme:

méthode sur un objet de contrôle d'interface utilisateur, déplacez-le de l'accent ... avec aucune valeur de retour

(citation ci-dessus n'est pas littéralement cité, mais transmet la signification)

  • Méthode SetFocus [Access 2003 VBA Référence sur la langue]
  • Méthode TextBox.SetFocus (accès)
  • Méthode SetFocus ( Microsoft Forms)

    fonction?

    Ce n'est donc pas une fonction dans la syntaxe VBA. En outre: une valeur de retour de la fonction dans VBA est facultative . Voir Référence de la langue VBA: Fonction Déclaration :

    facultatif. Valeur de retour de la fonction.

    Conventions de nommage de la méthode courante

    Dans la plupart des langues de programmation, la convention de dénomination commune (cas ignorée) pour des méthodes s'appliquent:

    • Utilisez Obtenez (souvent sans paramètres) pour renvoyer une valeur. Ces méthodes sont appelées getter ou accessor .
    • Utilisez définir (souvent avec le paramètre comme valeur à définir) pour définir un nouvel état (ou une valeur). Habituellement, les données n'ont aucune valeur de retour, car la nouvelle valeur ou l'état est prédit par l'argument passé (leur paramètre). De telles méthodes sont appelées Setter ou mutator .
    • Utiliser est , a , existe , contient , démarre , < code> extrémise , etc. pour retourner une valeur boolean . Ces méthodes sont utilisées pour vérifier les indicateurs (ON / OFF, VRAI / FAUX, OUI / NON).
    • Utilisez Calculez , localiser , indexof , Recherche , récupération , < Code> recherche , Déterminez , etc. (souvent avec des paramètres) pour renvoyer une valeur résultant d'un certain traitement en fonction des paramètres spécifiés (par un algorithme mathématique logique ou interrogé par la récupération de données)


1 commentaires

Merci de votre aide!



2
votes

Eh bien, dans ce cas et exemple, .Setfocus n'est pas un sous-produit, ni une fonction.

Un Sub est un bit de code séparé, vous l'appelez comme p> xxx Pré>

(ou une formulaire plus courte saute le mot "appel" - il est facultatif) Par exemple: p> xxx pré>

ou, s'il y a des paramètres, vous pouvez aller: p> xxx pré>

dans le cas d'une fonction? C'est à nouveau un peu de code externe. Vous pouvez utiliser des fonctions qui renvoient une valeur et ignorent la valeur de retour. P>

donc p> xxx pré>

et juste comme des sous-marins, la fonction peut accepter des paramètres: p> xxx pré>

et comme je l'ai noté, vous pouvez "ignorer" la valeur de retour d'une fonction comme ceci: p> xxx pré>

si vous écrivez Selon ci-dessus, vous passez la valeur, mais la valeur de retour de la fonction n'est pas "placée" ou mettez à rien. Vous pouvez donc "utiliser" une fonction qui renvoie une valeur. Vous ignorez également l'utilisation de la () autour de la valeur que vous passez. P>

Cependant, dans les deux exemples ci-dessus, nous parlons de Sub VBA et de fonctions que vous écrivez. P>

sometextbox.setfocus est Pas Sub, ni une fonction. P>

Qu'est-ce que ce qui précède est appelé? C'est ce qu'on appelle une méthode de l'objet. P>

Ainsi, lorsque vous utilisez des objets d'accès, dites des ensembles d'enregistrements, des contrôles, etc.? Eh bien que "l'objet" aura ce que nous appelons les propriétés (généralement des choses que vous pouvez définir ou obtenir une valeur de). P>

Donc, pour une zone de texte, vous avez: P>

MyTextBox.SetFocus


4 commentaires

Une explication très complète qui différencie bien. Comme il est devenu très long, certains rubriques donneraient une structure. Peut-être même un tl; dr résumerait sur le dessus :-)


N'est-ce pas les deux (méthode, type est sous)? Par exemple. Application.Buildcriteria est une méthode aussi, mais le type est fonction.


Comme je l'ai dit, il peut devenir un peu "gris". La principale différence entre une méthode et une propriété revient à définir (ou à obtenir) une valeur provoque également une sorte d'autre action. Ainsi, vous pourriez définir le point d'enregistrement, et cela vous permet non seulement d'obtenir (ou de définir) le pointeur d'enregistrement, mais permet également au dossier d'enregistrement de «déplacer» à l'enregistrement donné. Ainsi, tandis que les propriétés et les méthodes "souvent" autorisent un ensemble et d'obtenir une valeur, la distinction est qu'une méthode fait aussi quelque chose de plus alors juste un get / jeu d'une valeur. Souvent, une méthode est une propriété et inversement. Mais la distinction est une "action".


Merci pour votre réponse détaillée. C'est très utile!