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

Requêtes et SQL. Discussion :

[requête]problème de syntaxe dans une insertion


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [requête]problème de syntaxe dans une insertion
    Bonjour =)

    J'ai un petit soucis que j'aimerais soumettre.


    Suite à un import d'un fichier texte, j'ai une table contenant sur chaque ligne une occurence d'enregistrement, du nom de Reb.


    J'aimerais par des requêtes assigner chacune des colonnes de cette table dans des tables de correspondant à mon modèle relationnel. J'ai fait un peu de sql, mais j'ai du mal à le transposer dans ACCESS, malgré la lecture d'informations sur la syntaxe sur le site.


    ma table Reb a plusieurs colonnes dont HBADGE et HNUMOP, contenant des numériques, que j'aimerais transférer dans une table Operateur ( numOperateur, numerique, clef, venant de HBADGE ), une table Operation ( numOperation, numerique, venant de HNUM ) et une table faisant le lien Realise ( numOperateur, numOperation ).


    Dans la doc j'ai vu qu'une insertion n'était possible que sur une seule table source, j'ai donc essayé d'écrire une requête sql pour introduire mes données de HBADGE vers Operateur.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO Operateur (numOperateur)
    SELECT HBADGE
    FROM Reb
    WHERE HNUMOF='97102';

    HNUMOF étant une autre colonne de la table Reb ( d'import ) qui me sert d'identifiant pour chaque occurence.


    Je voudrais savoir si quelqu'un a une idée de ce qui pourrait poser soucis, Access me dit "type de donnée incompatible dans l'expression du critère ( je pense que ça vient du where ).


    Merci pour le temps que vous me consacrez ne serrait ce qu'en me lisant =)

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

    Si c'est du numérique enlève les '.

    Starec

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup =)



    Petite question subsidiaire : je voudrais ne faire l'insertion que si cette donnée n'est pas déjà présente dans la table. J'ai vu quelque part sur le forum un moyen de "faire taire" les erreurs en cas d'insertion, mais je ne trouve pas ça très propre.


    Je pense écrire une requête qui va vérifier toutes les clefs primaires de ma table, mais comment lier les deux faits ? Avec une macro, du code en vb ? Les requêtes donnent elles un résultat de retour selon leur éxécution ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Va jeter un coup du coté de DLookup , et des recherches avec ce terme sur le forum.

    Starec

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    DLookup RechDom La fonction RechDom (DLookup) recherche la valeur d'un champ particulier qui fait partie d'un jeu défini d'enregistrements (un domaine). Utilisez la fonction RechDom (DLookup) dans Visual Basic, une macro, une expression de requête ou un contrôle calculé de formulaire ou d'état.


    Nous verrons ici les fonctions DCount(), DLookUp() et DSum()

    Elles fonctionnent toutes selon le même modèle d'arguments :

    DLookup(expr As String, domaine As String[, critère As String])

    cette fonction permet de trouver la première correspondance à l'intérieur d'une table ou d'une requête selon une condition.




    expr nom du champ sur lequel porte la recherche (ex : [NomFamille]
    domaine nom de la table ou de la requête (ex : tblSalaires)
    critère condition Where du même type que celle des SQL sans le mot clé "WHERE" (ex : "[NomFamille]" = "Martin)


    DCount(expr As String, domaine As String[, critère As String])

    cette fonction bâtie sur le même modèle compte le nombre de réponses satisfaisant la condition.

    Dans notre exemple nous l'avons utilisée deux fois :
    DCount("*", "Medias") : pas de condition, la fonction renvoie le nombre total d'enregistrement de la table Medias.
    DCount("*", "Medias", SQLWhere) : on applique la condition formulée par les contrôles du formulaire, la fonction renvoie le nombre d'enregistrement correspondant.

    DSum(expr As String, domaine As String[, critère As String])
    cette fonction bâtie sur le même modèle fait la somme des réponses satisfaisant la condition

    De la matière pour bosser =) merci

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

Discussions similaires

  1. problème de syntaxe dans une requête SQL
    Par nutopia dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/11/2010, 17h17
  2. Problème de syntaxe dans une procédure
    Par Jcpan dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/03/2010, 14h14
  3. Problème de syntaxe dans une somme
    Par frisou65 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/09/2008, 16h01
  4. Problème de syntaxe dans une requête
    Par jncoffy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/02/2008, 08h53
  5. [POO] Probléme de syntaxe dans une classe
    Par jewelz dans le forum Langage
    Réponses: 3
    Dernier message: 03/11/2007, 03h57

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