OVH Cloud OVH Cloud

Instr probleme

14 réponses
Avatar
Himselff
Bonjour =)

J'ai la procédure suivante qui est assez simple, mais elle ne semble pas
fonctionner et je n'arrive pas a mettre le doigt sur le bobo ... elle arrive
à aller chercher une partie des données mais passe a côter de plusieur !

x = 1

Do While myRQ.EOF = False
produit = myRQ.Fields("name").Value
longueur = Len(produit)
chaine = Left(produit, longueur - 2)
If InStr(produit, "-") > 0 Then
If chaine = LstPP.Text Then
patron(x, 1) = myRQ.Fields("sku").Value
patron(x, 2) = myRQ.Fields("size").Value
patron(x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
End If
Else
If produit = LstPP.Text Then
patron(x, 1) = myRQ.Fields("sku").Value
patron(x, 2) = myRQ.Fields("size").Value
patron(x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
End If
End If
myRQ.MoveNext
Loop

si quelqun à une idée !

Merci beaucoup à l'avance !

Fred
--
*****************************************
Plus de café ? Trop de travail ?
Bloqué ? Désesperé ?
Va prendre l'air, fumer une cigarette,
Sa fonctionne a tout coup =)
****************************************************
Fred

www.dmsinc.ca

4 réponses

1 2
Avatar
Zoury
hmmm je n'ai jamais utilisé ça... essai tout de même la syntaxe suivante
(logique testé sur SQL Server, syntaxe tiré d'un site sur le mysql :
http://mysql.dyntex.com/6_mysql_language.html) :

---------
select distinct left(name, position('-', name) - 1) from produits
---------

avec cette requete la liste que tu as dans ton deuxième message donne ceci :

PP8483B30T5
PP8493B30T5

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous

"Himselff" wrote in message
news:H4N_b.8114$
MySQL

--
*****************************************
Plus de café ? Trop de travail ?
Bloqué ? Désesperé ?
Va prendre l'air, fumer une cigarette,
Sa fonctionne a tout coup =)
****************************************************
Fred

www.dmsinc.ca
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: OxnMScw#
> > yaurait il un moyen de faire une requete pour aller chercher que les
> > produits dans la base de données qui serait égale à ma "chaine" genre


le
> > produit moin le "-X" ?
> >
> > sur le même principe que :
> > Select * from produits where left(name,longuer-2) = chaine
>
> la syntaxe risque de ressembler drolement a cela.. quel BD utilises-tu?
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
> Merci de poster les réponses au groupe afin d'en faire profiter à tous
>
>




Avatar
Patrice Henrio
Je pense que cela ne vient pas d'une erreur de syntaxe mais d'une erreur de
logique. Il faut revoir cela à la lumière des explications données
ci-dessus.
Si j'ai bien compris :

Pour chaque item du combo box
Pour chaque produit de la base
Si le nom du produit sans les deux derniers caractères égal celui de
l'item alors
Ajouter le produit au tableau auxiliaire
FinSi
Fin Pour
Fin pour

Ce qui devient grosso-modo à ce qui a été traduit précédemment.

Mais attention, pour chaque nouvel item, le tableau auxiliaire commence à ce
remplir à partir de 1. Donc les infos correspondant à l'item précédent sont
remplacées par les nouvelles.

Peut-être en utilisant un tableau à trois dimensions Patron(1 to 100,1 to
100, 1 to 3)

Pour chaque item du combo box
y prend pour valeur l'index de l'item
Pour chaque produit de la base
x prend pour valeur 1
Si le nom du produit sans les deux derniers caractères égal celui de
l'item alors
Patron(y,x,1) prend pour valeur myRQ.Fields("sku").Value
patron(y,x, 2) = myRQ.Fields("size").Value
patron(y,x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
FinSi
Fin Pour
Fin pour

A toi de traduire maintenant.

Je précise que je n'y connais rien en base de données ni en requête SQL. Il
est donc possible sans doute de faire plus simple à partir de cela.



"Himselff" a écrit dans le message de
news:H4N_b.8114$
MySQL

--
*****************************************
Plus de café ? Trop de travail ?
Bloqué ? Désesperé ?
Va prendre l'air, fumer une cigarette,
Sa fonctionne a tout coup =)
****************************************************
Fred

www.dmsinc.ca
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: OxnMScw#
> > yaurait il un moyen de faire une requete pour aller chercher que les
> > produits dans la base de données qui serait égale à ma "chaine" genre


le
> > produit moin le "-X" ?
> >
> > sur le même principe que :
> > Select * from produits where left(name,longuer-2) = chaine
>
> la syntaxe risque de ressembler drolement a cela.. quel BD utilises-tu?
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
> Merci de poster les réponses au groupe afin d'en faire profiter à tous
>
>




Avatar
Himselff
Voici la solution au cas ou sa vous interesse =)

