DATAGRID

Signaler
Messages postés
40
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
19 octobre 2007
-
Messages postés
40
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
19 octobre 2007
-
Bonjour,je travail avec un datagrid pour visualiser mes donnees,quand je me promène dans ce champ on va dir au 200éme enregistrements es que je l effacé je voudrai que le cursseur reste a cette position au lieux de revenir tout en haut
(premiere enregistrement) si une personne une idée
merci

8 réponses

Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut,
ton Datagrid a quoi comme DataSource ?
Un control Ado ?
Si c' est telle est le cas :
Avant de supprimer enregistre la position du recordset grace au BookMark et tu te positionnera sur celui-ci après suppression.
Je suppose donc que tu supprimes par code et que tu rafraichis après.

 Dim vbk As Variant
 vbk = ADO1.Recordset.Bookmark
 'Après suppression et rafraichissement
  ADO1.Recordset.Bookmark = vbk

Ceci étant la position vbk de l' enregistremnt supprimé
devient celui du suivant (ou du précédent, je ne sais pas trop)

Attention quand même au cas de  l' enregistrement unique.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
40
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
19 octobre 2007

je te remerci avant de fermer le sujet je fais le test A+
Messages postés
40
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
19 octobre 2007

apret essais cela ne fonctionne pas je t envois la portion de code qui supprime un enregistrement
ci tu vois quel que chose ???


<html><head><title>Document sans titre</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /></head><!--DWLayoutTable-->----
Case cmd_supp

'bouton suprimer un achat dans la feuille general

Dim rep1 As Integer

vbk = AdoAchat.Recordset.Bookmark

rep1 = MsgBox("Voulez-vous supprimer cet achat?", vbOKCancel +
vbCritical, "Suppresion")

If rep1 = 2 Then

MsgBox "Suppression annulée", vbExclamation

Else

If rep1 = 1 Then 'si bouton ok

conn.Execute ("DELETE FROM table_achat WHERE ID = " & Val(Label16.Caption))

MsgBox "Achat supprimé", vbInformation

Call PrixTotal

AdoAchat.Refresh

Call sousBouton

AdoAchat.Recordset.Bookmark = vbk

End If

End If

Call ResultatCritereProduit

End Select

End Sub,  
</html>
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
je ne vois pas de declaration de vbk !
Dim rep1 As Integer
Dim vbk As Variant

vbk = AdoAchat.Recordset.Bookmark

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
si ça marche toujours pas essaies avec AbsolutePosition


Case cmd_supp
'bouton suprimer un achat dans la feuille general
Dim rep1 As Integer
  Dim xPosition As Integer
  xPosition  =AdoAchat.Recordset.AbsolutePosition+1
  rep1 = MsgBox("Voulez-vous supprimer cet achat?", vbOKCancel + vbCritical, "Suppresion")
 
If rep1 = 2 Then
  MsgBox "Suppression annulée", vbExclamation
Else  'si bouton ok
  'j' ai supprimé le If en plus
 
  conn.Execute ("DELETE FROM table_achat WHERE ID = " & Val(Label16.Caption))
  MsgBox "Achat supprimé", vbInformation
  Call PrixTotal
  AdoAchat.Refresh
  Call sousBouton
  AdoAchat.Recordset.MoveFirst
  If xPosition>0 Then AdoAchat.Recordset.Move xPosition
 
End If


Call ResultatCritereProduit
End Select


End Sub


<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
Messages postés
40
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
19 octobre 2007

Bonjour,la declaration (Dim vbk As Variant) et dans la section (declaration general),toute en haut du code.je viens d'essayé le truc avec AbsolutePosition sa ne fonctionne toujour pas,pourtant tu m as mis sur la voix y va falloir que je regarde sa de plus pret. je suis sur que d autre on eu le meme probleme que moi ??? pas beaucoup de manifestation (ho le mot tombe bien aujourd huit)A+++
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonjour,
t' as raison de pousruivre cette cette "voix"..
(il n' y en a beaucoup en moment )

Mais expliques moi un peu ce qui se passe pour le datagrid.
Si pas de msg d' erreur,deux suggestions alors:
-Donnes le focus au DataGrid après rafraichissement
-Choisis , pour commencer , un enregistrement, parmi les premiers
(visible donc) pour voir si après le repositionnement tu auras bien
une flèche du coté  du record selecteur.


Quelques infos en plus:
Pour actver un DataGrid : Data Grid.EditActive=True
Si après avoir donné le focus au DataGrid, aucune ligne n' est sélectioonée,fais un  SendKeys "[left"} pour que la ligne soit en surbrillance.


J' espère que ça t' avancera..un peu.
 


<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
Messages postés
40
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
19 octobre 2007

Bonjour, je viens donc de regarder la chose de plus, et bien je te remerci pour le coup de pouce
car la premiere version de ton code etait bon merci, je ne fais plus beaucoup de vb6 juste un peu de maintenance sur des programmes maison
cordialement A+