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

VB.NET Discussion :

Problème fonction recherche..


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 117
    Par défaut Problème fonction recherche..
    Et brebonjour ^^ Me revoilà avec un autre probleme...

    Je ne comprend rien à 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
        Public Function afficher_element(ByVal valeur As String)
            Dim i As Integer
            Dim pourcent As Integer
            Dim bOk As Boolean = False
            If (valeur < 5000) Then
                Me.DonneesBindingSource.Position = valeur - 25
            Else
                Me.DonneesBindingSource.Position = 4056 + (valeur - 18280) - 30
            End If
     
            For i = 0 To Me.DonneesBindingSource.Count Step 1
                pourcent = (i / (Me.DonneesBindingSource.Count)) * 100
                If (i = 0) Then
                    My.Forms.Recherche.ProgressBar1.Increment(-100)
                Else
                    My.Forms.Recherche.ProgressBar1.Increment(pourcent)
                End If
                My.Forms.Recherche.ProgressBar1.Increment(pourcent)
                If (valeur = Me.Num_cdtLabel1.Text) Then
                    bOk = True
                    My.Forms.Recherche.ProgressBar1.Increment(100)
                    i = Me.DonneesBindingSource.Count
                Else
                    Me.DonneesBindingSource.MoveNext()
     
                End If
            Next
            Return bOk
        End Function
    C'est dans mon fichier form1.vb
    Mon programme, je le rapelle, est une aide à la saisie de fiche candidats, qui est ensuite enregistré dans une base de donnée. Le but du jeu étant de pouvoir rechecher des candidat en fonction de leurs compétences.

    Lorsque j'éffectue une recherche, et que je souhaite cliquer sur une ligne de la datagrid, je ne peux cliquer que sur le numéro de la fiche candidat, qui est tout à gauche du tableau qui s'affiche.

    Je souhaiterais cliquer partout sur la ligne afain de charger sa fiche.
    Mais au niveau du débogage, il s'arrete à un endroit du bout de code que j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (valeur < 5000) Then

    Que faire? et surtout Comment faire?

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    Tu compares un String avec un Integer c'est surement pour ça que ça va pas

    Soit tu utilises .equals pour comparer 2 chaines
    Soit tu changes le parametre de ta fonction pour mettre valeur as Integer
    Soit tu castes ton string en integer

    Sinon je te conseil d'utiliser la gestion d'erreur avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try 
             'ici le code qui peut déclancher des erreurs
    Catch ex As Exception
             msgbox(ex.message)
    End Try
    Histoire d'avoir un semblant de piste pour corriger

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 117
    Par défaut
    Si je changes le parametre de ta fonction pour mettre valeur as Integer, il bloque à un autre endroit du meme bout de code.

    Et je ne sais pas comment caster le string en integer si tu pouvais m'expliquer?

    (et oui, je débute -_-')

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            Dim maString As String = "98797"
            Dim monInt As Integer
            Try
                monInt = CInt(maString)
            Catch ex As Exception
                MsgBox("Erreur : " & ex.Message)
            End Try
            MsgBox(monInt)
    Si tu mets des lettres à la palce de 98797 ça génére une erreur qui est traitée par le catch
    Y a peut être d'autre méthode plus propre mais j'ai que celle là sous la main pour l'instant

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 117
    Par défaut
    J'ai tenté d'introduire ton code, et lors du déboguage, il a bloqué à cet endroit du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pourcent = (i / (Me.DonneesBindingSource.Count)) * 100
    avec le message d'erreur :
    L'opération arithmétique a provoqué un dépassement de capacité.
    Et je comprend pas trop pourquoi..

    EDIT:
    Ok, je rectifie.. En cliquant sur la case du nom après avoir fait la recherche: par exemple je recherche par le prénom David, il m'affiche tous les david de la bdd, et lorsque je souhaite cliquer sur le nom de la personne (en cliquant sur la ligne de la personne contenant son numéro de ligne bdd, prénom, nom, ecole, etc...) il me dit:
    "La conversion de la chaine "ici le nom de la personne sur la quelle j'ai cliqué" en type "integer' n'est pas valide".
    Comment résoudre ce probleme?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    Donc c'est toujours au même endroit que ça va pas ?

    Si oui es tu sur que c'est le numéro de candidat qui est renvoyé à la fonction et non pas autre chose ? Ou un string uniquement composé de chiffres ?

Discussions similaires

  1. Problème fonction recherche
    Par Ersch dans le forum Débuter
    Réponses: 7
    Dernier message: 01/04/2014, 08h22
  2. Problème fonction recherche et valeur min
    Par mulder78 dans le forum Excel
    Réponses: 2
    Dernier message: 05/06/2013, 12h08
  3. Problème fonction recherche
    Par switchmo dans le forum Excel
    Réponses: 4
    Dernier message: 21/12/2011, 12h06
  4. [XL-2003] Problème fonction recherche / remplacer sous VBA
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/04/2010, 12h13
  5. Problème fonction recherche
    Par derech dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/10/2007, 11h35

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