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 :

Chargement combo avec rowsource=requete SQL plutot que depuis objet recordset


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut Chargement combo avec rowsource=requete SQL plutot que depuis objet recordset
    Bonjour,

    lors d'un changement de valeur d'une combo je charge les valeurs d'une combo avec un recordset basé sur une requete paramétrée sur la valeur de la premiere combo.
    Probleme: je ne peux pas fermer les objets currentdb et recordset à l'issue de la procédure et attribuer les valeurs "nothing" aux variables. Je suis donc parti sur l'utilisation de .rowsource pour attribuer les valeurs à la deuxieme combo, toujours en utilisant lameme requete SQL: c'est un code tout bete, mais il ne marche pas!! Le voici ci dessous, avec le code qui fonctionne en commentaire. Je joins aussi le fichier au cas ou le pb vienne d'une interaaction que je ne connais pas.
    Merci d'avance.
    Etxe.

    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
    Private Sub ldActivite_Change()
     
     
    Dim dbDatabase As Database
    Dim oRecordsetListeSalaries As Recordset
    Dim strParametreActivite As String
    Dim strSQL As String
     
     
    strParametreActivite = Me.ldActivite.Value
    strSQL = "SELECT tListeSalaries.CleSalarie,tListeSalaries.Prenom_Nom FROM tListeSalaries WHERE tListeSalaries.Actif_inactif =" & Chr(34) & strParametreActivite & Chr(34)
     
    Me.combNomPrenomSalarie.RowSourceType = "Table/Query"
    Me.combNomPrenomSalarie.RowSource = strSQL
     
    'Me.Requery
    'Me.Refresh
     
    '
    'Set dbDatabase = CurrentDb
    'Set oRecordsetListeSalaries = dbDatabase.OpenRecordset("SELECT tListeSalaries.CleSalarie,tListeSalaries.Prenom_Nom FROM tListeSalaries WHERE tListeSalaries.Actif_inactif =" & Chr(34) & strParametreActivite & Chr(34))
    'Set combNomPrenomSalarie.Recordset = oRecordsetListeSalaries
     
    ''oRecordsetListeSalaries.Close
    'dbDatabase.Close
    '
    ''Set dbDatabase = Nothing
    ''Set oRecordsetListeSalaries = Nothing
     
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 636
    Points : 14 607
    Points
    14 607
    Par défaut
    bonsoir,
    charger un Recordset pour remplir une liste déroulante est inappropriée et c'est ce qui fait que cela ne fonctionne pas, il faut donc enlever les instructions qui empêchent le bon fonctionnement :
    - au chargement du formulaire supprimer les instructions inutiles:
    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
    Private Sub Form_Load()
     
    '===> NON Dim dbDatabase As DAO.Database
    '===> NON Dim oRecordsetSourceListeSalaries As DAO.Recordset
     
    '===> NON set strSQL  = "SELECT tTableTest.ChampTest FROM tTableTest"
    '===> NON Set dbDatabase = CurrentDb
    '===> NON  Set oRecordsetSourceListeSalaries = dbDatabase.OpenRecordset("SELECT tListeSalaries.CleSalarie,tListeSalaries.Prenom_Nom FROM tListeSalaries")
    '===> NON Set Me.combNomPrenomSalarie.Recordset = oRecordsetSourceListeSalaries
     
    '====> OUI pour les instructions qui suivent:
    Dim strSQL As String
    strSQL = "SELECT tListeSalaries.CleSalarie,tListeSalaries.Prenom_Nom FROM tListeSalaries" 
    Me.combNomPrenomSalarie.RowSource = strSQL
    'ou bien, si on la veut vide à l'ouverture:
    Me.combNomPrenomSalarie.RowSource =""
     
    Me.SFListeSalaries.Enabled = False
    Me.SFListeSalaries.Locked = True 'true bloque la modif des enregistrements
    End Sub
    - faire au plus simple pour charger le Rowsource de la deuxième liste déroulante sur l'évènement Change de la première liste déroulante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ldActivite_Change()
     
    Dim strSQL As String
    strSQL = "SELECT tListeSalaries.CleSalarie,tListeSalaries.Prenom_Nom FROM tListeSalaries WHERE tListeSalaries.Actif_inactif =" & Chr(34) & Me.ldActivite.Value & Chr(34)
    Me.combNomPrenomSalarie = ""
    Me.combNomPrenomSalarie.RowSource = strSQL
    End sub
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Somme avec une requete sql
    Par virtuose dans le forum Langage SQL
    Réponses: 8
    Dernier message: 26/01/2006, 16h32
  2. Problème avec une requete SQL sous access
    Par Luther13 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 14/12/2005, 10h39
  3. probleme avec creation requete sql server
    Par Firas_tn dans le forum MS SQL Server
    Réponses: 19
    Dernier message: 15/04/2005, 12h12
  4. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  5. [ORACLE][SQL] procedure sous delphi avec une requete SQL
    Par nivet dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/11/2004, 13h43

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