Faire un tri sélectif et lien hypertexte

mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010 - 12 sept. 2009 à 14:52
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010 - 14 sept. 2009 à 04:38
Bonjour, j'ai une base de donnée Access(.mdb) que j'ouvre avec un controle "Adodc" et visionne avec un "MshFlexGrid".
Maintenant avec l'aide de bien des gens ça fonctionne très bien.
Mais il me reste 2 petites choses a règler pour que tout soit a mon goût. Au cas ou cela serait important toute les entrées de ma base sont en format texte sauf une qui est un lien hypertexte.

1) Dans ma feuille qui affiche mon MshFlexGrid j'ai insérer 3 TextBox, je peux écrire des chaines de recherche pour en faire un tri sélectif, tout est bien pour le moment, ou je bloque c'est que je dois écrire la chaine complète pour que mon tri fonctionne. Je ne peux pas rechercher quelque chose comme ça ex: dans une chaine "F45HG66" effectuer une recherche du style "*5H*"


2) L'autre chose qui me tracace est que dans ma base de donnée j'ai uu champ qui renvois un lien Hypertexte. Comment inclure ce lien pour qu'il fonctionne a l'intérieur de mon MshFlexGrid.
Présentement le lien s'affiche dans mon Grid ex: P498#E:\chemin...\P498.pdf##Information disque dur

Si vous avez de bon conseils, j'en serais très heureux.

Merci

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 sept. 2009 à 15:31
Salut

-1- Comment fais-tu actuellement ta recherche ?
Par une requète SQL ? laquelle
Exemple :
"... Where monChamp Like '%5H%'"
"... Where monChamp Like '%" & maTextBox.Text & "%'"

Il faudra donc remplacer les * par des %, soit dans la chaine de recherche, soit dans la syntaxe.

-2- Il n'y a pas de composant tout fait qui sache interpréter les liens hypertext en VB6.
Mais comme tu as le texte complet, avec les #, il simple d'en extraire le chemin (par un simple Split) puis de donner cette chaine en pâture à un ShellExecute
Voilà les mots clés de tes prochaines recherches !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010
12 sept. 2009 à 20:17
Ma requete :
Public Function TriFonction()
Dim x
If txtHeatNum.Text "" And txtThickness.Text "" And txtMaterial.Text = "" Then
Adodc1.RecordSource = ("SELECT * FROM Plaques")
Adodc1.Refresh
ElseIf txtHeatNum.Text <> "" And txtThickness.Text <> "" And txtMaterial.Text <> "" Then
Adodc1.RecordSource ("SELECT * FROM Plaques WHERE [Heat Number] '" & txtHeatNum.Text & "' and [Épaisseur] = '" & txtThickness.Text & "' and [Material] = '" & txtMaterial.Text & "' ")
Adodc1.Refresh
ElseIf txtHeatNum.Text <> "" And txtThickness.Text <> "" And txtMaterial.Text = "" Then
Adodc1.RecordSource ("SELECT * FROM Plaques WHERE [Heat Number] '" & txtHeatNum.Text & "' and [Épaisseur] = '" & txtThickness.Text & "' ")
Adodc1.Refresh
ElseIf txtHeatNum.Text <> "" And txtThickness.Text = "" And txtMaterial.Text <> "" Then
Adodc1.RecordSource ("SELECT * FROM Plaques WHERE [Heat Number] '" & txtHeatNum.Text & "' and [Material] = '" & txtMaterial.Text & "' ")
Adodc1.Refresh
ElseIf txtHeatNum.Text = "" And txtThickness.Text <> "" And txtMaterial.Text <> "" Then
Adodc1.RecordSource ("SELECT * FROM Plaques WHERE [Épaisseur] '" & txtThickness.Text & "' and [Material] = '" & txtMaterial.Text & "' ")
Adodc1.Refresh
ElseIf txtHeatNum.Text <> "" And txtThickness.Text "" And txtMaterial.Text "" Then
Adodc1.RecordSource ("SELECT * FROM Plaques WHERE [Heat Number] '" & txtHeatNum.Text & "' ")
Adodc1.Refresh
ElseIf txtHeatNum.Text "" And txtThickness.Text <> "" And txtMaterial.Text "" Then
Adodc1.RecordSource ("SELECT * FROM Plaques WHERE [Épaisseur] '" & txtThickness.Text & "' ")
Adodc1.Refresh
ElseIf txtHeatNum.Text "" And txtThickness.Text "" And txtMaterial.Text <> "" Then
Adodc1.RecordSource ("SELECT * FROM Plaques WHERE [Material] '" & txtMaterial.Text & "' ")
Adodc1.Refresh
End If

For x = 0 To 10 Step 1
MSHFlexGrid1.ColAlignment(x) = flexAlignCenterCenter
MSHFlexGrid1.ColAlignmentFixed(x) = flexAlignCenterCenter
Next

End Function

(Les lignes de code sont sur une ligne, pas sur 2 lignes comme dans cette fenètre)


Je peux te dire que j'ai jouer longtemps avec des ' , " , [] , ; , &, | , avant de trouvé cette façon.
0
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010
12 sept. 2009 à 20:23
Excuse mon ignorance, ce n'est pas ma requète mais ma fonction que j'ai posté.

Ma requète ressemble a *11G*3
c'est le type de caractère que j'insérait dans mon textbox. Je vais essayer avec %

Merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 sept. 2009 à 04:25
Merci d'utiliser la coloration syntaxique proposée dans la barre d'outil de cette fenêtre de saisie : Cela rend le code beaucoup plus facile à lire (couleurs et respect des espaces de début de ligne)

Oui, eh bien tu utilises Like au lieu de =, comme je te l'ai dit :
("SELECT * FROM Plaques WHERE [Heat Number] Like '%" & txtHeatNum.Text & "%'")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 sept. 2009 à 04:38
ou plutôt (le chien de mickey ?) :
Dim sTemp As String
sTemp = maTextBox.Text
sTemp = Replace(sTemp, "*", "%")
' et plus loin, la syntaxe sans les % puisqu'ils seront déjà intégrés à la variable
("SELECT * FROM Plaques WHERE [Heat Number] Like '" & sTemp & "'")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
mona2005 Messages postés 15 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 14 août 2010
14 sept. 2009 à 04:38
WOW super très gentil, tout fonctionne.
Je suis aux anges. J'ai enfin réussi a faire un programme qui va me servir grandement.

PS quand je dit que j'ai enfin réussi, c'est grace a vos réponse et votre gentillesse pour prendre de votre temps a répondre a des gens comme moi qui commence en vb.


Gros merci
0
Rejoignez-nous