IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Changer le format d'un champ d'une base


Sujet :

VBScript

  1. #1
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 380
    Points : 247
    Points
    247
    Par défaut Changer le format d'un champ d'une base
    Bonjour
    J'ai créé une base (mdb); mais je sais pas comment changer le format des dates et heures; lesquelles j'aurai voulu les avoir en abrégé.

    Voici un extrait du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    oBase.TableDefs.Append oTable
     Set oTable = oBase.CreateTableDef("Dates")
     with  oTable
     .Fields.Append .CreateField("nauto",  dblong)
     .Fields.Append .CreateField("date",   dbdate)
     .Fields.Append .CreateField("heured", dbtime)
    ....etc
    Windows 10
    Microsoft Edge (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    dbDate je reconnais 8 normalement dans dao, mais dbTime, je n'en suis pas très sûr. Laissez ça à côte pour le moment.

    Pour le champ "date", je pense que peut-être vous entendez un changement du format plutôt que le type lui-même? Par example, dans le Design UI, un type Date/Time peut prendre un format Medium Date. Prenons ça pour fixer l'idée. Si on veut changer de Medium Date à Short Date, on peut procéder par changer la propriété plutôt que par 4 sql: créer un champ temporaire, copier rows, supprimer le champ original, renommer le champ temporaire...

    Essayez ceci pour voir ça donne quelque chose que vous souhaîtez?
    Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set field=oTable.fields("date")
    on error resume next
    field.properties("Format")="Short Date"
    if err.number<>0 then
        wscript.echo err.number & "; " & err.description
    end if
    on error goto 0
    Quand on fait appeler aux propriétés, il est parfois compliqué parce que pas tous les types supportent tous les propriétés le système utilisée... Mais comme la question au départ n'est pas très claire, c'est ce que je peux proposer jusqu'à ce moment.

  3. #3
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 380
    Points : 247
    Points
    247
    Par défaut
    Bonjour tsuji
    je viens d'essayé le code, mais j'ai une erreur :
    Windows Script Host
    3270; Propriété non trouvée.

    Pour indication, je vais dans la base avec Access dans la table, onglet Général, ligne Format; celle-ci est vide. Bien sur je peux lui dire "Date, abrégé", mais cela oblige à avoir Access sur le PC (ce qui ne sera pas le cas lors de l'utilisation). C'est pourquoi je crée cette base avec VBS.
    Windows 10
    Microsoft Edge (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Bonjour Alain, la dénomination des propriétés peut être dépendant de locale. Faites une étude préliminaire pour découvrir leur nom, comme ça.
    Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    set field=oTable.fields("date")
    for i=0 to field.properties.count-1
        on error resume next
        wscript.echo field.properties(i).name & "=" & field.properties(i).value
        if err.number<>0 then
            wscript.echo "i=" & i & "; " & err.number & "; " & err.description
        end if
        on error goto 0
    next
    Voyez si il y a une propriété qui tombe dans le sens de "format". Sinon, on peut contempler de la créer: mais ça c'est pour plus tard.

  5. #5
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 380
    Points : 247
    Points
    247
    Par défaut
    Voila le résultat :
    http://cjoint.com/?3JknOlzRfKL
    Windows 10
    Microsoft Edge (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Je vois que, effectivement, la propriété Format n'y est pas là. Dans ce cas, on va essayer de la créer, comme ça, et vous pouvez librement experimenter un peu le format concret jusqu'à ce que vous souhaîtez avoir.
    Code vbscript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    propname="Format"
    proptype=10    'dbText=10
    propvalue="dd/mm/yyyy"
     
    set field=oTable.fields("date")
    on error resume next
    field.properties(propname)=propvalue
    if err.number=3270 then
        set oprop=field.createproperty(propname, proptype, propvalue)
        err.clear
        field.properties.append oprop
        if err.number<>0 then
            wscript.echo "property creation error: " & err.number & "; " & err.description
        end if
    end if
    on error goto 0

  7. #7
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 380
    Points : 247
    Points
    247
    Par défaut
    Excellent!
    cela fonctionne comme je voulais. Reste à moi de faire la même chose pour les heures.
    Merci infiniment.
    Windows 10
    Microsoft Edge (64 bits)
    Google Chrome Version 67.0.3396.99 (Build officiel) (64 bits)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer la taille d'un champ d'une table
    Par casawi dans le forum Oracle
    Réponses: 9
    Dernier message: 24/11/2010, 18h10
  2. Changer le format d'un champ d'un TCD en vba
    Par patate5555 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2007, 06h49
  3. Changer le format d'un champ en fonction d'une valeur
    Par zoom61 dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/06/2007, 21h35
  4. changer le type d'un champs d'une table = effacement des données ?
    Par pierre2410 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/05/2007, 11h22
  5. Changer le format d'un champ d'une table
    Par Cablan dans le forum Access
    Réponses: 2
    Dernier message: 14/12/2005, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo