DataGrid

mohalesage Messages postés 162 Statut Membre -  
mohalesage Messages postés 162 Statut Membre -
Bonjour ,

J'ai un problème avec ma DataGrid, que je n'arrive pas à contourner.
Je vous expose la situation

j'ai conçu une DataGrid ( nommé DGConsultNom)

sur cettre DataGrid à 3 colonnes, s'affiche la liste des noms classés par ordre alphabétique

Sur La Colonne 1 : Nom Complet
sur la Colonne 2 : N° de la carte d'identité
sur la Colonne 3 : la Matricule

cette datagrid est conçue pour faciliter à l'opérateur la sélection de la personne si il ne connait pas sa matricule

le code ecris est comme suite:

Private DGConsultNom_Click ()

Dim L, C as integer

L=Val(DGConsultNom.Row)
C=Val(DGConsulNom.Col)


if DGConsultNom.Row = L  then

DGConsultNom.Row = L
DGConsultNom.Col = C+2


'FPointage est une autre feuille destinée à la saisie du pointage des ouvriers
'CmbMatricule est un objet de la feuille FPointage 

FPointage.CmbMatricule = DGConsultNom

end if

end sub


Avec ce code tout marche bien à condition de cliquer sur la marge gauche de la DataGrid
si par erreur on clique sur une autre colonne, le VB renvoie un message d'erreur

ma question est comment faire pour que le VB6 ignore tout click sur la surface de la DataGrid, à part sur sa marge gauche

A propos, je travaille toujours sur le VB6 avec Ado et l'access

Merci d'avance pour votre aide

EDIT: Précision du langage dans la coloration syntaxique.

5 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Private Sub DGConsultNom_SelChange(Cancel As Integer)
    End Sub


    Serait le plus approprie, car actif seulement si selection ligne
    0
  2. mohalesage Messages postés 162 Statut Membre 1
     
    Bonjour
    Toute ma reconnaissance pour votre reponse
    Une fois essayée je vous tiendrais au courant du résultat

    Mes respects
    0
  3. mohalesage Messages postés 162 Statut Membre 1
     
    Bonjour

    J'ai essayé votre proposition et elle marche bien.
    Seulement; en poussant un peu je me suis
    confronter à un embarras.
    Quant je mets à la fin de la procédure

    unload me

    le vb6 me renvoie une drôle d'interface

    normalement j'ai conçue deux feuilles (Form )

    1- Feuille de saisie du pointage
    2- Feuille avec DtaGrid

    la démarche est lorsque je clique sur le boutton "Afficher" qui est placé
    sur la feuille du Pointage; la feuille avec DataGrid s'affiche

    et lorsque je sélectionne la ligne voulue de la datagrid ( SelChange ) et je clique, les données s'affichaient sur les zones concernées de la feuilles du Pointage, et en même temps la feuille de DataGrid disparait avec ( Unload me ) qui est écrit à la fin de l'évenement (SelChange )

    pour contourner ce problème j'ai utilisé la propriété (Visible=False)

    mais elle ne me plait pas

    je préfère décharger la feuille à Datagrid , mais je n'y arrive pas

    Merci d'avance pour tes conseils
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      pas tout compris, mais remplacez unload me par me .hide
      0
  4. mohalesage Messages postés 162 Statut Membre 1
     
    Bonjour

    Tout d'abord je vous remercie pour votre réponse
    je m'explique :

    mon code est comme suite:

    quant j'ouvre la feuille du pointage, automatiquement la feuille à DG s'affiche

    private sub DGTableauPointage_SelChange ( Cancel as Integer )

    DGTableauPointage.col = 0

    Fpointage.CmbMatricule=DGTableauPointage

    SQLs="select * from TablePointage where ( Societe='" & cstr(VSociete) &"' and Matricule = " & cint( Fpointage.CmbMatricule) &") "

    if rs.stateadopen then rs.close
    rs.open SQLs, DB, adopenkeyset, adlockPessemestic

    Fpointage.LblNomComplet = rs![NomComplet]

    rs.close

    hide.me

    end sub


    quand je clique sur la ligne choisie, le matricule s'affiche dans le ComboBox et le nom complet s'affiche sur le Label consacré au nom
    en même temps la feuille à DG devient invisible ( car Hide fait la même chose que Visible )

    seulement quant je modifie et je clique sur modifier. La modification n'apparait pas sur la DG que lorsque celle ci est déchargée et rechargée
    même si j'ai utilisé sur le bouton Modifer :

    SQLs="select * from TablePointage where ( Societe='" & cstr(VSociete) &"'  ) "

    if rs.stateadopen then rs.close
    rs.open SQLs, DB, adopenStatic
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mohalesage Messages postés 162 Statut Membre 1
     
    Re

    Pardon, j'ai trouvé l'astuce
    à la fin du bouton Supprimer ou Modifier j'ai ajouter

    Unload FTableauPointage

    comme en cliquant sur le boutton Afficher

    la DG s'affiche avec la mise à jour

    Merci
    0