Transformation de données sur une base access

cs_samtro Messages postés 2 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 6 juillet 2005 - 6 juil. 2005 à 11:35
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 6 juil. 2005 à 16:20
Bonjour,

je voudrais apporter 1 modifications sur une table nommé CPT_ECR_TYPE_ANA sur un nom de colonne numcompte



les chiffres sont actuellement soit sur 7 soit sur 10 et je
voudrais tous les passer sur 10 en complétant par des zéro pour ceux
qui sont sur 7 et en ne faisant rien à ceux qui sont sur 10.



exemple: 1101012 1101012000

1101013000 1101013000



Le code est en SQL sur access



par avance merci

4 réponses

fred.toto Messages postés 73 Date d'inscription mardi 10 avril 2001 Statut Membre Dernière intervention 4 mars 2009
6 juil. 2005 à 11:41
Dim stext As String
Dim i As Long

stext = "1101012"

If Len(stext) = 7 Then
For i = 1 To 3
stext = stext + "0"
Next
End If

Voila m'sieur
0
cs_samtro Messages postés 2 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 6 juillet 2005
6 juil. 2005 à 11:51
non il me faut le code en sql car access me demande du sql

je sais que je t'embête mais pour moi c'est mieux car je ne sais pas comment faire sinon
0
fred.toto Messages postés 73 Date d'inscription mardi 10 avril 2001 Statut Membre Dernière intervention 4 mars 2009
6 juil. 2005 à 14:27
Bon bon...
J'ai pondu ça en vitesse, teste si ça fonctionne chez toi et tiens moi au courant :)

Dim PrecRs As Recordset
Dim sSQL As String
Dim sCheminBase As String
Dim vField As Variant
Dim i As Long

Dim dBase As Database


sCheminBase = "c:..."
sSQL = "Select * from CPT_ECR_TYPE_ANA"


Set dBase = OpenDatabase(sCheminBase)
Set PrecRs = dBase.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)

With PrecRs
.MoveFirst
If Not .EOF And Not .BOF Then
Do Until .EOF
If Len(.Fields.Item("numcompte").Value) = 7 Then

vField = .Fields.Item("numcompte").Value

For i = 1 To 3
vField = vField + "0"
Next

dBase.Execute "update CPT_ECR_TYPE_ANA set numcompte = " & vField

End If
.MoveNext
Loop
End If
End With


PrecRs.Close
Set PrecRs = Nothing
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
6 juil. 2005 à 16:20
Rien de plus simple. Il suffit de multiplier par 1000 tous les nombres
qui sont composés de 7 chiffres... Donc pour cela il faut exécuter la
requête suivante:

UPDATE CPT_ECR_TYPE_ANA SET NumCompte = [NumCompte]*1000

WHERE (((Len([NumCompte]))=7));

N'oublies de mettre réponse acceptée
TBBUIM
0