Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction "ALTER TABLE"

3 réponses
Avatar
ALF
Bonjour,

je ne comprends pas pourquoi ,apres avoir executé cette procedure,les
valeurs des dates retournent a vide...par contre, le type de champs a bien
changé..
ci joint la procedure:

Sub FORMATTXTDATE()

Dim dbs As Database
Set dbs = CurrentDb

dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [dossier]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date de naissance]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date reglement]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date validation
reglement]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date de naissance]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date resiliation]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date remise]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [sequence]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [code inter]text"
dbs.Close

End Sub
--
ALF

3 réponses

Avatar
Eric
Bonsoir ALF,

Je viens de tester et je n'ai pas ton problème.
Coment les dates sont-elles stockées dans le champ quand il est de type
Texte ?
Avec un champ Texte contenant des dates au format jj/mm/aaaa ou
jj-mm-aaaa, je n'ai pas de problème puisque je récupère les valeurs.

(ps: pourquoi définir le champ date de naissance une fois en texte et
une fois en date ?)


Bonjour,

je ne comprends pas pourquoi ,apres avoir executé cette procedure,les
valeurs des dates retournent a vide...par contre, le type de champs a bien
changé..
ci joint la procedure:

Sub FORMATTXTDATE()

Dim dbs As Database
Set dbs = CurrentDb

dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [dossier]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date de naissance]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date reglement]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date validation
reglement]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date de naissance]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date resiliation]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date remise]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [sequence]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [code inter]text"
dbs.Close

End Sub


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
ALF
bonjour eric,

toutes les dates sauf la date de naissance est de format texte comme celui
ci "20050204" et se positionne a droite,taille du champs 255,null
interdit:non,chaine vide autorisée:npn,indexé:non,compression unicode:non..
la date de naissance est elle en numerique,entier long,dec :auto,null
interdit:non,indexé:non...c'est pour cela que j ai prefere la transformer en
texte d une part puis en date apres...je n etais pas sur que le changement
direct numerique/date se fasse correctement....
merci de ton soutien..


--
ALF



Bonsoir ALF,

Je viens de tester et je n'ai pas ton problème.
Coment les dates sont-elles stockées dans le champ quand il est de type
Texte ?
Avec un champ Texte contenant des dates au format jj/mm/aaaa ou
jj-mm-aaaa, je n'ai pas de problème puisque je récupère les valeurs.

(ps: pourquoi définir le champ date de naissance une fois en texte et
une fois en date ?)


Bonjour,

je ne comprends pas pourquoi ,apres avoir executé cette procedure,les
valeurs des dates retournent a vide...par contre, le type de champs a bien
changé..
ci joint la procedure:

Sub FORMATTXTDATE()

Dim dbs As Database
Set dbs = CurrentDb

dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [dossier]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date de naissance]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date reglement]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date validation
reglement]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date de naissance]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date resiliation]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [date remise]date"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [sequence]text"
dbs.Execute "ALTER TABLE [NET HOST03LY]ALTER COLUMN [code inter]text"
dbs.Close

End Sub


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
Bonsoir ALF,

Compte tenu que tes dates en type texte ne correspondent pas à un format
de date convertible en date, je procèderai comme suit :
1 - MAJ par une requête de ton(tes) champ(s) au format d'une date
mais toujours en Texte (20051130 vers 30/11/2005);
2 - modifier le type du(des) champ(s) Texte vers Date.

Je ne suis pas sur que tu puisses tout faire en une seule opération.

Soit une table avec 2 champs : LeNom de type TEXTE et LaDate de type
TEXTE contenant des dates au format 20051130

Sub FORMATTXTDATE()
Dim dbs As Database
Set dbs = CurrentDb
Dim strSQL As String
strSQL = "UPDATE LaTable SET [LaDate] DateSerial(Left([LaDate],4),Mid([LaDate],5,2),Right([LaDate],2));"
dbs.Execute strSQL
dbs.Execute "ALTER TABLE [LaTable] ALTER COLUMN [LaDate] Date;"
dbs.Close
End Sub
(idem pour les autres champs DATE à convertir mais tout se fait dans la
même procédure - Faire une copie de la table au préalable)

bonjour eric,

toutes les dates sauf la date de naissance est de format texte comme celui
ci "20050204" et se positionne a droite,taille du champs 255,null
interdit:non,chaine vide autorisée:npn,indexé:non,compression unicode:non..
la date de naissance est elle en numerique,entier long,dec :auto,null
interdit:non,indexé:non...c'est pour cela que j ai prefere la transformer en
texte d une part puis en date apres...je n etais pas sur que le changement
direct numerique/date se fasse correctement....
merci de ton soutien..




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr