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

Bases de données Delphi Discussion :

Insertion sous Access avec Compos ADO


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut Insertion sous Access avec Compos ADO
    Salut à tous.
    Je dois realiser une appli d'analyse/Statistique qui se connecte sous SQL Server ou en local avec une base Access.
    J'ai du implementer un module de synchro SQL Server/Access avec les compos ADO.
    Or, j'ai un message d'erreur :
    Type de donnée incompatible dans l'expression du critère
    des que je tente d'inserer des données dans la table Access avec les compos ADOTable, ADoQuery.
    J'ai déjà parcouru ce forum pour rechercher des pistes, mais aucun n'a pas résolu mon problème.

    Merci

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Pourrais tu montrer le code et/ou la requete que tu utilises pour faire l'insertion des données ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Je m'excuse, j'aurais du le poster avant.

    Le voici avec un ADoQuery.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            Qry_insert.Parameters.ParamByName('DATE_DOC').Value   := DM.Qry_CA.FieldByName('DATE_DOC').AsDateTime;
            Qry_insert.Parameters.ParamByName('DATE_DOC').Value   := DM.Qry_CA.FieldByName('DATE_DOC').AsString;
            Qry_insert.Parameters.ParamByName('ANNEE').Value   := DM.Qry_CA.FieldByName('ANNEE').AsInteger;
            Qry_insert.Parameters.ParamByName('MOIS').Value   := DM.Qry_CA.FieldByName('MOIS').AsInteger;
            Qry_insert.Parameters.ParamByName('FAMILLE').Value   := DM.Qry_CA.FieldByName('FAMILLE').AsString;
            Qry_insert.Parameters.ParamByName('ARTICLE').Value   := DM.Qry_CA.FieldByName('ARTICLE').AsString;
            Qry_insert.Parameters.ParamByName('MONTANT').Value   := DM.Qry_CA.FieldByName('MONTANT').AsFloat;
            Qry_insert.Parameters.ParamByName('QTE').Value      := DM.Qry_CA.FieldByName('QTE').AsFloat;
            Qry_insert.Parameters.ParamByName('MARGE').Value   := DM.Qry_CA.FieldByName('MARGE').AsFloat;
            Qry_insert.Parameters.ParamByName('MARQUE').Value   := DM.Qry_CA.FieldByName('MARQUE').AsString;
            Qry_insert.ExecSQL;
    La même avec un ADOTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
           Tbl_ca.Append;
            Tbl_ca.FieldByName('DATE_DOC').AsDateTime   := DM.Qry_CA.FieldByName('DATE_DOC').AsDateTime;
            Tbl_ca.FieldByName('CLIENT').AsString       := DM.Qry_CA.FieldByName('CLIENT').AsString;
            Tbl_ca.FieldByName('ANNEE').AsInteger       := DM.Qry_CA.FieldByName('ANNEE').AsInteger;
            Tbl_ca.FieldByName('MOIS').AsInteger        := DM.Qry_CA.FieldByName('MOIS').AsInteger;
            Tbl_ca.FieldByName('FAMILLE').AsString      := DM.Qry_CA.FieldByName('FAMILLE').AsString;
            Tbl_ca.FieldByName('ARTICLE').AsString      := DM.Qry_CA.FieldByName('ARTICLE').AsString;
            Tbl_ca.FieldByName('MONTANT').AsFloat    := DM.Qry_CA.FieldByName('MONTANT').AsFloat;
            Tbl_ca.FieldByName('QTE').AsFloat           := DM.Qry_CA.FieldByName('QTE').AsFloat;
            Tbl_ca.FieldByName('MARGE').AsFloat      := DM.Qry_CA.FieldByName('MARGE').AsFloat;
            Tbl_ca.FieldByName('MARQUE').AsString       := DM.Qry_CA.FieldByName('MARQUE').AsString;
            Tbl_ca.Post;
            DM.Qry_CA.Next;
    Merci

  4. #4
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Sinon, serait ce possible d'utiliser d'autres techno hormis le BDE pour utiliser Access.
    Je sais que c'est lourd, mais je ne peux pas rester comme ça.

    Merci

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Souvent le problème vient des dates, Access attend un format bien spécifique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Qry_insert.Parameters.ParamByName('DATE_DOC').Value   := FormatDateTime('MM/DD/YYYY hh:mm:ss' ,DM.Qry_CA.FieldByName('DATE_DOC').AsDateTime);
    // Qry_insert.Parameters.ParamByName('DATE_DOC').Value  := DM.Qry_CA.FieldByName('DATE_DOC').AsString;
    // t''en a mis un en trop ;)

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      OldDateFormat : String;
    begin
     // ...
      OldDateFormat := ShortDateFormat;
      ShortDateFormat := 'MM/DD/YYYY';
     Tbl_ca.FieldByName('DATE_DOC').AsDateTime := DM.Qry_CA.FieldByName('DATE_DOC').AsDateTime;
      ShortDateFormat := OldDateFormat;
    Les deux solutions sont possible pour chaque exmple
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  6. #6
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Malatar.

    Merci de te pencher sur ce problème.
    J'ai suivi tes conseils mais le problème reste entier.
    Ce qui m'enerve ce que des fois j'arrive à faire 1 ou 2 insertions et après le message d'erreur apparait.
    En pièce jointe la structure de la table Access

    Merci

  7. #7
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Sinon,
    Existe t il une autre altérnative à Access utilisant la techno ADO.

    Merci

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

Discussions similaires

  1. insertion sous access avec clé primaire génèré
    Par alex61 dans le forum VB.NET
    Réponses: 11
    Dernier message: 14/01/2011, 10h45
  2. Réponses: 1
    Dernier message: 19/09/2008, 09h56
  3. [SQL]Problème requete sql sous access avec vba
    Par aaliyan dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 13/04/2007, 18h53
  4. Requete sous Access avec AND et OR
    Par paflolo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/02/2006, 10h35
  5. Réponses: 8
    Dernier message: 20/02/2006, 23h25

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