cs_colby
Messages postés129Date d'inscriptionmardi 10 mai 2005StatutMembreDernière intervention14 novembre 2022
-
5 janv. 2016 à 07:09
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
11 févr. 2016 à 10:19
Bonjour,
J'ai utilisé un code de cs_Le Pivert pour créer une base access. Mais je voudrais appliquer un format au champ "ID" pour avoir une série au format "0000001" ainsi de suite. La création de la base étant faite par code comment y ajouter par code le format du champ?
Merci d'avance
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 Modifié par ucfoutu le 5/01/2016 à 08:21
Bonjour,
La création dynamique d'une table Access ne permet à ma connaissance pas de définir un format de champ. Elle ne permet de définir que les éléments suivants :
- table (le nom à lui donner)
- champ (noms du champ)
- type à donner au champ
- longueur du champ en caractères (pour les champs texte)
- index du champ (Clause CONSTRAINT)
- indexmultichamp (Clause CONSTRAINT)
Rappelons que de toutes manières : le format d'un champ (que l'on peut définir manuellement dans Access), n'affecte en rien l'enregistrement de la donnée du champ. Il n'est utilisé que lors de l'affichage d'un jeu d'enregistrement résultant d'une requête.
Rien ne t'empêche donc d'extraire la donnée, puis de l'afficher toi-même au format que tu souhaites.
Pour info, sous VB6 :
toto = "12" MsgBox Format(toto, "0#####")
affichera "000012"
M'étonnerait que l'équivalent VB.Net n'existe pas
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
merci ucfoutu
Tout en cherchant j'ai composé deux petites fonctions et cela marche. Si correction il y a n'hesite pas. merci encore
Function ZeroAgaucheSerie(ByVal Numero As String) As String
Dim I, Vide As Integer : Dim Remplir As String = "" : Vide = Len(Trim(Numero))
If Vide < 10 Then
For I = 1 To 10 - Vide
Remplir = "0" & Remplir
Next I
End If
ZeroAgaucheSerie = Remplir & Numero
End Function
Function RemplcerZeroSerie(ByVal Numero As String) As String
Dim I, Vide As Integer : Dim Remplir As String = "" : Vide = Len(Trim(Numero))
If Vide < 10 Then
For I = 1 To 10 - Vide
Remplir = "" & Remplir
Next I
End If
RemplcerZeroSerie = Remplir & Numero
End Function
Merci
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212
>
cs_colby
Messages postés129Date d'inscriptionmardi 10 mai 2005StatutMembreDernière intervention14 novembre 2022 Modifié par ucfoutu le 11/02/2016 à 10:29
Que veux-tu que je te dise ?
J'en reste tout simplement baba !
Qu'est donc une telle plaisanterie qu'effectue (dans ta 2ème fonction) :
If Vide < 10 Then For I = 1 To 10 - Vide Remplir = "" & Remplir Next I End If
Qui fait que remplir, vide au départ, est toujours vide in fine ....
A tout hasard (car je devine) "" n'est pas " "
PS : ce ne sont pourtant pas les fonction de VB qui manquent pour formater directement une chaîne de caractères, sans boucle !
Modifié par cs_colby le 10/02/2016 à 11:58
Tout en cherchant j'ai composé deux petites fonctions et cela marche. Si correction il y a n'hesite pas. merci encore
Function ZeroAgaucheSerie(ByVal Numero As String) As String
Dim I, Vide As Integer : Dim Remplir As String = "" : Vide = Len(Trim(Numero))
If Vide < 10 Then
For I = 1 To 10 - Vide
Remplir = "0" & Remplir
Next I
End If
ZeroAgaucheSerie = Remplir & Numero
End Function
Function RemplcerZeroSerie(ByVal Numero As String) As String
Dim I, Vide As Integer : Dim Remplir As String = "" : Vide = Len(Trim(Numero))
If Vide < 10 Then
For I = 1 To 10 - Vide
Remplir = "" & Remplir
Next I
End If
RemplcerZeroSerie = Remplir & Numero
End Function
Merci
Modifié par ucfoutu le 11/02/2016 à 10:29
J'en reste tout simplement baba !
Qu'est donc une telle plaisanterie qu'effectue (dans ta 2ème fonction) :
Qui fait que remplir, vide au départ, est toujours vide in fine ....
A tout hasard (car je devine) "" n'est pas " "
PS : ce ne sont pourtant pas les fonction de VB qui manquent pour formater directement une chaîne de caractères, sans boucle !
Ouvrir MSDN (sur ta machine) et y lire ce que je trouve sur le Net (je n'ai pas MSDN de VB.Net sur ma machine) :
https://msdn.microsoft.com/fr-fr/library/system.string.format%28v=vs.110%29.aspx