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

VB 6 et antérieur Discussion :

[VB]modification tables liées VB/ACCESS


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut [VB]modification tables liées VB/ACCESS
    Bonjour,
    j'ai une appli en VB qui utilise une base access. Dans ma base acces j'ai 3 tables liées et je ne sais pas comment faire pour modifier un enregistrement d'une table et mettre les enregistrements liés à jour en même temps.
    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 79
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour

    Quelle structure pour tes tables liées: échelle, rateau? En clair, as-tu un table parent et deux tables enfant dépendant directement de cette table parent, ou alors une table parent, une table enfant dépendant de la table parent et une table sous/enfant dépendant de la première table enfant.

    Dis nous en également un peut plus sur la souce de ces tables, et si tu travailles sur un recordset hiérarchique. Et dis nous aussi dans quelle table l'enregistrement ce que tu veux mettre à jour se situe et ce que tu veux mettre à jour dans les autres tables.

    Tu vois, il y a du chemin à faire .

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    j'ai une table mère et deux tables filles dépendantes directement de cette table mère.

    Pour être clair mes tables sont:
    ALBUM(numAlbum,titre,genre,numAuteur,numFormat)
    AUTEUR(numAuteur,nom,prenom)
    FORMAT(numFormat,libelle)

    j'ai une interface avec des textbox dans lesquelles se trouve le resultat d'une requete "select nom,prenom,titre genre,format from ALBUM,AUTEUR,FORMAT where ALBUM.numAuteur=AUTEUR.numAuteur;"
    en modifiant la valeur d'une textbox par exemple "Nom" et après un click sur un bouton "modifier",je voudrais que ma base soit modifiée.
    Je ne sais pas si j'utilise un recordset hierarchique...

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par jacma
    Bonjour

    Quelle structure pour tes tables liées: échelle, rateau? En clair, as-tu un table parent et deux tables enfant dépendant directement de cette table parent, ou alors une table parent, une table enfant dépendant de la table parent et une table sous/enfant dépendant de la première table enfant.

    .
    Citation Envoyé par NAHIAG
    j'ai une table mère et deux tables filles dépendantes directement de cette table mère.

    Pour être clair mes tables sont:
    ALBUM(numAlbum,titre,genre,numAuteur,numFormat)
    AUTEUR(numAuteur,nom,prenom)
    FORMAT(numFormat,libelle)
    c'est pas de metre détail
    tu peut changer format et auteur sans souci
    pour album il faut que les valeurs des champs numAuteur,numFormat existe dans les autre tables (Auteur et Format )

  5. #5
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 79
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par NAHIAG
    j'ai une table mère et deux tables filles dépendantes directement de cette table mère.
    Donc effectivement une structure rateau.
    Je ne sais pas si j'utilise un recordset hierarchique...
    Il ne semble pas. mais nous y reviendrons.[/quote]
    en modifiant la valeur d'une textbox par exemple "Nom" et après un click sur un bouton "modifier",je voudrais que ma base soit modifiée.
    En fait ici, ton problème se résume à une simple liaison des zones de texte aux données. Donc, dès lors que les propriétés ad hoc de tes zones de texte sont déterminées correctement, toutes modifications qui y sont apportées sont AUTOMATIQUEMENT répercutées dans ta base.

    Ceci étant, revenons au type de recordset. Pour ce que tu veux, je pense qu'un recordset hiérarchique s'impose, même si ce n'est pas la seule solution. Un tel recordset contient un jeu d'enregistrements ayant une structure hiérarchique, donc contenant les informations structurées issues des trois tables. Ainsi, pour un enregistrement donné de la table Albums, tu accèdes à tous les enregistrements qui lui sont directement liés, et à ces seuls enregistrements. Donc pour un album, tu as
    son auteur et son format. Un tel recordset s'obtient en utilisant le provider MSDAtaShape et le code SQL suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    "SHAPE {SELECT * FROM `Albums`}  AS cmdAlbums " & _ 
    "APPEND ({SELECT * FROM `Auteurs`}  AS cmdAuteurs RELATE 'NumAuteur' TO 'NumAuteur') AS cmdAuteurs," & _
    ({SELECT * FROM `Formats`}  AS cmdFormats " & _ 
    "RELATE 'NumFormat' TO 'NumFormat') AS cmdFormats"
    Tu peux utiliser également un DataEnvironment avec trois objets Command, mais je crois qu'on en a deja parlé... D'ailleurs, la chaîne ci dessus est celle générée par un DataEnvironment, selon la structure accessible à l'adresse http://jacma.chez-alice.fr/Hierarchie.gif

    Dans ce cadre, tu peux ensuite définir dans les propriétés des composants de ta formes les liaisons. La propriété DataSource sera le DataEnvironment. Pour les zones de texte affichant les caractéristiques d'un album, la proprieté DataCommand sera la command correspondante (d'alias cmdAlbums), pour afficher les caractéristiques d'un auteur elle sera cmdAuteurs et pour afficher les caractèristiques s'un format, elle sera cmdFormats (avec les propriétés DataField ad hoc).

    Pour le reste, il te faut déterminer (analyser) ce que tu veux faire dans ta ou tes formes. Par exemple, tu pourrait vouloir une seule form te permettant de trouver, consulter, modifier et créer une nouvelle fiche album. Mais il te faut cependant prévoir également comment tu vas ajouter ou modifier les fiches Auteurs et Formats, sachant que tu ne pourras pas le faire dans le recordset hiérarchique. Donc deux form adhoc. C'est cela une analyse (à notre niveau).

    Voilà de quoi avancer. Bon courage et n'hésite pas

Discussions similaires

  1. [AC-2010] Gestionnaire de tables liées non accessible
    Par orkidoki dans le forum Access
    Réponses: 1
    Dernier message: 24/05/2013, 17h06
  2. [AC-2010] tables liées entre access et sql serveur express
    Par etienne8 dans le forum VBA Access
    Réponses: 10
    Dernier message: 10/02/2012, 20h27
  3. Tables liées dans access à mysql : impossible de modifier
    Par alex38 dans le forum Installation
    Réponses: 2
    Dernier message: 20/04/2006, 17h37
  4. Problème de table liées sous Access 2003
    Par FuRioX dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2006, 12h19
  5. Réponses: 2
    Dernier message: 09/02/2006, 14h03

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