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

  1. #1
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    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 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    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
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    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 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    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
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    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 : 1044
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 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    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.

  7. #7
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    Par défaut
    Merci pour tes réponses

    As-tu du code qui fait le calcul du numéro ?
    oui! j'ai effectivement du code pour faire le calcul du numéro

    Code module

    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
    40
    41
    42
    43
    44
    Function AutoNumber( _
      ByVal strTable As String, _
      ByVal strField As String, _
      Optional ByVal strFormat As String = "", _
      Optional ByVal intDigits As Integer = 4, _
      Optional ByVal dtDate As Date = #1/1/100#)
     
    ' Quelques variables...
    On Error GoTo AutoNumberErr
    Dim varMarkers As Variant, varMark As Variant
    Dim strCriteria As String
    Dim strNum As String, lngNum As Long, strPart As String
     
    ' Quelques retraitements...
    If dtDate = #1/1/100# Then dtDate = Now()
    strField = "[" & strField & "]"
    strFormat = Replace(strFormat, "'", "''")
     
    ' Marqueurs à remplacer
    varMarkers = Array("YYYY", "YY", "Q", "MM", "WW", "DD")
    For Each varMark In varMarkers
      ' Formater la date et l'injecter dans le template
      strPart = Format(dtDate, varMark, vbMonday, vbFirstFourDays)
      strFormat = Replace(strFormat, "[" & varMark & "]", _
        Format(strPart, String(Len(varMark), "0")))
    Next
     
    ' On cherche la valeur maximale déjà employée dans la table
    strCriteria = strField & " LIKE '" & strFormat & "*'"
    strNum = Nz(DMax(strField, strTable, strCriteria), "")
     
    ' On crée le nouveau numéro
    lngNum = IIf(strNum = "", 1, Val(Mid(strNum, Len(strFormat) + 1)) + 1)
    strFormat = strFormat & Format(lngNum, String(intDigits, "0"))
     
    ' Valeur finale
    AutoNumber = strFormat
    Exit Function
     
    AutoNumberErr:
      MsgBox "Erreur : " & Err.Description, vbCritical
      AutoNumber = ""
      Exit Function
    End Function
    et à l'ouverture du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If IsNull(Me.txtNumFact) Then
        Me.txtNumFact = AutoNumber("tblVentes", "N°Facture", "FACT[YYYY].", 4)
    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.
    le champs N°Facture est bien renseigné avec la valeur
    Nom : 2018-01-10 (3).png
Affichages : 1036
Taille : 20,8 Ko

    en mode création (si ça peut aider)
    Nom : 2018-01-10 (4).png
Affichages : 1052
Taille : 45,2 Ko

    Merci de l'attention portée à ma préoccupation!

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Pour éviter les confusions, il est prudent de ne pas nommer quelque chose avec un mot réservé du système.
    Cela perturbe l'jumain et parfois la machine.

    Ceci, je viens de faire un essai et mon code fonctionne parfaitement. Ici ce que j'ai fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable0_AfterUpdate()
        Dim r As DAO.Recordset: Set r = Me.Recordset
        Call r.FindFirst("Valeur=""" & Me.Modifiable0 & """")
     
        If r.NoMatch Then
            MsgBox "Non trouvé"
        End If
     
    End Sub
    Quand j'ai fini de saisir Modifiable0, le sélecteur d'enregistrement se place sur l'enregistrement voulu ou j'ai le message d'erreur.

    La différence que je vois c'est que J'ai utilisé les guillemets et toi les apostrophes mais en principe cela ne change absolument rien.

    Essaye avec la reqête de test suivante :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select [tblsVentes].* from [tblVentes]
    where [tblVentes].[N°Facture]="FACT2018.0002"

    Cela devrait sélectionner un seul enregistrement.

    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.

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Autre chose, mon code suppose que le formulaire courant (me.) est celui qui contient les données.

    As-tu vérifié la source de ton formulaire ?

    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.

  10. #10
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    Par défaut
    Bonjour Marot_r

    mon formulaire comporte deux sous formulaires

    *Mon formulaire F_Vente avec source reqFacture de la table tblVentes

    code sQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tblVentes.*, Nz(DSum("[Montant Total]","req_DetailsVentes","N°Facture='" & Nz([N°Facture],0) & "'"),0) AS TotalFacture, Nz(DSum("MontantPaiement","tblPaiements","N°Facture='" & Nz([N°Facture],0) & "'"),0) AS TotalPaiement, Nz(DSum("[Montant Total]","req_DetailsVentes","N°Facture='" & Nz([N°Facture],0) & "'"),0)-Nz(DSum("MontantPaiement","tblPaiements","N°Facture='" & Nz([N°Facture],0) & "'"),0) AS Reste, [Reste]=0 AS Payee
    FROM tblVentes;
    *sous formulaire sFrm_DetailsVentes avec source req_DetailsVentes de la table tblDetailsVentes

    Code sQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tblDetailsVentes.*, ([Qtes])*([Prix]) AS [Montant Total]
    FROM tblDetailsVentes;
    *Sous formulaire sFrmDetailsPaiements avec source reqDetailsPaiements de la tblPaiements

    c'est un système basé sur des paiements (règlements) multiples de facture par des clients.

    une facture peut être réglée en plusieurs tranches, du coup à chaque fois que le client voudrait verser une tranche, la facture correspondante doit être recherchée et affichée (et sur tout pas modifier d'où l'utilisation du RecordsetClone) pour effectuer le paiement.


    code sQL de ma liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tblDetailsVentes.N°Facture, tblDetailsVentes.Client
    FROM tblVentes INNER JOIN tblDetailsVentes ON tblVentes.N°Facture = tblDetailsVentes.N°Facture
    GROUP BY tblDetailsVentes.N°Facture, tblDetailsVentes.Client
    ORDER BY tblDetailsVentes.N°Facture;

  11. #11
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Le findfisrt, positionne le curseur sur l'enregistrement. Il ne le modifie pas.
    Mon code fait exactement la même chose que le tient mais de façon plus directe.
    Si tu veux être sur que tes données ne soient pas modifiées, il faut définir la propriété Autoriser Modification à non pour le formulaire intégré.

    Ceci dit, ta facture n'est donc pas dans le formulaire principal où tu entres l'info ?

    Si oui, la modification à faire à ton code de recherche devrait ressembler à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim r As DAO.Recordset: Set r = Me.NomTonSousForm.Form.Recordset 'Pointe sur les données du sous-formulaire.
    Le reste est indentique.

    NomTonSousForm est le nom du contrôle sous-formulaire dans le formulaire.
    Habituellement c'est le même que celui de l'objet sous-formulaire intégré mais ce n'est pas obligatoire.
    Par exemple ton contrôle sous-formulaire pourrait s'appeller "Fille1" et le formulaire intégré s'appeler "FrmFacture".
    Le code d'assignation serait donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set r = Me.Fille1.Form.Recordset
    .

    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.

  12. #12
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    Par défaut
    Ceci dit, ta facture n'est donc pas dans le formulaire principal où tu entres l'info ?
    en fait une partie (N°Facture, DateFacture, N°BC) est sur le formulaire principal

    une autre (details ventes ) sur le sous formulaire sFrm_DetailsVentes
    et une autre (details paiements) sur le sous formulaire sFrm_DEtailsPaiements.

    et je viens de modifier le code, aucune facture trouvée.

    Le problème ne serait-il pas au niveau de la requête sur la liste déroulante?


    Merci!

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    C'est quoi ta version d'Access ?

    Si c'est <= 2007, peux-tu poster une BD avec des données de test ?

    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.

  14. #14
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    Par défaut
    suis sous 2016

  15. #15
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    OK, je ne peux pas t'aider avec ma machine.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tblVentes.*, Nz(DSum("[Montant Total]","req_DetailsVentes","N°Facture='" & Nz([N°Facture],0) & "'"),0) AS TotalFacture, Nz(DSum("MontantPaiement","tblPaiements","N°Facture='" & Nz([N°Facture],0) & "'"),0) AS TotalPaiement, Nz(DSum("[Montant Total]","req_DetailsVentes","N°Facture='" & Nz([N°Facture],0) & "'"),0)-Nz(DSum("MontantPaiement","tblPaiements","N°Facture='" & Nz([N°Facture],0) & "'"),0) AS Reste, [Reste]=0 AS Payee
    FROM tblVentes;

    Est-ce que tu vois bien le numéro de facture dans cette requête ?

    Essaye aussi dans le code de recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call r.FindFirst("[Toto]='" & Nz(Me.RechercherFacture, 0) & "'")
    Cela devrait planter le programme en te disant qu'il ne connait pas Toto.
    Si non, c'est que Access se fout que le champ n'existe pas et donc que probablement il ne trouve pas le champ [N°Facture]. Ça pourrait venir du °.

    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.

  16. #16
    Nouveau membre du Club
    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
    Points : 30
    Points
    30
    Par défaut
    Hello!

    J'ai pu résoudre le problème après plusieurs vérifications.
    * Déjà, mon formulaire (comme par miracle , je dirai fausse manipulation ) n'était plus basé sur la table en question (mais j'y retrouvai les enregistrements)
    * La propriété du formulaire Données/Entrée des Données était sur OUI (alors qu'elle devrait être sur NON).

    Après ces modifications, tout fonctionne à merveille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    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
    et même celui ci-après fonctionne:

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    With Me.RecordsetClone
     
          .FindFirst "N°Facture='" & Nz(Me.RechercherFacture, 0) &"'"
     
          If Not (.NoMatch) 
             Me.Bookmark = .Bookmark 
          Else 
             MsgBox ("Facture absente !") 
             Me.RechercherFacture.Undo 
          End If
     
       End With

    Merci particulier à Marot_t pour sa participation

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

Discussions similaires

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

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