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 :

insertion des données de type mémo dans un champ de type texte


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Points : 167
    Points
    167
    Par défaut insertion des données de type mémo dans un champ de type texte
    Bonjour,

    Mon travail consiste à fusioner deux bases de structures differentes, la première sous Oracle 9i et la deuxième est en sql Server. Si j'ai postulé ici c'est parce que la base fusion est en Access.
    J'ai créé des liens à partir de ma base Access vers les autres bases.
    je fais des insertions dans la base Access,à partir des requêtes effectuées sur les deux base

    Parmi les champs des tables Oracle, il y'a le champ "REPONSE" qui est de type texte long, le lien Access vers ce champ le converti automatiquement en type Mémo (vu que les réponse peuvent dépasser 300 caractères). alors quand j'essaye d'inserer les données de ce champ dans un champ de ma base Access (qui est de type texte) ça marche pas.
    dans ma question est de savoir s'il y'a un moyen de convertir le type des données mémo en texte avant de les inserer (parce que je sais que les réponses que j'insére ne dépasse pas 50 caractéres)
    j'ai changé le type de donnée dans la base fusion, et j'ai mis mémo aussi, mais apparemment même mémo vers mémo ça marche pas.

    NB: je ne peux pas changer les types des données dans la base Oracle et la base sql Server, par contre je peux faire des changement dans la base fusion Access.

    je vous remercie d'avance

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

    Avant de transférer tes données, je pense que tu fais une requête ajout, inclus la fonction Left dans ta requête pour ne récupérer que les 50 premiers caratères.

    Starec

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Points : 167
    Points
    167
    Par défaut
    merci de m'avoir repondu.
    je vais voir ça de près

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Points : 167
    Points
    167
    Par défaut
    après plusieurs modifications dans ma requête, ça marche
    j'ais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Patient ( PAT_DemId, PAT_ExternalId )
    SELECT DISTINCT p.NIPATIENT, Left([r6].[REPONSE],40) AS Expr1
    FROM...
    mais cette fois je rencontre un nouveau problème, parmis les 2323 enregistrement, 93 provoquent une violation de clè;

    voici la structure de ma table Patient de destination
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Patient (PAT_DemId (Numérique (7)),PAT_ExternalId(Texte(50)),...)
    et voici les structures des tables sources:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    source_Patient(NIPATIENT(Numérique(7)),...)
    source_Reponse(NIR(Numérique(8)),REPONSE(Mémo),...)
    je présise quand même que quand j'essaye d'inserer seulement les données du champ PAT_DemId dans la table distination Patient, ça marche sans problème.

    Je vous remercie encore.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Points : 167
    Points
    167
    Par défaut
    Le problème vient du fait qu'il y a des doublant ou des enregistrement pareil avec une fois en minuscule et une fois en majuscule.
    je comprends pourquoi malgré "DISTINCT" dans ma requête, j'obtiens quand même des doublants, ma question est de savoir si DISTINCT agit sur tous les champs de la selection ou juste le premier champ.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Points : 167
    Points
    167
    Par défaut
    voici comment j'ai résolu finalement le problème
    http://www.developpez.net/forums/sho...98#post2240698

    merci encore pour votre aide

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

Discussions similaires

  1. [MySQL] Insertion des données de 2 checkbow dans ma base mysql
    Par snorky94 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/08/2012, 16h13
  2. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  3. [AC-2007] Extraction de mots dans un champ de type mémo
    Par soleil29 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 28/08/2009, 19h35
  4. Insertion des données d'un formulaire dans une base
    Par youssef222 dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2008, 00h16
  5. Réponses: 2
    Dernier message: 21/03/2008, 09h19

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