Je ne comprends pas une instruction

Résolu
wanure Messages postés 39 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 23 novembre 2012 - 27 janv. 2006 à 14:20
wanure Messages postés 39 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 23 novembre 2012 - 27 janv. 2006 à 15:20
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

spa666 Messages postés 39 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 24 février 2006
27 janv. 2006 à 15:17
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
wanure Messages postés 39 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 23 novembre 2012
27 janv. 2006 à 14:22
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 janv. 2006 à 14:35
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 janv. 2006 à 14:39
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
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wanure Messages postés 39 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 23 novembre 2012
27 janv. 2006 à 15:20
Merci à vous deux pour vos réponses!!
0
Rejoignez-nous