Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.

Réponse
 
Outils de la discussion
Vieux 08/10/2008, 16h37   #1 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 984
Par défaut Déclaration de variable

Bonjour, j'ai énormément de soucis avec des messages d'erreurs de type "Utilisation incorrecte de null".

Je me suis rendu compte que c'est depuis que j'ai déclaré mes variables en Integer, alors que à la base elles étaient en variant.

Quelle va être la conséquence si je les remets toutes en variant?

En gros qu'est ce qui est possible de faire en integer, qu'il ne sera plus possible de faire en variant ou vise versa...
Merci
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 17h04   #2 (permalink)
Membre éprouvé
 
Avatar de stigma
 
Date d'inscription: octobre 2003
Localisation: Picardie
Âge: 58
Messages: 417
Envoyer un message via MSN à stigma
Par défaut

Je ne pense pas que ce soit un problème de déclaration de variable, mais plutôt une propriété du champ de ta table. De plus, en Integer tu seras limité en taille.
Parfois pour empêcher le message d'erreur, je teste avant :
Code :
    If IsNull(cbo_Annee) = True Then Exit Sub
 
ou je mets à zéro dans la table :
Code :
            If IsNull(.Fields("Fiche_Heures")) = True Then
                .Edit
                .Fields("Fiche_Heures") = 0
                .Update
            End If
 
__________________
Access 2003 DAO OU ADO + VBA + VBA + VBA
stigma est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 17h16   #3 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 984
Par défaut

Citation:
Parfois pour empêcher le message d'erreur, je teste avant :

Code :
If IsNull(cbo_Annee) = True Then Exit Sub
Mais sa te quitte ton code sa?

Citation:
ou je mets à zéro dans la table :

Code :
If IsNull(.Fields("Fiche_Heures")) = True Then
.Edit
.Fields("Fiche_Heures") = 0
.Update
End If
C'est quoi ton truc fiche d'heure?

Merci
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 17h21   #4 (permalink)
Membre éprouvé
 
Avatar de stigma
 
Date d'inscription: octobre 2003
Localisation: Picardie
Âge: 58
Messages: 417
Envoyer un message via MSN à stigma
Par défaut

ce sont des bouts de code d'exemple. Le premier c'est pour sortir d'un Sub en cas de Null.
Le 2ème, c'est pour mettre un champ à zéro afin d'éviter un Null (j'ai pas mis la routine en entier, aucun intérêt.
Ce sont des pistes, à toi de faire dans ton cas précis. Faut-il que je t'écrive ton appli ?
__________________
Access 2003 DAO OU ADO + VBA + VBA + VBA
stigma est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 17h25   #5 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 984
Par défaut

Oui
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 17h27   #6 (permalink)
Membre éprouvé
 
Avatar de stigma
 
Date d'inscription: octobre 2003
Localisation: Picardie
Âge: 58
Messages: 417
Envoyer un message via MSN à stigma
Par défaut

Ok, 200€/H
__________________
Access 2003 DAO OU ADO + VBA + VBA + VBA
stigma est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 17h29   #7 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 984
Par défaut

Non mais ma question était tout autre, quel va être l'effet/les différences observées si je déclare en variant?

L'avantage en variant c'est que je peut mettre un bout de code du type:

Code :
If isnull "matxtBox" then
         mvariable =""
         else 
         mavariable=me.matxtbox
         end if
 
Alors que si je déclare en Integer je ne peut pas.

Mais ce que je veux savoir c'est à quel niveau/lors de quel opération sa va me changer quelque chose que ma variable soit déclarée en integer ou en variable!

Est ce que je risque d'être bloquée lors de certaines manipulations... etc
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/10/2008, 17h38   #8 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 9 968
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Bonjour

Une variable de type Variant admet toutes les valeurs, comme le type null, contrairement à une variable de type Integer (car null n'est pas un entier, normal).

La différence réside dans le fait que les variables de types variant prennent plus de places en mémoire, ce qui peut donner de plus longs temps de calculs dans certains cas.

Dans l'absolu, il faut mieux typé ces variables, cependant la fonction Nz va te permettre de résoudre ce problème avant d'affecter une valeur à une variable.

Philippe
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide