Je ne comprends pas une instruction

Résolu
Signaler
Messages postés
39
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
23 novembre 2012
-
Messages postés
39
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
23 novembre 2012
-
Bonjour,

Je suis actuellement en stage dans une entreprise de développement de logiciels dans le cadre d'un BTS info, et on me demande de travailler à partir d'un code d'un autre développeur, dont il y a une partie que je ne comprends pas (en rouge plus bas).
Si quelqu'un peut me l'expliquer, ce serait génial, merci d'avance!!

Public Function ExecselectAdmin(Optional VAverrou As Variant, Optional VAtypeset As Variant, Optional VArecordset As Variant) As Integer

'cette fonction permet d'éxécuter un ordre sql et de verifier si enreg en rapport avec l'ordre
'l'ordre à éxécuter a été initialisé par la procèdure InitSQL
'le resultset ou le recordset éxécuté est sauvegardé dans la variable de niveau projet VPjeuenreg
'les trois paramètres sont optionnels; le premier permet de vérouiller les enregistrements à lire en passant valeur Cverrou
'le deuxième permet de constituer un jeu d'enreg en lecture seule en avant seulement en passant en param la valeur cenavant
'le 3ième permet de spécifier un autre recordset que le recordset générique VPjeuenreg pour le
'stockage du resultat de la requête; cela permettra notamment de gérer un vérouillage sur le recordset passé
'en paramètre jusqu'à ce que un ordre close soit passé sur ce recordset

Dim ILtypeverrou As Integer
Dim ILtypejeu As Integer
Dim OLrecordset As dao.Recordset
Dim OLresultset As New ADODB.Recordset
Dim OLwerrloop As dao.Error
If IsMissing(VAverrou) Then ILtypeverrou dbReadOnly Else ILtypeverrou VAverrouIf IsMissing(VAtypeset) Then ILtypejeu dbOpenSnapshot Else ILtypejeu VAtypeset

5 réponses

Messages postés
39
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
24 février 2006

dbReadOnly et dbOpenSnapshot sont des constantes pour l acces aux donnees.
dbReadOnly signifie : "Interdit aux utilisateurs d'apporter des modifications à l'objet Recordset."
dbOpenSnapshot signifie : "Ouvre un objet Recordset de type Instantané, identique à un curseur statique(une fois le recordset cree, on ne voit pas les modification en base sans le remettre a jour) ODBC."
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
39
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
23 novembre 2012

Plus précisemment, c'est la partie soulignée que je ne comprends pas!!
If IsMissing(VAverrou) Then ILtypeverrou dbReadOnly Else ILtypeverrou VAverrouIf IsMissing(VAtypeset) Then ILtypejeu dbOpenSnapshot Else ILtypejeu VAtypeset
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

Ceci est tire de la MSDN:

Renvoie une valeur de type Boolean qui indique si unargument facultatif de type Variant a été passé dans uneprocédure.

Syntaxe

IsMissing(argname)

L'argument argname contient le nom d'un argument facultatif de type Variant dans une procédure.

Remarques

Utilisez la fonction IsMissing pour déterminer si des arguments facultatifs ont été fournis lors de l'appel d'une procédure. La fonction IsMissing renvoie la valeur True si aucune valeur correspondant à l'argument spécifié n'a été passée ; sinon, elle renvoie la valeur False. Si la fonction IsMissing renvoie la valeur True pour un argument, l'utilisation de l'argument manquant ailleurs dans le code peut provoquer une erreur définie par l'utilisateur. Si la fonction IsMissing est utilisée sur un argument ParamArray, elle renvoie toujours la valeur False. Pour détecter un argument ParamArray vide, effectuez un test afin de déterminer si la limite maximale dutableau est inférieure à sa limite minimale.

Note La fonction IsMissing ne fonctionne pas sur les types de données simples (tels que les types Integer ou Double) car, contrairement au type Variant, ces types ne fournissent pas d'indicateur de bit "manquant". C'est pourquoi la syntaxe des arguments facultatifs caractérisés par un type vous permet d'indiquer une valeur par défaut. Si l'argument est omis lors de l'appel de la procédure, il aura la valeur par défaut, comme dans l'exemple ci-dessous :

Sub MySub(Optional MyVar As String = "valeur spéciale")
If MyVar = "valeur spéciale" Then
' MyVar était omis.
Else
...
End Sub

Vous pouvez le plus souvent omettre complètement le test If MyVar en attribuant à la valeur par défaut la valeur souhaitée pour MyVar dans le cas où l'utilisateur omettrait l'argument lors de l'appel de la fonction. Cette méthode est plus rapide et plus efficace.

Voila Si tu veux plus d'explication refet signe

@+
Julien
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re

Oups je crois que je me suis royalement ch... dessus, c'est pas ca du tout que tu voulais...

Veuillez tous m'excuser pour ce post inutile....

Pour revenir a ton probleme:

Il Fixe les parametres ILTypeVerrou a dbReadOnly, si le parametre VAverrou n'a pas ete specifie.


ENSORE DESOLE POUR LE POST D AVANT
@+
Messages postés
39
Date d'inscription
lundi 13 septembre 2010
Statut
Membre
Dernière intervention
23 novembre 2012

Merci à vous deux pour vos réponses!!