J'ai toujours besoin d'aide!

Crazyblinkgirl - 29 oct. 2001 à 19:40
neo1502 Messages postés 23 Date d'inscription mercredi 4 juin 2003 Statut Membre Dernière intervention 13 février 2004 - 11 janv. 2004 à 16:33
Merci à WolfKiller, j'espère que toi ou quelqu'un pourra m'aider!
J'ai plusieurs problèmes. Tout d'abord au niveau des combobox (de style 2).Je selectionne un élément de la liste et ensuite j'appui sur un bouton qui charge une nouvelle forme (et qui enlève celle des combo)et quand je reviens sur cette dernière l'élément selectionné de la liste a disparu! Comment faire pour le retrouver automatiquement? J'ai le même problème avec un Treeview et une MSFlexGrid qui redeviennent vierges quand je reviens sur la première feuille.

Ensuite, cela concerne les checkboxs. Quand j'en coche un, un inputbox apparait pour demander une quantité. Je voudrais ensuite charger cette quantité dans une MSFlexGrid qui se trouve sur une autre forme mais j'ai du mal.

Je voudrais également charger une forme quand je clique sur une ligne d'une MSFlexGrid (affichant des données relative à la ligne selectionnée) mais le problème est qu'il me selectionne toujours la première ligne (après celle qui est fixe) alors que je lui ai di d'en selectionné une avec grille.row

Enfin j'ai des problèmes avec certaines requêtes sql. J'ai les erreurs " Trop peu de paramètres, 2 attendus" et "nom de source de données trop long ", je ne vois pas oû est l'erreur. De plus à chaque fois que je fais toutes les jointures, ca coince parce que c'est trop long alors je ne les fait pas mais ca m'embête.
Voilà ca fait beaucoup mais j'espère qu'on pourra m'aider!

11 réponses

Salut,

Tu ne dois pas décharger la form dui contient les combobox, sinon tu perds tous. Si tu ne veux plus l'afficher à l'écran, tu peux utiliser la propriété "visible" :

nom_ta_form.Visible = False

Ensuite pour la faire réapparaitre, il suffit de faire repasser la propriété à True. J'espère que ca t'aidera.

Par contre pour ce qui concerne MSFlexGrid et les sql, je ne peux pas te renseigner. A+
0
Salut
Pour la quantitée que tu veux retrouver dans ta FlexGrid,
il te faut passer par une variable Public que tu met dans un module. J'ai toujours un module de variable modVar et un de constante modConst dans mes projets, c'est cool et pratique pour les valeurs numérique,chaine ou tableau que je promene entre mes formes.Et puis on sait ou elle sont.

"Trop peu de paramètres, 2 attendus"

Cela veut dire que ta requete est fausse quelque part il manque un truc, du genre : " Select * from MyTable where myColonne = ??"
Montre ton code, on pourrat essayer de trouver.
Idem pour " nom de source de données trop long " ce sont les parametres de ta connection.

Bonne prog
@++
PS je vais essayer de recuperer les infos d'une Flex pour une autre forme...
0
Resalut
J'ai commencer un projet de test avec une FlexGrid.

2 forms :
une avec une FlexGrid et un bouton de commande ,une avec 2 labels

'dans la premiere forme frmMsFlexGrid
Private Sub Command1_Click()
    'Me.Hide
    frmReception.Show 1
End Sub

Private Sub Form_Load()
    MSFlexGrid1.AddItem ("Bonjour"), 1
    MSFlexGrid1.AddItem ("WolfKiller"), 2
End Sub

'dans la deuxieme frmReception
Private Sub Form_Load()
    Label1.Caption = frmMsFlexGrid.MSFlexGrid1.TextMatrix(1, 0)
    Label2.Caption = frmMsFlexGrid.MSFlexGrid1.TextMatrix(2, 0)
End Sub


Je continue pour recuperer les infos au moment ou tu clique sur la FlexGrid
Bonne prog :)
@++
0
Crazyblinkgirl
30 oct. 2001 à 19:27
Merci pour votre aide!

Concernant mes pbs de requetes, j'ai celle ci qui me pose pb:
sql = "select telephone.num_serie from telephone,modele where telephone.ref_mod= modele.ref_mod and modele.ref_mod= '" & grille.Row & "'"
rs.Open sql, conn, adOpenDynamic, adLockPessimistic

J'ai l'erreur " Trop peu de paramètres, 2 attendus"

Pour ne pas perdre les infos (d'une listbox et d'une flexgrid) d'une forme au chargement d'une autre, j'ai utilisé "nom_ta_form.Visible = False" mais ca ne marche pas quand même.

Merci encore et @ plus!!!
0

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

Posez votre question
Salut,
Je te propose ce petit exemple pour éviter de perdre tes infos:

Créé une feuille Form1 et ajoute les controls text1, combo1 et command1 puis copie et colle ceci:

Private Sub Command1_Click()
Form1.Visible = False 'rend invisible ta feuille
'Form1 mais ne la décharge pas

Load Form2
Form2.Show 0
End Sub

Private Sub Form_Load()
Combo1.AddItem "essais1"
Combo1.AddItem "essais2"
Combo1.AddItem "essais3"

Ensuite créé une feuille Form2, et tu ajoutes seulement un bouton command1 et colle ce code dans Form2:

Private Sub Command1_Click()
Unload Form2 'Déchage Form2
Form1.Visible = True 'Réaffiche ta feuille Form1
End Sub

