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 SQL problème avec relation N-N


Sujet :

Requêtes et SQL.

  1. #21
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 325
    Points : 207
    Points
    207
    Par défaut
    ok je test avec IN et je reviens donner des nouvelles.

    Merci

  2. #22
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 325
    Points : 207
    Points
    207
    Par défaut
    Merci,
    Après quelques essais j'ai fini par y arrivé.

    voici ma solution:
    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
    19
    20
    21
    22
    23
    24
    Dim SQL As String
    Dim SQLA As String
     
     
    SQL = Me.lstTrouv.RowSource
    SQLA = "SELECT Identité.ID, Identité.[nom latin], Identité.type, Identité.feuillage, Identité.exposition, [ID/Util].AUtil"
    SQLA = SQLA & " FROM Identité INNER JOIN [ID/Util] ON Identité.ID = [ID/Util].IDPlante"
    SQLA = SQLA & " WHERE (Identité.ID IN (SELECT Identité.ID FROM (" & Replace(SQLA, ";", "") & ")))"
    SQLA = SQLA & " AND [ID/Util].AUtil ='" & Me.AUtil2 & "'"
    SQLA = SQLA & " ORDER BY Identité.[nom latin];"
     
    Me.lstTrouv.RowSource = SQLA
    Me.lstTrouv.Requery
     
    If Me.lstTrouv.ListCount = 1 Or Me.lstTrouv.ListCount = 0 Then
    Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plante"
    Else
    Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plantes"
    End If
    If Me.lstTrouv.ListCount = 0 Then
    btnPrint.Enabled = False
    Else
    btnPrint.Enabled = True
    End If
    Alors ca marche pas encore tout a fait correctement.
    Disons que pour un critère autre utilisation ca marche mais curieusement lorsque je met mon deuxième critère il ne tient plus compte du premier !
    Donc au lieu de cumuler mes critère il les remplace!

    Une idée?

  3. #23
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 325
    Points : 207
    Points
    207
    Par défaut
    J'ai donc trouver d'ou me vient une l'erreur j'avais SQLA dans les () au lieu de SQL.

    Donc maintentant ca m'ajoute bien le nouveau critère au premier mais si celui-ci est changer par l'utilisateur il ajoute encore cette condition au lieu de rafraichir.

    Je dois trouver un moyen de rafraichir systematiquement ma requete pour pas avoir les reste des autres selection!

  4. #24
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 325
    Points : 207
    Points
    207
    Par défaut
    CA Y EST!!!

    me suffisait de bien rafraichir chaque sous requete avant le nouvel evenement ce qui donne:

    1er autre utilisation:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    RefreshQuery
    If Not IsNull(Me.AUtil1) Then
    AUtil2.Visible = True
     
    Dim SQL As String
    Dim SQLA As String
     
    SQL = Me.lstTrouv.RowSource
    SQLA = "SELECT Identité.ID, Identité.[nom latin], Identité.type, Identité.feuillage, Identité.exposition "
    SQLA = SQLA & " FROM TAutrUtil INNER JOIN (Identité INNER JOIN [ID/Util] ON Identité.ID = [ID/Util].IDPlante) ON TAutrUtil.AutrUtil = [ID/Util].AUtil"
    SQLA = SQLA & " WHERE (Identité.ID IN (SELECT Identité.ID FROM (" & Replace(SQL, ";", "") & ")))"
    SQLA = SQLA & " AND TAutrUtil.AutrUtil ='" & Me.AUtil1 & "'"
    SQLA = SQLA & " ORDER BY Identité.[nom latin];"
     
    Me.lstTrouv.RowSource = SQLA
    Me.lstTrouv.Requery
     
    If Me.lstTrouv.ListCount = 1 Or Me.lstTrouv.ListCount = 0 Then
    Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plante"
    Else
    Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plantes"
    End If
    If Me.lstTrouv.ListCount = 0 Then
    btnPrint.Enabled = False
    Else
    btnPrint.Enabled = True
    End If
    2e autre utilisation:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub AUtil2_AfterUpdate()
    AUtil1_AfterUpdate
    If Not IsNull(Me.AUtil2) Then
    AUtil1.Locked = True
    AUtil3.Visible = True
     
    Dim SQL As String
    Dim SQLA As String
     
    SQL = Me.lstTrouv.RowSource
    SQLA = "SELECT Identité.ID, Identité.[nom latin], Identité.type, Identité.feuillage, Identité.exposition"
    SQLA = SQLA & " FROM TAutrUtil INNER JOIN (Identité INNER JOIN [ID/Util] ON Identité.ID = [ID/Util].IDPlante) ON TAutrUtil.AutrUtil = [ID/Util].AUtil"
    SQLA = SQLA & " WHERE (Identité.ID IN (SELECT Identité.ID FROM (" & Replace(SQL, ";", "") & ")))"
    SQLA = SQLA & " AND TAutrUtil.AutrUtil ='" & Me.AUtil2 & "'"
    SQLA = SQLA & " ORDER BY Identité.[nom latin];"
     
    Me.lstTrouv.RowSource = SQLA
    Me.lstTrouv.Requery
     
    MsgBox lstTrouv.RowSource
     
    If Me.lstTrouv.ListCount = 1 Or Me.lstTrouv.ListCount = 0 Then
    Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plante"
    Else
    Me.NCount.Caption = "Résultat : " & Me.lstTrouv.ListCount & " plantes"
    End If
    If Me.lstTrouv.ListCount = 0 Then
    btnPrint.Enabled = False
    Else
    btnPrint.Enabled = True
    End If
     
    Else
    AUtil1.Locked = False
    AUtil3.Visible = False
    AUtil3.Value = Null
    End If
     
    End Sub
    3e utilisations:
    ect...

    Merci a tous pour votre aide.
    Bon week end

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Requête sql problème avec un 'LIKE'
    Par Farow dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/10/2011, 09h31
  2. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  3. [SQL] Problème avec une requête
    Par jcmskip dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/04/2007, 11h41
  4. [SQL] Problème avec script de pagination et requête sql sur deux tables
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 14h06
  5. [SQL] problème avec ma requête UPDATE
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/04/2006, 11h26

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