Do While Not (myRQ.EOF)
produit = myRQ.Fields("name").Value
longueur = Len(produit)
chaine = Left(produit, longueur - 2)
If InStr(produit, "-") > 0 And chaine <> produit Then
patron(x, 1) = myRQ.Fields("sku").Value
patron(x, 2) = myRQ.Fields("size").Value
patron(x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
End If
If produit = LstPP.Text Then
patron(x, 1) = myRQ.Fields("sku").Value
patron(x, 2) = myRQ.Fields("size").Value
patron(x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
End If
myRQ.MoveNext
Loop

merci beaucoup de votre aide et de votre patience !

Fred

--
*****************************************
Plus de café ? Trop de travail ?
Bloqué ? Désesperé ?
Va prendre l'air, fumer une cigarette,
Sa fonctionne a tout coup =)
****************************************************
Fred

www.dmsinc.ca
"Patrice Henrio" a écrit dans le
message de news: #wJIcCx#
Je pense que cela ne vient pas d'une erreur de syntaxe mais d'une erreur


de
logique. Il faut revoir cela à la lumière des explications données
ci-dessus.
Si j'ai bien compris :

Pour chaque item du combo box
Pour chaque produit de la base
Si le nom du produit sans les deux derniers caractères égal celui de
l'item alors
Ajouter le produit au tableau auxiliaire
FinSi
Fin Pour
Fin pour

Ce qui devient grosso-modo à ce qui a été traduit précédemment.

Mais attention, pour chaque nouvel item, le tableau auxiliaire commence à


ce
remplir à partir de 1. Donc les infos correspondant à l'item précédent


sont
remplacées par les nouvelles.

Peut-être en utilisant un tableau à trois dimensions Patron(1 to 100,1 to
100, 1 to 3)

Pour chaque item du combo box
y prend pour valeur l'index de l'item
Pour chaque produit de la base
x prend pour valeur 1
Si le nom du produit sans les deux derniers caractères égal celui de
l'item alors
Patron(y,x,1) prend pour valeur myRQ.Fields("sku").Value
patron(y,x, 2) = myRQ.Fields("size").Value
patron(y,x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
FinSi
Fin Pour
Fin pour

A toi de traduire maintenant.

Je précise que je n'y connais rien en base de données ni en requête SQL.


Il
est donc possible sans doute de faire plus simple à partir de cela.



"Himselff" a écrit dans le message de
news:H4N_b.8114$
> MySQL
>
> --
> *****************************************
> Plus de café ? Trop de travail ?
> Bloqué ? Désesperé ?
> Va prendre l'air, fumer une cigarette,
> Sa fonctionne a tout coup =)
> ****************************************************
> Fred
>
> www.dmsinc.ca
> "Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
> news: OxnMScw#
> > > yaurait il un moyen de faire une requete pour aller chercher que les
> > > produits dans la base de données qui serait égale à ma "chaine"


genre
le
> > > produit moin le "-X" ?
> > >
> > > sur le même principe que :
> > > Select * from produits where left(name,longuer-2) = chaine
> >
> > la syntaxe risque de ressembler drolement a cela.. quel BD


utilises-tu?
> >
> > --
> > Cordialement
> > Yanick Lefebvre - MVP pour Visual Basic
> > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> >
> > Merci de poster les réponses au groupe afin d'en faire profiter à tous
> >
> >
>
>




Avatar
Patrice Henrio
impeccable. c'est aussi en aidant les autres que l'on progresse.
"Himselff" a écrit dans le message de
news:Lso%b.15322$
Voici la solution au cas ou sa vous interesse =)

