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

IHM Discussion :

activer un enregistrement dans un sous formulaire [AC-2003]


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut activer un enregistrement dans un sous formulaire
    bonjour

    mon probleme est simple,mais pourriez vous me mettre sur une piste?
    je travaille sur une base ac-2003
    j'ai un formulaire appelé F ,qui contient deux choses:
    1) une liste deroulante appelé L (ayant comme source un seul champ d'une table appelé T ,et ce champ contient la liste des nom de fournisseurs )
    2)et un sous formulaire appelé SF (ayant comme source la table précité appeléT)

    QUESTION: je souhaites que quand je choisis un enregistrement de la liste L alors : un enregistrement du sous formulaire SF soit activé "mis en surbrillance"
    c'est à dire j'atteins la ligne de l'enregistrement qui contient le nom du fournisseur.

    pourriez vous m'indiquer un code evenementiel pour aprésMAJ de la liste deroulante L.
    sinon pourriez vous m'indiquer une piste de recherche .mais je suis debutant en vb . je ne sais pas comment utiliser Find-recordsetclone-dao bookmark-signet bookmark. si cela constituerait une piste valable et merci cordialement , car je suis a bout de soufle en tatonnant comme un aveugle

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 127
    Par défaut
    Bonjour,

    Il faudrait essayer un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Form_MaSousFenetre.Recordset.MoveFirst
    While Form_MaSousFenetre.Recordset!Monchamp<>MaValeur
      Form_MaSousFenetre.Recordset.MoveNext
    Wend
    Ca marche bien chez moi par contre je ne sais pas comment tester la fin de fichier si qqn a la réponse ça m'intéresse

    Un peu plus joli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Form_stock_histo.Recordset.MoveFirst
    For i = 1 To Form_stock_histo.Recordset.RecordCount
      If Form_stock_histo.Recordset!motif = MonMotif Then Exit For
      Form_stock_histo.Recordset.MoveNext
    Next

  3. #3
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Citation Envoyé par nico84 Voir le message
    Bonjour,

    Il faudrait essayer un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Form_MaSousFenetre.Recordset.MoveFirst
    While Form_MaSousFenetre.Recordset!Monchamp<>MaValeur
      Form_MaSousFenetre.Recordset.MoveNext
    Wend
    Ca marche bien chez moi par contre je ne sais pas comment tester la fin de fichier si qqn a la réponse ça m'intéresse
    C'est vraiment très laid La méthode Find existe autant s'en servir non ?

    http://warin.developpez.com/access/d...artie_5#L5.3.2

  4. #4
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut
    Citation Envoyé par Tofalu Voir le message
    C'est vraiment très laid La méthode Find existe autant s'en servir non ?

    http://warin.developpez.com/access/d...artie_5#L5.3.2
    merci Monsieur Tofalu
    j'ai utilisé la methode Find,mais en utilisant le code suivant, un message d'erreure m'indique que :
    la variable objet ou la variable du bloc with est non definie
    et cela concerne la ligne --> je souhaites vivement que l'on me suggère ce qui ne va pas car je n'avancerai plus sans votre aimable aide

    dans ce code j'ai testé si j'obtiendrait un resultat ,avec comme variable une requete SQL:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    strcritere= " nom fournisseur Like' ".....
    j'ai omis pour le moment la liste deroulante L
    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
    Option Compare Database
    Dim strcritere As String
    Dim rst As recordset
     
    Private Sub Form_Current()
    Set rst = Me.recordset
    End Sub
     
    Private Sub sf_Enter()
    Dim rst As recordset
    Dim strcritere As String
    Set rst = Me.recordset
    strcritere = " nom fourniseur Like'" & Chr(34) & "PARA*" & Chr(34)
    With rst
    .FindFirst strcritere
        If NoMatch Then
        MsgBox "client non trouvé"
        Else
           Do While True
           MsgBox rst("nom fournisseur")
           .FindNext strcritere
           If NoMatch Then Exit Do
           Loop
        End If
    End With
    End Sub
    'à la ligne FindFirst strcritere ,le message d'erreure m'indique que :
    '(variable objet ou variable Bloc With non definit).
    je penses que c'est la variable rst représentant le recordset qui n'est pas definit pourriez vous me guider vers une issue , et merci cordialement

  5. #5
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Je me demande si la construction de votre chaine strcritere n'est pas erronée.

    Peut-être avec des crochets, puisque le nom de votre champ est à espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcritere = " [nom fourniseur] Like'" & Chr(34) & "PARA*" & Chr(34)
    Et puis je me demande à quoi sert le quote après Like, puisque vous n'en mettez pas un deuxième?

    Pierre

  6. #6
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Par défaut
    Citation Envoyé par pier.antoine Voir le message
    Bonjour

    Je me demande si la construction de votre chaine strcritere n'est pas erronée.

    Peut-être avec des crochets, puisque le nom de votre champ est à espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcritere = " [nom fourniseur] Like'" & Chr(34) & "PARA*" & Chr(34)
    Et puis je me demande à quoi sert le quote après Like, puisque vous n'en mettez pas un deuxième?

    Pierre
    bonjour Pier.Antoine
    effectivement il me fallait des crochets pour le champ "nom fournisseur"
    et enlever le quote aprés Like.
    en plus il a falu aussi que je definisse la variable rst càd le (recordset).
    c'est fait et ca marche. je tiens a vous en remercier chaleureusement.
    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 sf_Enter()
    Dim db As DAO.Database
    Dim rst As DAO.recordset
    Dim strcritere As String
     
    Set db = CurrentDb
    strcritere = "[nom fournisseur] Like" & Chr(34) & " P*" & Chr(34)
    Set rst = db.OpenRecordset("SELECT F.[nom fournisseur] FROM F; ", dbOpenDynaset)
     
    With rst
      rst.FindFirst strcritere
    End With
     
    End Sub
    'c'est parfait
    petit problème : le FindFirst me donne le premier enregistrement du champ "nom fournisseur" ,et non le premier enregistrement selon la condition Like;
    question : devrai-je integrer le contenu de la variable strcritere dans la définition du recordset rst ?
    si vous auriez une idée prière de m'en faire part, et mille fois merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2007, 19h38
  2. Réponses: 4
    Dernier message: 06/12/2006, 17h04
  3. trier les enregistrements dans un sous-formulaire
    Par moicats dans le forum Access
    Réponses: 3
    Dernier message: 30/03/2006, 11h03
  4. Réponses: 4
    Dernier message: 28/02/2006, 20h12
  5. Réponses: 4
    Dernier message: 16/09/2005, 15h56

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