2016-11-20 10 views
0

Je suis novice dans le domaine du codage et j'essaie de développer une forme d'utilisateur qui me permet de remplir une base de données.Erreur de non-concordance de type de fixation 13 dans VBA

J'essaye de mettre en place une certaine validation pour les données qui peuvent être entrées dans la base de données à travers le formulaire utilisateur.

Le code que j'utilise pour ceci est montré ci-dessous où Reg est le nom des contrôles sur mon userform.

Lorsque j'exécute cette partie du code, elle s'arrête sur la première ligne et affiche la boîte de message Erreur de type incompatibilité 13.

Toute aide que vous pouvez donner serait grandement appréciée.

Sub ValidCombo1() 

    If Reg18.Value = "" And ((Reg17.Value <> "1" Or (Reg15.Value <> "0" Or "") Or Reg16.Value <> "A" Or Reg19.Value <> "") Or (Reg17.Value <> "" And Reg15.Value <> "" And Reg16.Value <> "" And Reg19.Value <> "")) Then 

     MsgBox "Invalid Foundations combination" 

     Reg13.Value = "" 

    ElseIf Reg25.Value = "" And ((Reg24.Value <> "1" Or (Reg22.Value <> "0" Or "") Or Reg23.Value <> "A" Or Reg26.Value <> "") Or (Reg24.Value <> "" And Reg22.Value <> "" And Reg23.Value <> "" And Reg26.Value <> "")) Then 

     MsgBox "Invalid Inverts and Aprons combination" 

     Reg13.Value = "" 
+0

pouvez-vous mettre l'instruction if dans un bloc de code s'il vous plaît? – user1

Répondre

2

Votre code peut avoir d'autres problèmes, mais des expressions comme

Reg15.Value <> "0" Or "" 

sont une incompatibilité de type. "" est une chaîne, pas une valeur booléenne.

Remplacement Reg15.Value <> "0" Or "" par

Reg15.Value <> "0" And Reg15.Value <> "" 

(qui je pense est votre intention) permettra d'éliminer les discordances de type.

+0

Merci John, ça semble l'avoir éclairci. – Wizard0800