l'instruction cstr([Champ]) à pour but de convertir un champ en string sauf qu'il peut y avoir des champ = null!
et ce même dans un fichier Excel. en revanche les variable VBA n'accepte pas les valeurs Null d'ou le message d'erreur.
la bonne façon de convertir en string même pour les valeurs Null est de concaténer le champ avec une chêne vide
select '' & [Champ] as {Nom de Mon Champ]
revenons à mon exemple précédant.
IIF(codition,SiVrai,SiFau) as [test]
j'avais utilisé le IIF pour formater les champs mais en réalité, le IIF replace un valeur par une autre na l'exemple du poste précédant, on substituait la valeur du champ par sa valeur formaté ou sa valeur en l'état.
select IIF('Chien'='Chat','A bon?','A Oui c''est différent!') as bisard
si je ramène ça a ton code
select IIF(Var2='#N/A N/A','',Var2) as Exp1
la je remplace les Null de Var2 par un chêne vide ''
maintenant oui théoriquement il es possible d'utiliser les étiquette dans la close where mais dans les langage SQL propriétaire pas toujours et Microsoft est quelque fois belliqueux!
1 2
|
select '' & IIF(Var2='#N/A N/A','',Var2) as Exp1 from Table1 where Exp1 <>''; |
que faire si il n'est pas possible d'utiliser les étiquettes?
et bien on fait des requêtes imbriqué en d'autre terme une requête qui appel une sous requête.
(select '' & IIF(Var2='#N/A N/A','',Var2) as Exp1 from Table1) as frm
note que la sous requête es encadré par des () et quelle ne dispose pas de point virgule le ; signale la fin de la requête il ne peut y en avoir qu'un.
(sous requête) as frm là je lui donne un nom comme pour une table
select frm.* from (select '' & IIF(Var2='#N/A N/A','',Var2) as Exp1 from Table1) as frm where frm.Exp1<>'';
Partager