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

VBA Access Discussion :

ALTER TABLE en VB


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut ALTER TABLE en VB
    Bonjour,

    j'ai un problème concernant cette instruction SQL que je n'arrive pas à m'expliquer.

    Quand je crée une requête sur ACCESS avec cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "ALTER TABLE nomTable ADD COLUMN Datedujour DATETIME;"
    Cela marche niquel.
    Par contre, quand je le mets dans mon code VBA avec un traitement associé à cette nouvelle colonne, la base plante (ne répond plus)...

    Voici le code :

    Code : 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
    17
     
    Me!Date_en_traitement.SetFocus
    DoCmd.RunCommand acCmdCopy
     
    DoCmd.OpenTable Table, acViewNormal, acEdit
    'DoCmd.RunCommand acCmdInsertTableColumn
     
    Set AjoutColonne = CurrentDb.CreateQueryDef("Téléphonie_" & Date_traitée & "", "ALTER TABLE Téléphonie_" & Date_traitée & " ADD COLUMN Datedujour DATETIME;")
    AjoutColonne.Execute
     
    For Ligne = 1 To 24
        DoCmd.RunCommand acCmdPaste
        DoCmd.RunCommand acCmdRecordsGoToNext
     
    Next
     
    DoCmd.RunCommand acCmdClose
    Peut-être ai je loupé une subtilité. J'ai essayé avec un DoCmd.RunSQL, ça ne fonctionne pas non plus.

    Ca marche avec 'DoCmd.RunCommand acCmdInsertTableColumn, apparaissant là en commentaire, mais en fait je veux créer la nouvelle colonne avec un nom (au lieu de Champ1).

    Merci par avance de votre aide

    EDIT : AjoutColonne est défini de la façon suivante : Dim AjoutColonne As QueryDef

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.RunSql ("ALTER TABLE nomTable ADD COLUMN Datedujour DATETIME;")
    Starec

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    Oui, j'ai testé ces deux méthodes (DoCmd.RunSQL et en passant par un objet QueryDef) => même problème dans les deux cas

    EDIT : Est il possible par hasard de spécifier le nom d'une colonne dans la méthode

    DoCmd.RunCommand acCmdInsertTableColumn

    ???

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Pourquoir passer par un objet query def, juste cette instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.RunSql ("ALTER TABLE nomTable ADD COLUMN Datedujour DATETIME;")
    Cela fonctionne je viens de le tester

    Starec

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Par défaut
    Ben, je comprends pas du tout de quoi vient le problème alors :

    Code : 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
    17
     
    Table = "Téléphonie_" & Date_traitée
     
    Me!Date_en_traitement.SetFocus
    DoCmd.RunCommand acCmdCopy
     
    DoCmd.OpenTable Table, acViewNormal, acEdit
    'DoCmd.RunCommand acCmdInsertTableColumn
     
    DoCmd.RunSQL ("ALTER TABLE Téléphonie_" & Date_traitée & " ADD COLUMN Datedujour DATETIME;")
     
    For Ligne = 1 To 24
        DoCmd.RunCommand acCmdPaste
        DoCmd.RunCommand acCmdRecordsGoToNext
     
    Next
    DoCmd.RunCommand acCmdClose
    Et j'ai le même souci, plantage de la base. Si je mets la commande SQL en commentaire et remets valide la ligne au dessus, la colonne se crée bien (mais avec le nom Champ1). Si cela marche chez toi, je ne comprends pas pourquoi ça plante pour moi :/

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Le nom de ta table c'est : Téléphonie_" & DateTraitée & ", n'est ce pas ?

    1 - Eviter tous les accents
    2 - Met le nom de ta table entre crochet
    3 - DateTraitée est donc une variable, elle doit être au format texte, utilise la fonction cstr pour la convertir.

    Il n'y a pas de raison que cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.RunSQL ("ALTER TABLE [Téléphonie_" & Date_traitée & "] ADD COLUMN Datedujour DATETIME;")
    Starec

Discussions similaires

  1. Renommer une colonne avec ALTER TABLE...
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2004, 10h33
  2. [débutant] conseils sur contraintes et alter table
    Par maysa dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 26/05/2004, 09h03
  3. [Delphi 2] Alter Table
    Par Form_Load dans le forum Bases de données
    Réponses: 11
    Dernier message: 23/04/2004, 14h26
  4. Probleme 'ALTER TABLE' et 'FOREIGN KEY'
    Par maahta dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/09/2003, 14h25
  5. Alter table qui ne passe...
    Par Gential dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/06/2003, 17h48

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