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 :

compléter une table avec des infos d'une autre table [Toutes versions]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 38
    Points
    38
    Par défaut compléter une table avec des infos d'une autre table
    Bonjour,

    j'ai une table des hospitalisations avec les champs : nom, pren, ndosm, date_admission, cp, com.
    où le champs ndosm est le numéro de dossier le la clé unique de la table SIG (signalétique).
    Dans ma table hospitalisations, les champs cp et com devraient être remplis avec les données de la table SIG.
    j'ai donc essayé un 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
    18
     Dim dbs As DAO.Database
        Dim rst As DAO.Recordset 'pour lire table HOS
        Dim rst_dos As DAO.Recordset 'pour lire la table DOS
        Dim rst_hospitalisations As DAO.Recordset 'pour lire la table hospitalisations
        Dim rst_sig As DAO.Recordset
    Set rst_hospitalisations = CurrentDb.OpenRecordset("SELECT * FROM HOSPITALISATIONS;")
     Do Until (rst_hospitalisations.EOF)
          rst_hospitalisations.Edit
          find_ndosm = rst_hospitalisations.Fields("ndosm").Value
          string_sql = "SELECT cp, com FROM [ATSDEV_SIG]" ' WHERE " & find_ndosm & " = " & "[ATSDEV_SIG].[NDOSM]"
          MsgBox ("sql : " & string_sql)
          Set rst_sig = CurrentDb.OpenRecordset("string_sql;")
          rst_hospitalisations.Fields("cp") = rst_sig.Fields("cp").Value
          rst_hospitalisations.Fields("com") = rst_sig.Fields("com").Value
          rst_hospitalisations.Update
          rst_hospitalisations.MoveNext
     
        Loop
    j'ai une erreur à l'exécution sur la ligne Set rst_sig = CurrentDb.OpenRecordset("string_sql;").
    L'erreur est la 3078 'le moteur de base de données ne peut pas trouver la table ou la requête 'string_sql'
    Si vous avez une idée pour résoudre mon problème, ce serait cool.

    Merci d'avance,

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Peut-être simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set rst_sig = CurrentDb.OpenRecordset(string_sql,dbOpenDynaset)
    Et pourquoi tu veux recopier tes données dans la table hospitalisation alors que tu peux y avoir accès avec les champs ndosm et tu peux créer une requête avec les 2 tables ?

    Cordialement,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    bonjour,

    c'est magnifique, cela fonctionne.

    pourquoi je ne fais pas via requête ? Je n'y connais rien en access et la table sig est liée à un environnement de production, j'ai un peu peur de faire des liens avec des requêtes qui modifieraient ma table d'origine.


    Encore merci, la solution me convient vraiment.


    Bien à vous,

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/04/2013, 12h45
  2. Réponses: 10
    Dernier message: 16/03/2009, 15h41
  3. Réponses: 11
    Dernier message: 18/10/2007, 12h49
  4. Réponses: 5
    Dernier message: 12/03/2007, 10h21

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