DATAGRID

75ROLLER Messages postés 40 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007 - 16 oct. 2007 à 22:38
75ROLLER Messages postés 40 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007 - 19 oct. 2007 à 18:57
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

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
17 oct. 2007 à 00:15
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 />
0
75ROLLER Messages postés 40 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007
17 oct. 2007 à 15:00
je te remerci avant de fermer le sujet je fais le test A+
0
75ROLLER Messages postés 40 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007
17 oct. 2007 à 15:17
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>
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
17 oct. 2007 à 15:59
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 />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
17 oct. 2007 à 16:07
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 />
0
75ROLLER Messages postés 40 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007
18 oct. 2007 à 08:39
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+++
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
18 oct. 2007 à 14:49
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 />
0
75ROLLER Messages postés 40 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 19 octobre 2007
19 oct. 2007 à 18:57
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+
0
Rejoignez-nous