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 :

Problem avec RS.NoMatch


Sujet :

VBA Access

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut Problem avec RS.NoMatch
    Bonjour tm
    J’ai un problème avec le code suivant :

    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
    Public Sub verif_livr()
    Dim sql As String
    Dim SQLWhere As String
    Dim RS As DAO.Recordset
     
    sql = "SELECT Client, Sociéte, Commande_solde, Commande_annulee FROM Commandes WHERE Commandes!Client like'*" & Me.Numero_client.Value & "*' AND Commandes!Sociéte like'*" & Me.Founisseur.Value & "*' And Commandes!Commande_annulee = 0 And Commandes!Commande_solde =0 "
     
    Set RS = CurrentDb.OpenRecordset(sql)
     
    If RS.NoMatch = True Then
     
    MsgBox "Pas de donnes"
     
    Else
     
    MsgBox "c'est bon"
     
    End If
     
    End Sub
    Vous pouvez m’expliquer si le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If RS.NoMatch = True Then
    Est correct

    Merci !!!

  2. #2
    Membre averti
    Inscrit en
    Février 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 45

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

    NoMatch indique si un enregistrement donné a été trouvé par la méthode Seek ou Find.
    combiner NoMatch avec Sql nécessite une attention particulière à ta requête,

    j'ai enlevé la clause WHERE et ça a marché chez moi.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    quelle partie ta supprimé ???

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Voici un exemple d'usage de NoMatch.

    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
    Public Sub verif_livr()
    Dim sql As String
    Dim SQLWhere As String
    Dim RS As DAO.Recordset
     
    sql = "SELECT Client, Sociéte, Commande_solde, Commande_annulee FROM Commandes;"
     
    Set RS = CurrentDb.OpenRecordset(sql)
     
    rs.findFisrt("Commandes!Client like'*" & Me.Numero_client.Value & "*' AND Commandes!Sociéte like'*" & Me.Founisseur.Value & "*' And Commandes!Commande_annulee = 0 And Commandes!Commande_solde =0 ")
     
    if rs.nomatch then
         'Faire ce qu'il faut quand non trouvé
       else
         'Faire ce qu'il faut quand trouvé
    end if
     
    rs.close:set rs=nothing :'Netoyage de la mémoire aprés ton passage.
    si tu tiens à garder ton SQL tu pourrais faire ainsi.

    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
    Public Sub verif_livr()
    Dim sql As String
    Dim SQLWhere As String
    Dim RS As DAO.Recordset
     
    sql = "SELECT Client, Sociéte, Commande_solde, Commande_annulee FROM Commandes WHERE Commandes!Client like'*" & Me.Numero_client.Value & "*' AND Commandes!Sociéte like'*" & Me.Founisseur.Value & "*' And Commandes!Commande_annulee = 0 And Commandes!Commande_solde =0 "
     
    Set RS = CurrentDb.OpenRecordset(sql)
    if rs.recordcount=0 then
         'Faire ce qu'il faut quand non trouvé
       else
         'Faire ce qu'il faut quand trouvé
    end if
     
    rs.close:set rs=nothing :'Netoyage de la mémoire aprés ton passage.
    Sincèrement je ne suis pas un chaud partisant du SQL dans le code car il ne suis pas l'évolution de ta base, il n'est pas aussi visible qu'une requète et nécessite plus de travail lors des tests mais cela va marcher.

    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 averti
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Par défaut
    Merci b!!!!!!

    bravo

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

Discussions similaires

  1. Toujours un probleme avec data_personne.Recordset.NoMatch
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/12/2007, 07h23
  2. probleme avec data_personne.Recordset.NoMatch
    Par jacko842 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/12/2007, 15h25
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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