Bonjour à tous,
je voulais savoir qu'elle était la syntaxe sql qui permettait de mettre des espaces lorsqu'une valeur est nul.
Je m'explique : je génere un fichier texte, j'ai créer une requête :
qui recupère tout les champs d'une table et les fusionne ensemble dans un champs nommé ligne, séparer par des points virgules. Cela va me permettre d'inserer la ligne lors de la création du fichier texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Format(BO_CasinoReferentiel.code_magasin,"0000")+";"+Format(BO_CasinoReferentiel.code_produit,"0000000")+";"+Format(BO_CasinoReferentiel.code_ean,"0000000000000")+";"+rpad(BO_CasinoReferentiel.libelle," ",50)+";"+Format(BO_CasinoReferentiel.code_marque,"00")+";"+Format(BO_CasinoReferentiel.code_ue,"00")+";"+Format(BO_CasinoReferentiel.date_dernier_pv,"dd/mm/yyyy")+";"+Format(BO_CasinoReferentiel.pa_ht,"00000000.00")+";"+Format(BO_CasinoReferentiel.pv_castor,"00000000.00")+";"+Format(BO_CasinoReferentiel.tx_tva,"00.0") AS LIGNE FROM BO_CasinoReferentiel;
Certain champs vides ( =""), (exemple:pa_ht) s'initialisent selon leur format ( exemple : si pa_ht est vide, alors il est inserer 00000000.00) Mais si la valeur du champs est nul ( =Null), il devrait y avoir des espaces.
(exemple :Table1.pa_ht="" ==> RqExemple.pa_ht=00000000.00
Table1.pa_ht=Null RqExemple.pa_ht="" au lieu de " "
Pour rpad(BO_CasinoReferentiel.libelle," ",50) j'uilise la fonction suivante qui me rajoute les espaces manquants pour que la chaine respecte les nombres de caractères demandé :
Mais pour le reste des champs, je ne sais pas comment faire ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Function Rpad(MyValue$, MyPadCharacter$, MyPaddedLength%) PadLength = MyPaddedLength - Len(MyValue) Dim PadString As String For x = 1 To PadLength PadString = MyPadCharacter & PadString Next Rpad = MyValue + PadString End Function
Merci
Partager