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

VBA Access Discussion :

RecordSetClone dans un formulaire comportant deux sous formulaires [AC-2016]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 59
    Par défaut RecordSetClone dans un formulaire comportant deux sous formulaires
    Bonsoir aux membres de DVP!

    Je viens avec une autre préoccupation:

    je voudrais, à partir d'une liste déroulante, afficher un enregistrement basé sur un formulaire "F_Vente" comportant deux sous formulaires "sFrm_DetailsVentes" et "sFrm_DetailsPaiements"

    j'ai utilisé le code ci-après:
    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
    Private Sub RechercherFacture_AfterUpdate()
     
    Me.Filter = "" 
     
    With Me.RecordsetClone
     
          .FindFirst "N°Facture=" & Nz(Me.CmbRechercherFacture, 0)
     
          If Not (.NoMatch) Then 
             Me.Bookmark = .Bookmark 
          Else ' Sinon
             MsgBox "Facture absente !",,"Recherche Facture"
             Me.RechercherFacture.Undo 
          End If
     
       End With
    End Sub
    aucun enregistrement trouvé.

    et même avec ce code:

    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 RechercherFacture_AfterUpdate()
    Dim rst  As DAO.Recordset
    Me.Filter = "" 
    Set rst = Forms![F_Vente].RecordsetClone
    rst.FindFirst "[N°Facture]='" & Nz(Me.RechercherFacture, 0) & ""
    If Not (rst.NoMatch) Then 
    Forms![F_Vente].Bookmark = rst.Bookmark
     
    Set rst = Forms![F_Vente]![sFrm_DetailsVentes].Form.RecordsetClone
    rst.FindFirst "[N°Facture]='" & Nz(Me.RechercherFacture, 0) & ""
    If Not (rst.NoMatch) Then
    Forms![F_Vente]![sFrm_DetailsVentes].Form.Bookmark = rst.Bookmark
    Else 
    MsgBox "Facture Absente !", , "Recherche Facture" 'message
    Me.RechercherFacture.Undo 
    End If
    End If
     
    'End With
    End Sub

    sans succès.

    une aide de votre part sera la bienvenue.

    Au plaisir de vous lire

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 415
    Par défaut
    Bonjour.

    Personnelement j'ai trouvé que passer par Recordsetclone n'apporte que des complications.
    Voici comment je fais mes recherches :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    set r as dao.recordset:set r=me.recordset
    call r.findfirst("[N°Facture]=" & Nz(Me.CmbRechercherFacture, 0))
     
    if r.nomatch then
        MsgBox "Facture " & Me.CmbRechercherFacture & " absente !", vbInformation, "Recherche Facture"
    end if
     
    set r=nothing
    Si Access trouve l'enregistrement, il se positionne dessus.
    Pas besoin de passer par Bookmark.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 59
    Par défaut
    Bonjour Marot_r et aux membres de DVP.

    Merci pour la réponse rapide. J'ai testé le code donné par Marot_r ce matin, mais rien ne se passe. sais pas ce que j'oublie. et le msgbox n'affiche pas le numéro renseigné sur la liste déroulante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub RechercherFacture_AfterUpdate()
    Dim r As DAO.Recordset: Set r = Me.Recordset
    Call r.FindFirst("[N°Facture]='" & Nz(Me.RechercherFacture, 0) & "'")
     
    If r.NoMatch Then
        MsgBox "Facture " & Me.RechercherFacture & " absente !", vbInformation, "Recherche Facture"
    End If
     
    Set r = Nothing
    end sub

    pour rappel: mon formulaire comporte deux sous formulaires et je voudrai rechercher un enregistrement.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 415
    Par défaut
    Bonjour.

    Si ton numéro de facture est un nombre entier, réel ou autonum alors il ne faut pas mettre de délimteurs.

    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call r.FindFirst("[N°Facture]=" & Nz(Me.RechercherFacture, 0))
    Et tu aurais du avoir le message disant qu'il n'avait pas trouvé. As-tu vérifier que le code était bien appellé ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2016
    Messages : 59
    Par défaut
    Si ton numéro de facture est un nombre entier, réel ou autonum alors il ne faut pas mettre de délimteurs.
    Mon Numéro facture est du type personnalisé (texte, nombre et caractère: FACT2018.0002) et il est autonumber, d'où la présence des délimiteurs.


    Et tu aurais du avoir le message disant qu'il n'avait pas trouvé. As-tu vérifier que le code était bien appellé ?
    J'ai effectivement le message
    Nom : 2018-01-10 (1).png
Affichages : 1134
Taille : 6,2 Ko

    mais comprends pas pourquoi il ne retrouve pas la facture alors qu'elle existe. Un problème au niveau de la requête?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 415
    Par défaut
    Bonjour.

    Un autonumber est un nombre entier long calculé par Access, il ne peut pas être un mélange de lettre et de chiffres.

    As-tu du code qui fait le calcul du numéro ?

    Sinon, va dans ta table (directement pas via un formulaire) et vérifie que le champ NoFacture est bien renseignée avec la valeur que tu as donnée.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/10/2016, 17h54
  2. Réponses: 3
    Dernier message: 25/07/2015, 10h21
  3. [AC-2010] Atteindre sous formulaire depuis un sous formulaire
    Par Phrederik dans le forum IHM
    Réponses: 7
    Dernier message: 19/07/2011, 15h24
  4. Réponses: 5
    Dernier message: 06/08/2008, 16h11
  5. Lien sous-formulaire à un autre sous-formulaire
    Par jehhej dans le forum Access
    Réponses: 4
    Dernier message: 25/01/2006, 09h05

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