Controler la cellule active du Dgrid

Résolu
carot2006 Messages postés 6 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 3 mai 2006 - 26 avril 2006 à 12:45
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 3 mai 2006 à 14:32
Bonjour,

Je suis entrain de travailler sur une base de donnée avec un DataGrid et j'essaye d'effectuer des incrementation et decrementation des position de la position actuelle. Par exemple, si la position actuelle du grid est à 5, en appuyant sur un bouton incrementation, la position actuelle passe a 6 donc elle descends d'un cran vers le bas.
Mais j'ai un petit soucis, j'ai un bouton qui fait directement descendre la position actuelle de 10, une sorte de Tab, mais je veux que si il n'y pas assez d'espace entre la position actuelle et la fin de la table(Dgrid), alors la position actuelle s'arretera toujours au dernier emplacement de la table, pour ne pas que ca bloque ou crée de probléme, est ce que vous voyez ou je veux en venir? je ne sais pas comment appeler la position actuelle,quelle propriété utilisée.
voici le code que j'ai fait ,


Code :
Private Sub Command2_Click()
If Not Dataannu.Recordset.EOF Then
If ((Dataannu.Recordset.EOF) - (Dataannu.Recordset.AbsolutePosition) - 10) < 0 Then
Dataannu.Recordset.AbsolutePosition = Dataannu.Recordset.EOF
Else
Dataannu.Recordset.Move (10)
End If
End If
End Sub

je fais un calcul pour verifier si l'ecart entre la position actuelle et la fin est inferieur a 0, si C'est le cas alors ca fixe a la derniere position sinon on descends de 10.
dataannu est le nom de mon Data

J'espere que vous comprenez ma situation!!
Merci de Votre Aide !

10 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
3 mai 2006 à 14:32
Je t'en pries,

si ça marche, merci d'accepter la réponse, pour clore le sujet.

à+

rvblogn

<sup>
</sup><sup>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</sup>
3
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
26 avril 2006 à 13:13
salut désolé si tu croyait avoir de l'aide mais je travail actuellement aussi sur un DataGrid et une BDD access et malgres tout ce que je pu voir sur le net je n'arrive pas a afficher les champs de ma table dans mon datagrid pourrait tu m'aider STP ?

je veut tout simplement afficher toute ma table dans un DataGrid
D'avance merci
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
27 avril 2006 à 23:34
Salut er,

regardes la formule qu'exprime ce petit bout de code :

Sub test()
    entout = 34'      équivaut au RecordCount
    courant = 15'    équivaut à AbsolutePosition
    voulu = 10'       équivaut à ta constante 10
    
    ' Si la plage de mouvement disponible (entout-courant) est inférieure
    'au mouvement voulu (avant de bouger)
       'elle passera à zéro (donc après qu'on ait bougé, on sera à la fin)
    'Sinon
       'elle vaudra celle disponible avant de bouger, à laquelle on retranche
       'le mouvement voulu
    futurdispo = IIf((entout - courant) < voulu, 0, (entout - courant) - voulu)
    'le mouvement à faire vaut la plage disponible, à laquelle on retranche
    'la futur plage disponible.
    bouge = (entout - courant) - futurdispo
    'bouge du mouvement à faire
    courant = courant + bouge
End Sub

à toi de l'adapter à ton mouvement sur recordset (pas très dur vu où tu en es),
et à toi de l'adapter pour aller en arrière (je t'ai donné le principe)
à+

rvblogn

<sup>
</sup><sup>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</sup>
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
27 avril 2006 à 23:44
Salut 757545 carot2006, salut =54312 xactise,

pardon, j'ai un peu glissé sur le salut précédent.
si tu veux 757545 carot2006, mets un petit bout de texte sur ce que tu as fait pour afficher ta table dans ton DBGrid, ça m'aidera (et ça aidera=54312 xactise, sans enfreindre le réglement, puisque c'est pour m'aider à m'assurer que j'ai compris ton problème:))

par contre xactise, saches que, non seulement tu enfreins le réglement, et me mets dans une situation de complice, mais en plus, tu cherches mal!
Si tu cherches, avec le moteur de recherche du site, dbgrid dans le forum, tu trouves 18 sujets, et dans le code, tu trouves 8 sources.

à+
rvblogn

<sup>
</sup><sup>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</sup>
0

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

Posez votre question
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
28 avril 2006 à 08:38
Merci j'ai trouver en faite jutiliser un DataGrid et non un DBGrid (a parement c'est pas pareil) c'est le mot clef de recherchd dbgrid qui ma mis sur la piste sa marche niquel ;)
par contre une toute petite question
je rentre dans les parametre le chemin de ma base mais serai t-il possible aussi de rentrer une requete (notamenent pour trier)

parce que la sa m'affiche ma base telle quel est sous access donc j'aurai voulu savoir si il y a une possibilité de rentrer une tite requete quelque part pour qu'il la prenne en compte lors de l'affichage

exemple : SELECT * FROM Client ORDER By CodeBarre

D'avance merci
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
28 avril 2006 à 10:25
Salut xactise,

- Ajoute une référence au module ADO Data Control à ton projet.
- Situes une instance de ce contrôle sur ton formulaire contenant le contrôle DataGrid.
- Sélectionnes le contrôle ADO Data Control.
- Dans la fenêtre des propriétés ([F4]), définis une valeur à la propriété ConnectionString (en cliquant le bouton [...]).
- Définis la propriété CommandType à 1 (adCmdText).
- Définis la propriété RecordSource en y écrivant ta requête SQL.
- Sélectionnes le contrôle DataGrid.
- Définis la propriété DataSource avec le nom du contrôle ADO Data Control.

il ne reste plus qu'à définir la propriété DataField pour chaque colonne.

à+

rvblogn

<sup>
</sup><sup>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</sup>
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
28 avril 2006 à 11:42
Merci bien j'ai aperçu toute les étape pour teposer qu'une seul question ;)

J'ai une seul question a l'étape

" - Dans la fenêtre des propriétés ([F4]), définis une valeur à la propriété ConnectionString (en cliquant le bouton [...])."

Dans la fenetre qui s'ouvre quand je clique sur [...]
je choisi quoi ?

"Utiliser un fichier OLE DB"
"Utiliser un nom de source ODBC"
"Utiliser une chaine de connection"

je choisi lequel et je rentre quoi ?
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
28 avril 2006 à 11:57
- un fichier OLEDB, si tu en as un (*.mdl, je crois)
- un nom de source ODBC, si tu en as créé une
- une chaine de connection si tu n'as rien de tout ça (et tu suis le guide)

rvblogn

<sup>
</sup><sup>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</sup>
0
carot2006 Messages postés 6 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 3 mai 2006
3 mai 2006 à 14:20
salut,

Merci pour vos réponses, j'ai réussi à régler mon probléme !
désolé pour le retard de réponse, j'étais passé sur le forum le lendemain mais aprés j'avais complétement oublié car je voulais trouver un moyen plus simple pour me sortir de mon probléme en utilisant un autre procédé.
0
carot2006 Messages postés 6 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 3 mai 2006
3 mai 2006 à 14:22
je corrige, merci Rvblog pour tes réponses, je te dois une fiére chandelle  
0