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 :

liste déroulante, requête SQL et valeur par défaut


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut liste déroulante, requête SQL et valeur par défaut
    Bonjour à tous,

    Je viens de fêter mon premier mois d'utilisation d'access et du VBA. Je ne suis donc pas encore totalement au point...

    J'ai un petit problème que je n'arrive pas à résoudre sur l'un de mes formulaires pour une application de suivi d'affaire. J'ai une liste déroulante et un champ dont je souhaite que la valeur par défaut change en fonction de la valeur de la liste déroulante. Pour cela je pense utiliser une requête SQL.

    Voici les tables:

    CodeNatureAnalytique, avec un champ CodeNA (texte) et un champ famille (texte)
    FamilleCode, avec un champ NomFamille (texte) et un champ CoeffCible (Numérique), qui classe les codes par famille, chaque famille ayant un coeffCible
    Prestation, avec un champ Code (texte) et un champ CoeffRetenu (Numérique). Le coeff retenu n'est pas forcément égal au coeff cible, mais il doit être proposé.

    Les deux premières tables sont des tables de données "constantes", l'utilisateur n'agit pas dessus directement.

    Le formulaire sur lequel j'ai ce problème est le formulaire lié à la table prestation. Il permet la saisie des données qui rempliront cette table, il y a donc une zone déroulante Code qui montre tous les CodeNA de la table CodeNatureAnalytique et une zone de texte Coeffretenu.

    But de la manip: En fonction de la valeur de code choisie dans la liste, mettre la valeur de coeffcible de sa famille dans la case coeffretenu (qui reste donc modifiable)

    J'ai mis le code suivant (trouvé dans "Access 2003 et VBA pour les nuls") sur l'événement AfterUpdate de la liste déroulante:

    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
    Private Sub Modifiable16_AfterUpdate()
     
    Dim mysql As String
    mysql = "SELECT [Code de Nature Analytique].Code, [Famille de codes].CodeFamille, [Famille de codes].CoeffCible FROM [Famille de codes] INNER JOIN [Code de Nature Analytique] ON [Famille de codes].CodeFamille = [Code de Nature Analytique].Famille WHERE (([Famille de codes].CodeFamille)=[code de nature analytique].[famille]) AND [Code de Nature Analytique].Code = '" & Me.Modifiable16.Value & "'"
     
    Dim cnn As ADODB.recordset
    Set cnn = CurrentProject.Connection
    Dim myRecord As New ADODB.recordset
    myRecord.ActiveConnection = cnn
     
    myRecord.Open mysql
     
    Me.Coeff_de_gestion.DefaultValue = myRecord.Fields(2).Value
     
    End Sub

    Hier, le bout de code ne renvoyait pas de bug, mais n'arrivait pas à remplir la case. Aujourd'hui, après réécriture, j'ai une incompatibilité de type sur la ligne "set cnn..."

    Bref, je suis dans l'impasse!

    Il y a forcément un truc que je ne comprends pas ou que j'ai mal fait, mais quoi...

    Merci d'avance de votre aide.

    Flu

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    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
    Private Sub Modifiable16_AfterUpdate()
    
    Dim mysql As String
    mysql = "SELECT [Code de Nature Analytique].Code, [Famille de codes].CodeFamille, [Famille de codes].CoeffCible FROM [Famille de codes] INNER JOIN [Code de Nature Analytique] ON [Famille de codes].CodeFamille = [Code de Nature Analytique].Famille WHERE (([Famille de codes].CodeFamille)=[code de nature analytique].[famille]) AND [Code de Nature Analytique].Code = '" & Me.Modifiable16.Value & "'"
    
    Dim cnn As ADODB.Connection
    Set cnn = CurrentProject.Connection
    Dim myRecord As New ADODB.recordset
    myRecord.ActiveConnection = cnn
    
    myRecord.Open mysql
    
    Me.Coeff_de_gestion.Value = myRecord.Fields(2).Value
    
    End Sub
    J'ai honte...

    Une erreur de recopie pour commencer...

    Ensuite, il suffit de mettre Value à la place de defaultvalue.

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

Discussions similaires

  1. [Débutant] Liste déroulante avec dataSet et valeur par défaut
    Par Kylia dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/05/2014, 10h36
  2. Liste déroulante Requête SQL Valeur par défaut
    Par nanou42 dans le forum Langage
    Réponses: 6
    Dernier message: 25/10/2012, 11h37
  3. Réponses: 4
    Dernier message: 01/11/2008, 09h41
  4. Réponses: 7
    Dernier message: 24/05/2006, 11h52
  5. [SQL - Access] Valeur par défaut d'un champs
    Par Demiurge dans le forum Access
    Réponses: 2
    Dernier message: 11/02/2005, 17h16

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