Do While Not (myRQ.EOF)
produit = myRQ.Fields("name").Value
longueur = Len(produit)
chaine = Left(produit, longueur - 2)
If InStr(produit, "-") > 0 And chaine <> produit Then
patron(x, 1) = myRQ.Fields("sku").Value
patron(x, 2) = myRQ.Fields("size").Value
patron(x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
End If
If produit = LstPP.Text Then
patron(x, 1) = myRQ.Fields("sku").Value
patron(x, 2) = myRQ.Fields("size").Value
patron(x, 3) = myRQ.Fields("qty_pp").Value
x = x + 1
End If
myRQ.MoveNext
Loop

merci beaucoup de votre aide et de votre patience !

Fred

--
*****************************************
Plus de café ? Trop de travail ?
Bloqué ? Désesperé ?
Va prendre l'air, fumer une cigarette,
Sa fonctionne a tout coup =)
****************************************************
Fred

www.dmsinc.ca
"Patrice Henrio" a écrit dans le
message de news: #wJIcCx#
> Je pense que cela ne vient pas d'une erreur de syntaxe mais d'une erreur
de
> logique. Il faut revoir cela à la lumière des explications données
> ci-dessus.
> Si j'ai bien compris :
>
> Pour chaque item du combo box
> Pour chaque produit de la base
> Si le nom du produit sans les deux derniers caractères égal celui de
> l'item alors
> Ajouter le produit au tableau auxiliaire
> FinSi
> Fin Pour
> Fin pour
>
> Ce qui devient grosso-modo à ce qui a été traduit précédemment.
>
> Mais attention, pour chaque nouvel item, le tableau auxiliaire commence


à
ce
> remplir à partir de 1. Donc les infos correspondant à l'item précédent
sont
> remplacées par les nouvelles.
>
> Peut-être en utilisant un tableau à trois dimensions Patron(1 to 100,1


to
> 100, 1 to 3)
>
> Pour chaque item du combo box
> y prend pour valeur l'index de l'item
> Pour chaque produit de la base
> x prend pour valeur 1
> Si le nom du produit sans les deux derniers caractères égal celui de
> l'item alors
> Patron(y,x,1) prend pour valeur myRQ.Fields("sku").Value
> patron(y,x, 2) = myRQ.Fields("size").Value
> patron(y,x, 3) = myRQ.Fields("qty_pp").Value
> x = x + 1
> FinSi
> Fin Pour
> Fin pour
>
> A toi de traduire maintenant.
>
> Je précise que je n'y connais rien en base de données ni en requête SQL.
Il
> est donc possible sans doute de faire plus simple à partir de cela.
>
>
>
> "Himselff" a écrit dans le message de
> news:H4N_b.8114$
> > MySQL
> >
> > --
> > *****************************************
> > Plus de café ? Trop de travail ?
> > Bloqué ? Désesperé ?
> > Va prendre l'air, fumer une cigarette,
> > Sa fonctionne a tout coup =)
> > ****************************************************
> > Fred
> >
> > www.dmsinc.ca
> > "Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message


de
> > news: OxnMScw#
> > > > yaurait il un moyen de faire une requete pour aller chercher que


les
> > > > produits dans la base de données qui serait égale à ma "chaine"
genre
> le
> > > > produit moin le "-X" ?
> > > >
> > > > sur le même principe que :
> > > > Select * from produits where left(name,longuer-2) = chaine
> > >
> > > la syntaxe risque de ressembler drolement a cela.. quel BD
utilises-tu?
> > >
> > > --
> > > Cordialement
> > > Yanick Lefebvre - MVP pour Visual Basic
> > > http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> > > http://www.mentalis.org/agnet/apiguide.shtml -


http://www.mztools.com/
> > >
> > > Merci de poster les réponses au groupe afin d'en faire profiter à


tous
> > >
> > >
> >
> >
>
>




1 2