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

Windows Forms Discussion :

vbnet + recordset vide


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    bonjour
    je cré une application avec acces/vbnet et le composant adodb
    quand je fais une requête de sélection il peut arrivé qu'il n'y ai pas de réponse
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select nomp from plat, menu where menu.numm=plat.numm and nomm= '" & nom.text & "'"
    donc quand je teste la requête l'application plante car il n'y a pas de réponse à afficher
    je voulais savoir si il était possible de savoir si la requête fournit des réponses
    merci

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    utilise un datareader et boucle sur sa propriété Read() (qui renvoit false lorsqu'il n'y a pas/plus d'enregistrements à lire)


    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    je n'utilise pas de datareader dans mon application
    donc je ne sais pas ce que sait
    pouvez vous mexpliquer?
    merci

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    le problème est ke j'utilise le composant adodb et non ado.net
    donc pour ma requête je fais comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            DateSelection = "%/" & MoisV & "/%"
            ReqMttVM = "select sum(prix) as Montant from vente, menu where Vente.NumM=Menu.NumM and dateV like '" & DateSelection & "'"
            Crs = cnx.Execute(ReqMttVM)
            Crs.MoveFirst()
            MontantV.Text = Crs.Fields("Montant").Value
    cette requête fonctionne très bien quand il y a un résultat
    c'est pourquoi je demande comment savoir si il n'y a pas de résultat

  6. #6
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    testes CRS.Recordcount

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut Re: vbnet + recordset vide
    Citation Envoyé par cell
    le problème est ke j'utilise le composant adodb et non ado.net

    Si tu fais du VB.NET, pourquoi ne pas utiliser ADO.NET, qui est bcp censé être mieux que ADO :

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    j'ai testé avec crs.recordcount et si le résultat est null ca affiche et si il y a un résultat ca affiche 1
    j'utilise le coimposant adodb car je n'ai pas assez de temps pour me former à l'ado.net sur les conseils de mon prof de programmation

  9. #9
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Je n'ai pas compris. Montre nous le code avec le test recordcount

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If Not Crs.RecordCount = 0 Then
                MsgBox("Il n'y a pas eu de ventes!")
            Else
                Crs.MoveFirst()
                MontantV.Text = Crs.Fields("Montant").Value
            End If

  11. #11
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    d'accord c'est à cause du curseur. Fais ton test sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Crs.EOF Then
         MsgBox("Il n'y a pas eu de ventes!") 
    Else 
          Crs.MoveFirst() 
          MontantV.Text = Crs.Fields("Montant").Value 
    End If

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    ca bloke au niveau de l'affichage qd il n'y a pas de valeur
    mais je devrai plutot mettre if crs.eof= qqch then?

  13. #13
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    si crs.EOF est vrai c'est que ton recordset est vide

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    voici le code ke j'ai marqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If Crs.EOF = True Then
                MsgBox("Il n'y a pas eu de ventes!")
            Else
                Crs.MoveFirst()
                MontantV.Text = Crs.Fields("Montant").Value
            End If
    et ca ne marche pas quand je choisi une valeur ou il y aura pas de réponse à ma requete ca plante

  15. #15
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    ca plante ou ?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                MontantV.Text = CrsListeMois.Fields("Montant").Value
    alors ke ca devrai s'arreter sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                MsgBox("Il n'y a pas eu de ventes!")

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    est-il possible de faire un controle is null
    car sous acces qd il y a pas de réponse ca affiche une case vide

  18. #18
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    J'avoue que je ne vois pas. Moi si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Dim cnx As New ADODB.Connection
            cnx.Open("Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=D:\User\jmarc\testvb\BIBLIO.MDB")
            Dim rst As ADODB.Recordset
            rst = cnx.Execute("select * from authors where [year born]=2000")
            If rst.EOF Then
                MsgBox("rien")
            Else
                rst.MoveFirst()
                MsgBox(rst.Fields("author").Value)
            End If
    Ca marche nickel

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    le problème est que si je choisi le mois d'avril le montant est de 120
    si je choisi le moi de mai le montant est "" acr sous acces il renvoie une case vide
    dc dans mon crs il y a une valeur nulle

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Par défaut vbnet + recordset vide
    c bon on a trouvé la réponse
    il fallait vérifier le type de la réponse
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     If CrsListeMois.Fields("montant").Value.GetType.ToString = "System.DBNull" Then
                MsgBox("Pas de vente ce mois !")
            Else
                CrsListeMois.MoveFirst()
                MontantV.Text = CrsListeMois.Fields("Montant").Value
                CrsListeMois.Close()
            End If
    merci pour l'aide

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

Discussions similaires

  1. [AC-97] Recordset vide alors que la requête SQL pure marche
    Par BornToBe dans le forum VBA Access
    Réponses: 9
    Dernier message: 06/11/2012, 17h43
  2. Problème recordset vide et boucle.
    Par Fishes83 dans le forum VBA Access
    Réponses: 5
    Dernier message: 16/05/2008, 08h51
  3. Edit d'un recordset et recordset vide
    Par Stefan_H dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/11/2007, 12h44
  4. Recordset vide après premier export vers Word
    Par sl1980 dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/08/2007, 15h25
  5. Recordset vide alors que la requete renvoie des valeurs
    Par lepiou dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 07/06/2006, 10h36

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