Problème de décalage sous Visual Basic 6
coaut
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je suis un débutant en Visual Basic 6 et j'ai un projet à faire sur la Gestion d'un Club OmniSport.
J'aurais deux questions à élucider.
Voici ma première question,
J'ai une page Menu qui regroupe tout mon projet : Adhérent, Médecin, Sport, ...
J'ai créé plusieurs pages filles pour adhérent, médecin, sport, ... quand j'ouvre pour une première fois une page fille n'importe laquelle elle se place par défaut en haut à gauche ce qui est parfait. Mais quand j'ouvre une deuxième page n'importe laquelle (ça peut être la même si je l'ai fermée entre temps) elle se décale de 1 cm vers la droite et 1,5 cm vers le bas à chaque fois. Donc imaginer que j'ouvre en tous 5 pages ce qui fait un décalage de 5 cm vers la droite et 7,5 cm vers le bas.
Je ne sais pas y remédier.
Voici la seconde,
J'ai créé un DataGrid pour avoir un aperçu rapide des adhérents (Nom, Prénom, Numéro, Rue, Mail, ...) qui sont dans le Club OmniSport.
Tout marche parfaitement, mon DataGrid se complète correctement mais le seul problème, il est très mal structuré la rue de l'adhérent n'est pas visible complètement, de même pour son adresse mail. J'ai essayé d'ajuster avec l'option DefColWidth mais ça ne fait pas grand-chose. J'aimerais que la colonne numéro soit adaptée pour sa taille, celle de la rue pour la sienne, ect ...
Est-ce possible ?
Merci d'avance.
je suis un débutant en Visual Basic 6 et j'ai un projet à faire sur la Gestion d'un Club OmniSport.
J'aurais deux questions à élucider.
Voici ma première question,
J'ai une page Menu qui regroupe tout mon projet : Adhérent, Médecin, Sport, ...
J'ai créé plusieurs pages filles pour adhérent, médecin, sport, ... quand j'ouvre pour une première fois une page fille n'importe laquelle elle se place par défaut en haut à gauche ce qui est parfait. Mais quand j'ouvre une deuxième page n'importe laquelle (ça peut être la même si je l'ai fermée entre temps) elle se décale de 1 cm vers la droite et 1,5 cm vers le bas à chaque fois. Donc imaginer que j'ouvre en tous 5 pages ce qui fait un décalage de 5 cm vers la droite et 7,5 cm vers le bas.
Je ne sais pas y remédier.
Voici la seconde,
J'ai créé un DataGrid pour avoir un aperçu rapide des adhérents (Nom, Prénom, Numéro, Rue, Mail, ...) qui sont dans le Club OmniSport.
Tout marche parfaitement, mon DataGrid se complète correctement mais le seul problème, il est très mal structuré la rue de l'adhérent n'est pas visible complètement, de même pour son adresse mail. J'ai essayé d'ajuster avec l'option DefColWidth mais ça ne fait pas grand-chose. J'aimerais que la colonne numéro soit adaptée pour sa taille, celle de la rue pour la sienne, ect ...
Est-ce possible ?
Merci d'avance.
A voir également:
- Problème de décalage sous Visual Basic 6
- Visual basic - Télécharger - Langages
- Visual basic editor - Télécharger - Langages
- Visual petanque - Télécharger - Sport
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual c++ 2019 - Guide
18 réponses
Bonjour,
Première réflexion... Si tes feuilles ne sont pas décalées.. comment aller de l'une à l'autre ?
Ton Datagrid tu le rempli avec une base de donnée ?
A+
Première réflexion... Si tes feuilles ne sont pas décalées.. comment aller de l'une à l'autre ?
Ton Datagrid tu le rempli avec une base de donnée ?
A+
Je n'avais pas envisagé cette possibilité, mais est-ce possible quand même de limité ce décalage, car au bout 10 pages ouvertes mais pas obligatoirement en même temps il y a un décalage énorme.
J'en profite pour vous demander, comment faire pour délimiter une feuille, pour qu'elle ne puisse pas aller au delà de l'écran.
Mon datagrid est rempli par une base de donné Access qui était fournit avec le projet.
J'en profite pour vous demander, comment faire pour délimiter une feuille, pour qu'elle ne puisse pas aller au delà de l'écran.
Mon datagrid est rempli par une base de donné Access qui était fournit avec le projet.
Dans le Form_Activate tu met..
Ça peut être aussi dans le
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
Me.Move Gauche,Haut,Largeur,Hauteur.
Ça peut être aussi dans le
Form_Resize
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
Merci beaucoup pour tes réponses lermite222 et de ta rapidité.
Aurais tu un conseil pour le DataGrid car je suis allé sur une aide que pour cela et c'est assez complexe pour modifier une petite part dans un DataGrid.
Aurais tu un conseil pour le DataGrid car je suis allé sur une aide que pour cela et c'est assez complexe pour modifier une petite part dans un DataGrid.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour ta réponse, mais avec l'option DefColWidth dans DataGrid, ça fessait la même chose. Mais c'est pas super précis.
Pas précis ? tu peu adapter au pixel près !!!
C'est à toi de voir pour adapter les largeurs, une fois que c'est fait y a plus à y revenir.
C'est à toi de voir pour adapter les largeurs, une fois que c'est fait y a plus à y revenir.
Oui je suis d'accord, je me suis mal exprimée. Ce que je voulais dire c'est que toutes les colonnes prennent la même taille et c'est cela que je ne souhaite pas.
J'aimerais que les colonne Nom, Prénom soient plus petites que les colonnes rue, mail.
J'aimerais que les colonne Nom, Prénom soient plus petites que les colonnes rue, mail.
Beh toi alors !!! c'est quand même pas compliquer.
Adapter l'array en fonction de ce que tu veux comme largeur.
A+
Adapter l'array en fonction de ce que tu veux comme largeur.
Private Sub Form_Load() Dim Col As Integer, Lg() Lg = Array(2500, 3210, 540, 415, 3698) For Col = 0 To 4 DataGrid1.Columns(Col).Width = Lg(Col) Next Col End Sub
A+
Excusez moi, mais je ne savais pas qu'on pouvait modifier la largeur d'un DataGrid grâce au Array en Visual Basic.
Maintenant me l'avoir dit, je le sais et je vous remercie.
Est-ce possible de renommer les colonnes d'un DataGrid ?
Maintenant me l'avoir dit, je le sais et je vous remercie.
Est-ce possible de renommer les colonnes d'un DataGrid ?
Mais j'en revient au positionnement de tes formes et vu que tu en a beaucoup tu peu te servir de ce système
Télécharge le zip.
Tu peu tester le projet mais ce n'est pas le but.
Tu copie le fichier LN_RoutinesINI.bas dans le répertoire de ton appli (c'est pas obligatoire mais plus prudent)
Ensuite tu l'ajoute à ton projet..
>> Projet >> Ajouter un module >> Existant >>
dans l'explorateur tu sélectionne le module et tu tape ENTER, il va s'ajouter à tes modules.
Dans le code de la feuille MDI au début du Form_Load tu met
et dans le Unload de la feuille MDI tu met
Dans toutes tes feuilles tu ajoute juste après le Form_Load
Et dans le Form_Unload
Le résultat.. tes feuilles vont toujours s'ouvrir avec les dernières dimensions et positions qu'elles avaient la dernière fois que tu les a ouvertes.
A+
Télécharge le zip.
Tu peu tester le projet mais ce n'est pas le but.
Tu copie le fichier LN_RoutinesINI.bas dans le répertoire de ton appli (c'est pas obligatoire mais plus prudent)
Ensuite tu l'ajoute à ton projet..
>> Projet >> Ajouter un module >> Existant >>
dans l'explorateur tu sélectionne le module et tu tape ENTER, il va s'ajouter à tes modules.
Dans le code de la feuille MDI au début du Form_Load tu met
Private Sub MDIForm_Load() Init_Nom_INI GetFormINI Me '... la suite du code éventuellement End Sub
et dans le Unload de la feuille MDI tu met
Private Sub MDIForm_Unload(Cancel As Integer) PutFormINI Me End Sub
Dans toutes tes feuilles tu ajoute juste après le Form_Load
GetFormINI Me
Et dans le Form_Unload
PutFormINI Me
Le résultat.. tes feuilles vont toujours s'ouvrir avec les dernières dimensions et positions qu'elles avaient la dernière fois que tu les a ouvertes.
A+
Ah oui ça a l'air pratique je testerais.
J'en profite pour vous demandez quelque chose.
Pendant des tests sur mon projet pour essayer d'éliminer les problèmes que je peux avoir, j'ai constaté un problème quand je compare deux zones de texte avec des numéros.
Je m'explique,
ZTun.text = ma première zone de texte = 100
ZTdeux.text = ma deuxième zone de texte = 200
Je fais une comparaison entre ces deux là.
If ZTun.text <= ZTdeux.text then
Msgbox " La zone de texte 1 est la plus petite "
Else
Msgbox " La zone de texte 2 est la plus petite "
End if
Je teste avec 100 dans la zone de texte 1 et 200 dans la zone de texte 2, ça marche.
Par contre si je teste avec 1000 dans la zone de texte 1 et 200 dans la zone de texte 2, ça marche plus. Avec les chiffres de plus de 999 ça ne fonctionne plus.
C'est du à quoi ?
J'en profite pour vous demandez quelque chose.
Pendant des tests sur mon projet pour essayer d'éliminer les problèmes que je peux avoir, j'ai constaté un problème quand je compare deux zones de texte avec des numéros.
Je m'explique,
ZTun.text = ma première zone de texte = 100
ZTdeux.text = ma deuxième zone de texte = 200
Je fais une comparaison entre ces deux là.
If ZTun.text <= ZTdeux.text then
Msgbox " La zone de texte 1 est la plus petite "
Else
Msgbox " La zone de texte 2 est la plus petite "
End if
Je teste avec 100 dans la zone de texte 1 et 200 dans la zone de texte 2, ça marche.
Par contre si je teste avec 1000 dans la zone de texte 1 et 200 dans la zone de texte 2, ça marche plus. Avec les chiffres de plus de 999 ça ne fonctionne plus.
C'est du à quoi ?
La comparaison se fait sur une variable en string, donc la première lettre est toujours "1"
Pour que ça fonctionne...
Pour que ça fonctionne...
If Val(ZTun.text) <= Val(ZTdeux.text) then
Que dire,
à part un grand merci pour toutes vos réponses précises et une rapidité exemplaire.
Je suis désolé mais j'aurai encore une petite question à élucider si cela vous dérange pas.
Mon problème vient d'un rafraichissement d'un Data.
A partir d'un Data je récupère des informations sur des adhérents de ma base de donnée Access. Je créé des nouveaux adhérents ou j'en supprime.
Quand cela est fait, je souhaite que ma page soit directement mis à jour. Donc je dois rafraichir le Data. J'ai créé un bouton de commande Rafraichir sur la même page du Data (DataAdhérent.refresh). Ça marche parfaitement, je créé un nouveau adhérent, j'appuie sur le bouton de commande Rafraichir et ça marche.
Mais l'inconvénient c'est que je souhaite rafraichir ce DataAdhérent d'une autre page, donc j'ai créé un bouton de commande Rafraichir sur cette page et j'ai inséré ce code là : Fadh.DataAdhérent.refresh.
Fadh = page où le DataAdhérent se situe
DataAdhérent = le Data qui récupère les informations de la base de donnée
Mais cela ne fonctionne pas.
Auriez vous une solution ?
à part un grand merci pour toutes vos réponses précises et une rapidité exemplaire.
Je suis désolé mais j'aurai encore une petite question à élucider si cela vous dérange pas.
Mon problème vient d'un rafraichissement d'un Data.
A partir d'un Data je récupère des informations sur des adhérents de ma base de donnée Access. Je créé des nouveaux adhérents ou j'en supprime.
Quand cela est fait, je souhaite que ma page soit directement mis à jour. Donc je dois rafraichir le Data. J'ai créé un bouton de commande Rafraichir sur la même page du Data (DataAdhérent.refresh). Ça marche parfaitement, je créé un nouveau adhérent, j'appuie sur le bouton de commande Rafraichir et ça marche.
Mais l'inconvénient c'est que je souhaite rafraichir ce DataAdhérent d'une autre page, donc j'ai créé un bouton de commande Rafraichir sur cette page et j'ai inséré ce code là : Fadh.DataAdhérent.refresh.
Fadh = page où le DataAdhérent se situe
DataAdhérent = le Data qui récupère les informations de la base de donnée
Mais cela ne fonctionne pas.
Auriez vous une solution ?
A première vue,
Tu rafraichi le datagrid que tu viens de modifier mais tu n'actualise pas la table dans la BD.
Donc, quand tu rafraichi sur l'autre page les données n'existe pas encore dans la BD.
Mais sans certitude, pas facile avec peu de renseignement.
Tu rafraichi le datagrid que tu viens de modifier mais tu n'actualise pas la table dans la BD.
Donc, quand tu rafraichi sur l'autre page les données n'existe pas encore dans la BD.
Mais sans certitude, pas facile avec peu de renseignement.