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

Access Discussion :

Comment modifier un champ dans une table liée ?


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Comment modifier un champ dans une table liée ?
    Bonsoir à tous,

    Je sais que le sujet est traité par la FAQ; mais je ne saisi pas comment réaliser ce qui est dit :

    Dans ce Workspace, ouvrez la database en fonction de la propriété connect de la table (ou de la propriété qui donne la base d'origine)
    Mon code, qui est le suivant, sert à modifier l'intitulé d'un champ spécifique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub AddDefault()
     
    Dim fldPV As DAO.Field
    Dim DateReg As Long
    Dim fldtext As Long
     
    DateReg = Me!SelecEx.Value
    fldtext = DateReg + 4
     
    Set fldPV = CurrentDb.TableDefs!TRegul.CreateField("PV" & fldtext, dbBoolean)
    CurrentDb.TableDefs("TRegul").Fields.Append fldPV
     
    End Sub
    Celui-ci fonctionne pour une table d'une base non fractionnée mais pour une table d'une autre base ...

    Merci par avance de votre aide

  2. #2
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    salut
    essai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub AddDefault() 
    Dim dbs as DataBase
    Dim fldPV As DAO.Field 
    Dim DateReg As Long 
    Dim fldtext As Long 
    Set dbs = NomCompletDeLaBD_Principale  'Chemin et nomBD
    DateReg = Me!SelecEx.Value 
    fldtext = DateReg + 4 
     
    Set fldPV = dbs.TableDefs!TRegul.CreateField("PV" & fldtext, dbBoolean) 
    dbs.TableDefs("TRegul").Fields.Append fldPV 
     
    End Sub
    j'espere que ça marchera
    @+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    Salut keita !
    Merci de ta réponse.

    Je n'arrive pas a définir le chemin de la base où se trouve mes données !

    Peux-tu me dire comment préciser cela :

    Set dbs = NomCompletDeLaBD_Principale 'Chemin et nomBD
    Mon chemin est logiquement "Z:\BasAI_princip.mdb";
    mais j'ai tout essayé, même en enlevant les guillemets et là erreur de compilation à chaque fois !

    Merci de ton aide.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Sinon, j'ai essayé cela :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Private Sub AddDefault()
    On Error GoTo Handle
     
    Dim dbs As Database, retPV
    Dim tblPV As DAO.TableDef
    Dim TableNameRes As String
    Dim fldPV As DAO.Field
    Dim DateReg As Long
    Dim fldtext As Long
     
    DateReg = Me!SelecEx.Value
    fldtext = DateReg + 4
     
    TableNameRes = "TRegul"
    Set dbs = CurrentDb
    retPV = dbs.TableDefs(TableNameRes).Connect
    Set tblPV = retPV
    Set fldPV = tblPV.CreateField("PV" & fldtext, dbBoolean)
    tblPV.Fields.Append fldPV
     
    Exit_Handle:
    Exit Sub
    Handle:
        MsgBox err.Number & " : " & err.Description, vbCritical, "AddDefault :"
        Resume Exit_Handle
    End Sub
    Mais il m'envoie un message d'erreur :

    434 : Objet requis !
    Quel objet ??? Je pense que mes variables sont mal déclarées; mais quoi ??... :

  5. #5
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    je pense qu'il s'agit des deux premières variables elles sont en effet mal déclarées.

    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim dbs As Database, retPV
    il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim dbs As DAO.Database, retPV as DAO.Database

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Bonjour à tous,

    J'ai bien essayé ce que tu dis Petogaz; mais le message d'erreur :

    424 : Objet requis !
    apparaît toujours.

    Je ne pense pas que cela vienne de ça donc; mais là je coince vraiment ...

    Si quelqu'un connaît la solution, merci d'avance .....

    @+

  7. #7
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    dans ce cas je pari que tu n'as pas ajouter une référence DAO à ton projet : Microsoft DAO 3.x object Library.
    voilà !

    ps : mais j'insiste pour la déclaration des variables qu'elle a été mal faite donc garde la correction que j'ai posté précédemment.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Salut,

    Non je t'assure que ma référence DAO est bien déclarée qui est d'ailleurs :
    Microsoft DAO 3.6 Object Library
    Sinon il y une erreur de compilation lorsque je déclare les variables comme tu me l'as dit au niveau de la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retPV = dbs.TableDefs(TableNameRes).Connect
    Utilisation incorrecte de cet objet (retPV) !
    Sinon avec mes variables aucune erreur de compil ! Mais toujours un message d'erreur lors de l'exécution ...

    Alors je veux bien que tu es raison mais access n'en veut pas apparement !

    Si tu as une idée, Merci
    @+

  9. #9
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    Citation Envoyé par HookerSeven
    Sinon avec mes variables aucune erreur de compil ! Mais toujours un message d'erreur lors de l'exécution ...
    ce que je pense c'est que ton code au départ comporte deux erreur :

    1) celle de la déclaration d'un recordset de type DAO.
    2) celle de l'affectation d'un objet à une variable.

    de quel type est retPV ? si ta variable est de type DAO.database alors ceci ne risque pas de marcher :

    puisque les deux variables sont sensé être de même type pour faire l'affectation.

    de plus que veux-tu faire réellement avec ton code ?

    as-tu compris ton code ?

    il me semble qui a des tutos sur le forum à propos de DAO. je te conseille de faire un tour et de voir comment on déclare des variables.(tuto de Tofalu sur DAO et tuto de Maxence sur la déclaration de variables de même type sur une ligne )

  10. #10
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    salut
    en tenant compte du chemin que tu donnes et des observations faites par Petogaz, ton code devrait ressembler à quelque chose comme ceci:
    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
    18
    19
    20
    Private Sub AddDefault() 
    On Error GoTo Handle 
     
    Dim dbs As DAO.Database   
    Dim tblPV As DAO.TableDef 
    Dim fldPV As DAO.Field 
    Dim fldtext As Long 
     
    fldtext = Me!SelecEx.Value + 4 
    Set dbs = OpenDatabase("Z:\BasAI_princip.mdb")
    Set tblPV = dbs.TableDefs("TRegul")
    Set fldPV = tblPV.CreateField("PV" & fldtext, dbBoolean) 
    tblPV.Fields.Append fldPV 
     
    Exit_Handle: 
    Exit Sub 
    Handle: 
        MsgBox err.Number & " : " & err.Description, vbCritical, "AddDefault :" 
        Resume Exit_Handle 
    End Sub
    j'espere que ceci marchera
    @+

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Merci keita !

    C'est bien cela je n'utiliseais pas l'action
    OpenDataBase
    .

    Merci à vous deux pour votre aide et de m'avoir enlever cette épine du pied.

    @+

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Merci keita !

    C'est bien cela je n'utiliseais pas l'action
    OpenDataBase
    .

    Merci à vous deux pour votre aide et de m'avoir enlever cette épine du pied.

    @+

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

Discussions similaires

  1. Comment modifier un champ dans une Table importée?
    Par Peter89 dans le forum Access
    Réponses: 1
    Dernier message: 06/09/2012, 20h36
  2. Comment modifier un enregistrement dans une table ?
    Par pimst37 dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/02/2008, 20h41
  3. Ajout d'un champ dans une table liée
    Par Herman dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 21/06/2007, 10h02
  4. Réponses: 12
    Dernier message: 19/06/2006, 16h26
  5. Réponses: 2
    Dernier message: 08/02/2006, 21h22

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