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 :

comment insérer une valeur provenant d'un champs texte dans une requête SQL


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 31
    Points : 22
    Points
    22
    Par défaut comment insérer une valeur provenant d'un champs texte dans une requête SQL
    Bonjour,
    je sèche sur un petit soucis.

    j'ai un formulaire de création de catégorie,
    avec à l'intérieur une zone de texte dans laquelle apparait le numéro d'indexation de cette catégorie.

    j'ai une zone de liste dans laquelle se trouve tout les articles de la catégorie créer.

    Je voudrais exporter la requête de cette zone de liste vers une table en lui attribuant l'index de catégorie.

    en gros
    la requête est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select tablearticle.index, tablearticle.nom from tablearticle where tablearticle.index = xxxx"
    et la zone de texte me.indexcat

    à exporter vers une table, sous le format
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tablearticle.index, tablearticle.nom, tablecategorie.indexcat ( = me.indexcat)
    voila.

    je crois que je ne suis pas très clair,
    je suis désolé mais les débuts sont difficiles.

    Bonne journée à vous

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Tu as au moins deux possibilités:
    1. Créer une requête action dans laquelle tu mets une référence à la zone de texte de ton formulaire.
      quelque chose du genre (non testé et à finaliser):

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      INSERT INTO Matable (index, nom, indexcat)
      SELECT index, nom, Index
      FROM tablearticle
      WHERE index = Forms!MonForm!MonChamp
    2. Tu crées dynamiquement l'instruction SQL en VBA, que tu exécutes via la commande Currentdb.Execute.

      qq chose du genre (non testé...)

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      Dim sSQL as string
      sSQL = "INSERT INTO Matable (index, nom, indexcat) " & _
                " SELECT index, nom, Index " & _
                " FROM tablearticle " & _
                " WHERE index = " & Me!MonChamp
      currentdb.Execute sSQL, dbFailOnError
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Bonjour merci de ta réponse,
    mais en fait, je crois que je n'ai pas bien expliqué.
    en fait,
    le champs supplémentaire à insérer dans la nouvelle table est un identifiant qui ne se trouve pas dans les tables sur lesquelles la requète se base.
    en gros je fais une rrequète qui va croiser des données de deux tables,
    je donne à ce résultat un identifiant (donc commun à chaque ligne du résultat) puis j'exporte ce résultat vers une autre table.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Bonjour,

    Tu as au moins deux possibilités:
    1. Créer une requête action dans laquelle tu mets une référence à la zone de texte de ton formulaire.
      quelque chose du genre (non testé et à finaliser):

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      INSERT INTO Matable (index, nom, indexcat)
      SELECT index, nom, Index
      FROM tablearticle
      WHERE index = Forms!MonForm!MonChamp
    2. Tu crées dynamiquement l'instruction SQL en VBA, que tu exécutes via la commande Currentdb.Execute.

      qq chose du genre (non testé...)

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      Dim sSQL as string
      sSQL = "INSERT INTO Matable (index, nom, indexcat) " & _
                " SELECT index, nom, Index " & _
                " FROM tablearticle " & _
                " WHERE index = " & Me!MonChamp
      currentdb.Execute sSQL, dbFailOnError

    ça y est j'ai trouvé,
    en fait t'étais pas loin de la solution , c'était plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim sSQL as string
    sSQL = "INSERT INTO Matable (index, nom, indexcat) " & _
              " SELECT index, nom, indexcat " & _
              " FROM tablearticle " & _
              " WHERE Me!MonChamp as index '( et pas index = & me!MonChamp)
    currentdb.Execute sSQL, dbFailOnError
    merci en tout cas de m'avoir mis sur la piste.
    bonne journée

  5. #5
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par carlostropico Voir le message
    ça y est j'ai trouvé,
    en fait t'étais pas loin de la solution , c'était plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim sSQL as string
    sSQL = "INSERT INTO Matable (index, nom, indexcat) " & _
              " SELECT index, nom, Index " & _
              " FROM tablearticle " & _
              " WHERE Me!MonChamp as index ( et pas index = & me!MonChamp
    currentdb.Execute sSQL, dbFailOnError
    merci en tout cas de m'avoir mis sur la piste.
    bonne journée

    Heu... cela m'ettonerait que cela soit bon
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    bah ça fonctionne pour moi,
    j'ai changé le deuxième index en indexcat dans le select,
    c'est peut être sur ça que tu louchais?

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

Discussions similaires

  1. [XL-2007] USF récupérer dans une valeur en fonction d'un choix dans une liste (Combobox)
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/07/2015, 15h48
  2. Affecter une valeur à un "Label" de champ texte
    Par CyberMen dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 09/05/2008, 21h49
  3. Valeur <Null> d'un champ date dans une requête
    Par GodGives dans le forum Développement
    Réponses: 2
    Dernier message: 02/10/2007, 13h56
  4. Valeur <Null> d'un champ date dans une requête
    Par GodGives dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/10/2007, 13h56
  5. [Débutant] Utilisation d'une valeur de la zone de texte dans une requête
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 13/07/2006, 10h42

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