Espérons que quelqu'un puisse m'aider avec ça. J'ai écrit une requête dans Access 2003 qui combine une table liée "taxon_group_max_per_site"
et une requête croisée "Distinct Species by group_Crosstab".Erreur de type de données VBA - mauvaise syntaxe?
A partir du tableau, j'ai le champ "Taxonomic Group"
et "Max"
, et à partir de l'onglet croisé les champs "Total_Of_Species_S"
.
La table et l'onglet croisé sont liés et la requête fonctionne correctement jusqu'à ce que j'ajoute un certain VBA pour attribuer à chaque groupe taxonomique une note basée sur "Max"
et "Total_Of_Species_S"
.
Le code ci-dessous apporte des "Error 13: type mismatch"
Public Function Invert_Diversity_Score (Total_Of_Species_S As Integer) As Integer
If Total_Of_Species_S < Round("[Max]*0.5", 0) Then
Invert_Diversity_Score = 0
Else
If Total_Of_Species_S < Round("[Max] * 0.75", 0) Then
Invert_Diversity_Score = 1
Else
If Total_Of_Species_S < Round("[Max] * 0.875", 0) Then
Invert_Diversity_Score = 2
Else
Invert_Diversity_Score = 3
End If
End If
End If
End Function
Le débogueur montre que "[Max]*0.5"
et les autres multiplications ne produisent pas un numéro, il dit "[Max] * 0.5"= "[Max] * 0.5"
, que je pense est la source de l'incompatibilité de type. Comment puis-je obtenir le champ à plusieurs correctement? Il ressemble exactement au format indiqué dans l'aide de VBA.
+1 pour remarquer que les crochets pourraient indiquer l'opérateur d'accès aux données en VBA. – Tomalak
Salut merci à tous pour les commentaires. Je pense que codeulike résume ma question pour moi, "comment VBA est censé savoir que vous faites référence à la colonne [Max] d'une de vos tables?" Je n'ai aucune idée. Je m'enseigne VBA à travers une combinaison de l'utilisation d'autres codes de code et de livres. Pas très bien, je pourrais ajouter. Donc, Max est une colonne et contient un nombre entier. Comment puis-je informer VBA? –
Salut J'ai suivi la suggestion de codeulike (Max ajouté comme paramètre entier) et celle de Philippe (enlevé les crochets et les citations). Je n'ai pas changé le code pour utiliser Else si je suis trop paresseux mais je l'utiliserai la prochaine fois Merci pour votre aide les gars. C'est très apprécié. Davva –