Ecrit ce que tu veux dans le textbox, choisi un élément ds la liste et click sur le bouton. Ta feuille va disparaitre et une nouvelle feuille va se charger. Losque tu clikeras sur le bouton de la nouvelle feuille Form2, elle se déchargera et la feuille Form1 réaparaitra avec toutes les données que tu as rentré ds chacun de tes controls avant de la cachée.

J'espère que ce petit exemple te sera très utile.
A+
0
Salut
Pour la requete c normal car Grid.row te renvoies le numero de la ligne qui a été selectionné
Tu dois faire untruc du genre :

MyVariable = Grid.TextMatrix(Grid.row,Grid.col)

sql = "select telephone.num_serie from telephone,modele where telephone.ref_mod= modele.ref_mod and modele.ref_mod= '" & MyVariable & "'"

Pour ta form je t'ai mis un exemple plus bas.

Bonne prog
@++
Ps : Change le titre c'est plus pratique :clown)
0
Crazyblinkgirl
31 oct. 2001 à 11:00
Merci beaucoup à toi et Mikkael, c vraiment tré gentil! Ca m'aide bcp car ca marche!!!! A plus!
0
Salut
Mes essais pour recuperer les clics sur la grille
Tu n'as plus qu'a choisir le moment ou tu veux faire apparaitre ta deuxieme forme. :)

Private Sub MSFlexGrid1_Click()
    MsgBox ("Click :" + Format(MSFlexGrid1.Row) + " " + Format(MSFlexGrid1.Col)), vbOKOnly, "Test sur la FlexGrid"
    sText = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
End Sub

Private Sub MSFlexGrid1_RowColChange()
    MsgBox ("RowColChange :" + Format(MSFlexGrid1.Row) + " " + Format(MSFlexGrid1.Col)), vbOKOnly, "Test sur la FlexGrid"
    sText = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
End Sub

Private Sub MSFlexGrid1_SelChange()
    MsgBox ("SelChange :" + Format(MSFlexGrid1.Row) + " " + Format(MSFlexGrid1.Col)), vbOKOnly, "Test sur la FlexGrid"
    sText = MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0)
End Sub
'dans la deuxieme forme
Private Sub Form_Load()
Dim i As Integer
    Label1.Caption = sText
    Label2.Caption = frmMsFlexGrid.MSFlexGrid1.TextMatrix(2, 0)
End Sub


Heureux de d'avoir aider :)
Bonne prog
@++
PS : Tu peux ,si tu veux, relancer une question sur le forum cela augmentera la visibilite.
PPS : Et faire partager ton prog dans les sources
0
Crazyblinkgirl
31 oct. 2001 à 14:03
Vraiment je ne c pas comment te remercier!
J'ai encore une dernière chose et après j'espère ne plus avoir à t'embeter!
Je veux faire un test sur un combo pour vérifier si il n'est pas vide mais comme il est de style 2, son text est automatique ds les proprietés (nom du combo) dc je ne peux pas faire if (cbocombo.text=""). Jai essayé plusieurs choses mais je coince.
Enfin, j'ai utilisé des variables globales pour récupérer des entiers depuis des inputbox :

Private Sub ChkChargeur_Click()

qté_Chargeur = InputBox("Veuillez indiquer la quantité souhaitée :", " Quantité Accessoires")

le pb c'est que ces dernières restent vides quand je fait :

If (frmSaisie.ChkChargeur.Value = vbChecked) Then
Grille2.AddItem (frmSaisie.ChkChargeur.Caption & vbTab & rs.Fields(0) & vbTab & qté_Chargeur)
EndIf
Je ne sais pas quoi faire!
Merci d'avance!
@ plus!!!!!

End If

End Sub
0
Salut
J'ai teste ca
Option Explicit

'Choisir qqch dans la combo et cliquer sur la grille pour la valider
Private Sub Combo1_Validate(Cancel As Boolean)
    Dim tempo As String
    MSFlexGrid1.AddItem (Combo1.Text), 3
    Debug.Print Combo1.ListIndex
    tempo = Combo1.List(Combo1.ListIndex)
    MSFlexGrid1.AddItem (tempo), 4
End Sub

Private Sub Form_Load()
    sText = "Rien"
    MSFlexGrid1.AddItem ("Bonjour" + vbTab + "ReBonjour"), 1
    MSFlexGrid1.AddItem ("WolfKiller"), 2
    
    Combo1.List(0) = "Hello"
    Combo1.List(1) = "CrazyBlinkGirl"
End Sub


Ca passe bien.Le text de la combo est en lecture seule.
En style 2 (List uniquement) tu peux ajouter des element dans la liste , il faut commencer par l'index zéro
et remplir dans l'ordre ou par dessus.
.Listindex te donne le numero de l'index sélectionner.
.list(X) de renvoit la valeur texte de l'index X

Le Debug.print permet de visualiser facilement les valeurs que tu promene de droite à gauche

Pour les variables globales ajoute "Option Explicit" qui te dit toutes les variables qui ne sont pas déclarés,Parfois on a de drole de surprises :)
Ensuite il existe trois niveau de déclaration pour les variables :
- Dim en local a une fonction
- Private reserve a la form ou au module
- Public accessible du projet entier et de l'exterieur

Bonne prog :)
@++
WolfKiller
PS :je pars en Week-end :shy) :big)
PPS : Et la semaine prochaine Je suis en Examen :sad)
Mais j'essayerai de passer sur le site et de vérifier ma boite aux lettres
0
neo1502 Messages postés 23 Date d'inscription mercredi 4 juin 2003 Statut Membre Dernière intervention 13 février 2004
11 janv. 2004 à 16:33
neo1502 >:)
0
Rejoignez-nous