Incompatibilité de type vba
Résolu/Fermé
Pres62
Messages postés
22
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
2 juin 2012
-
27 avril 2012 à 09:28
Utilisateur anonyme - 3 mai 2012 à 17:53
Utilisateur anonyme - 3 mai 2012 à 17:53
A voir également:
- Incompatibilité de type vba
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Clear type - Guide
- Faiblesse type spectre ✓ - Forum Jeux vidéo
- Type de ram - Guide
3 réponses
Utilisateur anonyme
27 avril 2012 à 13:24
27 avril 2012 à 13:24
Bonjour,
La majorité des contrôle sous VBA ont une propriété Text ou Value,
et ils retournent toujours un type String
Il serait souhaitable que tu ne laisse pas le compilateur
faire la promotion/démotion de type et que tu le réalise
explicitement.
Dim Valeur1 As String
Dim Valeur2 As String
Valeur1 = [Formulaires]![Formulaire Choix client]![Modifiable2]
Valeur2 = [Formulaires]![Formulaire Choix client]![Modifiable5]
If (Valeur1 <> "" And Val(Valeur2) <> 0) Then
If (Valeur1 = "" And Val(Valeur2) = 0) Then
Quand tu rencontre une erreur de ce type : "Incompatibilité de type"
Décompose tes morceaux, et effectue toi-même les
promotion/démotion.
Dans la ligne :
[Formulaires]![Formulaire Choix client]![Modifiable5]=0
Le compilateur doit faire une démotion [ de String à Integer ]
Or il semble en être incapable !
De plus, je te suggère aussi d'être explicite au niveau des champs
[Formulaires]![Formulaire Choix client]![Modifiable5].Value
Cdt
Lupin
La majorité des contrôle sous VBA ont une propriété Text ou Value,
et ils retournent toujours un type String
Il serait souhaitable que tu ne laisse pas le compilateur
faire la promotion/démotion de type et que tu le réalise
explicitement.
Dim Valeur1 As String
Dim Valeur2 As String
Valeur1 = [Formulaires]![Formulaire Choix client]![Modifiable2]
Valeur2 = [Formulaires]![Formulaire Choix client]![Modifiable5]
If (Valeur1 <> "" And Val(Valeur2) <> 0) Then
If (Valeur1 = "" And Val(Valeur2) = 0) Then
Quand tu rencontre une erreur de ce type : "Incompatibilité de type"
Décompose tes morceaux, et effectue toi-même les
promotion/démotion.
Dans la ligne :
[Formulaires]![Formulaire Choix client]![Modifiable5]=0
Le compilateur doit faire une démotion [ de String à Integer ]
Or il semble en être incapable !
De plus, je te suggère aussi d'être explicite au niveau des champs
[Formulaires]![Formulaire Choix client]![Modifiable5].Value
Cdt
Lupin
Pres62
Messages postés
22
Date d'inscription
vendredi 27 avril 2012
Statut
Membre
Dernière intervention
2 juin 2012
27 avril 2012 à 16:23
27 avril 2012 à 16:23
Bonjour,
Merci le problème est réglé :)
Maintenant j'ai un autre soucis...
J'ai des horaires de travail. Un exemple :
8:30 12:30 14:00 17:00
J'aimerai que les heures totales dans la journée soient dans une nouvelles colonnes dans la table.
J'ai effectuée une requête avec 3 colonnes supplémentaires :
heures matin
heures aprem
heures journée
Pour heures matin j'ai calculé la différence des horaires du matin :
heure matin : Format(VHeure([Heure Fin Matin])-VHeure([Heure Début Matin]);"Heure, abrégé")
Pour heures aprem, j'ai fais la même chose :
heure aprem : Format(VHeure([Heure Fin AM])-VHeure([Heure Début AM]);"Heure, abrégé")
Et pour heures journée :
heure journée : [heure matin]+[heure aprem]
Pour la colonne heures matin, il m'affiche bien 04:00
Pareil pour la colonne heures aprem : 03:00
Mais pour heures journée, il concatène au lieu d'additionner : 04:0003:00
Est-ce que tu saurais pourquoi ?
Merci
Pres62
Merci le problème est réglé :)
Maintenant j'ai un autre soucis...
J'ai des horaires de travail. Un exemple :
8:30 12:30 14:00 17:00
J'aimerai que les heures totales dans la journée soient dans une nouvelles colonnes dans la table.
J'ai effectuée une requête avec 3 colonnes supplémentaires :
heures matin
heures aprem
heures journée
Pour heures matin j'ai calculé la différence des horaires du matin :
heure matin : Format(VHeure([Heure Fin Matin])-VHeure([Heure Début Matin]);"Heure, abrégé")
Pour heures aprem, j'ai fais la même chose :
heure aprem : Format(VHeure([Heure Fin AM])-VHeure([Heure Début AM]);"Heure, abrégé")
Et pour heures journée :
heure journée : [heure matin]+[heure aprem]
Pour la colonne heures matin, il m'affiche bien 04:00
Pareil pour la colonne heures aprem : 03:00
Mais pour heures journée, il concatène au lieu d'additionner : 04:0003:00
Est-ce que tu saurais pourquoi ?
Merci
Pres62
Utilisateur anonyme
3 mai 2012 à 17:53
3 mai 2012 à 17:53
re:
Le compilateur concatène 2 strings
heure journée : [heure matin]+[heure aprem]
équivalent à :
heure = string1 & string 2
vérifie le type de tes variables ...
ce n'est certe pas facile de travailler avec des formats dates/heures ...
j'ai eu beaucoup plaisirs avec ce type de calcul :-)
Cdt
Lupin
Le compilateur concatène 2 strings
heure journée : [heure matin]+[heure aprem]
équivalent à :
heure = string1 & string 2
vérifie le type de tes variables ...
ce n'est certe pas facile de travailler avec des formats dates/heures ...
j'ai eu beaucoup plaisirs avec ce type de calcul :-)
Cdt
Lupin