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

10 réponses

1 2
Avatar
Himselff
petit ajout : voici un exemple des données que jessaie de traiter !
Name Sku
PP8483B30T5-C 73033
PP8483B30T5-C 73032
PP8483B30T5-C 73031
PP8483B30T5-C 42T14
PP8483B30T5-C 42T13
PP8483B30T5-C 42T12
PP8483B30T5-C 42T11
PP8483B30T5-C 42T05
PP8483B30T5-C 42T04
PP8483B30T5-C 42T03
PP8483B30T5-C 42T02
PP8483B30T5-C 42T01
PP8483B30T5-B 80063
PP8483B30T5-B 80062
PP8483B30T5-B 80061
PP8493B30T5-A 80T01
PP8493B30T5-A 80T02
PP8493B30T5-A 80T03
PP8493B30T5-A 80T04
PP8493B30T5-A 80T05
PP8493B30T5-A 80T11
PP8493B30T5-A 80T12
PP8493B30T5-A 80T13
PP8493B30T5-A 80T14
PP8493B30T5-A 80T15
PP8493B30T5-A 80T21
PP8493B30T5-A 80T22
PP8493B30T5-A 80T23
PP8493B30T5-A 80T24
PP8493B30T5-A 80T25
PP8483B30T5-C 86431
PP8483B30T5-C 86432
PP8483B30T5-C 86433
PP8483B30T5-C 86434


--
*****************************************
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
"Himselff" a écrit dans le message de news:
%Bt_b.6948$
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




Avatar
Patrice Henrio
x = 1
Do While Not(myRQ.EOF) 'Préférable à Conditionúlse
produit = myRQ.Fields("name").Value
longueur = Len(produit)
chaine = Left(produit, longueur - 2)
If ((InStr(produit, "-") > 0) and (chaine = LstPP.Text )) or (produit LstPP.Text) Then
'Voici la condition que tu as écrit
'C'est à dire, soit on trouve le signe "-" dans les caractères de produit et
le texte de LstPP vaut celui de produit (sauf les deux derniers
'caractères), soit les caractères de produit sont les mêmes que ceux du
texte de LstPP.
'Donc si LstPP.Text vaut "A" et produit vaut "B" il ne sera pas traité.
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
'Qu'est-ce qui ne fonctionne pas là dedans ?


"Himselff" a écrit dans le message de
news:%Bt_b.6948$
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 !

>


> >
>

> > > > >
> > >
>
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




Avatar
Himselff
Justement il traite le A mais pas le B cest mon probleme jaimerais quil les
traite tout les deux !

--
*****************************************
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: eytr#fl#
x = 1
Do While Not(myRQ.EOF) 'Préférable à Conditionúlse
produit = myRQ.Fields("name").Value
longueur = Len(produit)
chaine = Left(produit, longueur - 2)
If ((InStr(produit, "-") > 0) and (chaine = LstPP.Text )) or (produit > LstPP.Text) Then
'Voici la condition que tu as écrit
'C'est à dire, soit on trouve le signe "-" dans les caractères de produit


et
le texte de LstPP vaut celui de produit (sauf les deux derniers
'caractères), soit les caractères de produit sont les mêmes que ceux du
texte de LstPP.
'Donc si LstPP.Text vaut "A" et produit vaut "B" il ne sera pas traité.
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
'Qu'est-ce qui ne fonctionne pas là dedans ?


"Himselff" a écrit dans le message de
news:%Bt_b.6948$
> 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 !
>
> >
>
>
> > >
> >
>
> > > > > >
> > > >
> >
> 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
>
>




Avatar
ng
Salut,

InStr semble être mal utilisé dans ton exemple. En effet le premier argument
est Start et est censé être numérque or produit ne l'est pas !

Essaye de remplacer ta ligne par :
If InStr(1,produit, "-") > 0 Then
ou (ca ne change rien dans le cadre d'un tiret)
If InStr(1,produit, "-", vbTextCompare) > 0 Then

Ce qui est curieux c'est que tu n'ais pas d'erreur 13 - Type incompatible ?
produit est t-il bien déclaré en string ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Himselff a écrit :

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


Avatar
Patrice Henrio
Start est facultatif et par défaut vaut 1

"ng" a écrit dans le message de
news:uy8CPpv%
Salut,

InStr semble être mal utilisé dans ton exemple. En effet le premier


argument
est Start et est censé être numérque or produit ne l'est pas !

Essaye de remplacer ta ligne par :
If InStr(1,produit, "-") > 0 Then
ou (ca ne change rien dans le cadre d'un tiret)
If InStr(1,produit, "-", vbTextCompare) > 0 Then

Ce qui est curieux c'est que tu n'ais pas d'erreur 13 - Type incompatible


?
produit est t-il bien déclaré en string ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Himselff a écrit :

> 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




Avatar
Himselff
Ce que je veux cest que sil ya 15 produits identique diférencié que par
le -X a la fin , il ne les affiche pas tous dans mon combo box, (cette
partie fonctionne), a l'inverse jaimerais que pour les 15 produits il les
ajoutes tous dans une variable tableau, pour que je puisse y faire le
traitement ,

Je suis en train dessayer qque chose avec les requetes, genre Select * from
produits where left(name,longuer-2) = chaine

Pour etre franc sa fonctionne pas non plus :oP

Je vais essayer les modifications que vous mavez proposez bien quelles
ressemblent beaucoup à tout ce que jai déja tester =)

Merci beaucoup !

--
*****************************************
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: uZw6E0v#
Start est facultatif et par défaut vaut 1

"ng" a écrit dans le message de
news:uy8CPpv%
> Salut,
>
> InStr semble être mal utilisé dans ton exemple. En effet le premier
argument
> est Start et est censé être numérque or produit ne l'est pas !
>
> Essaye de remplacer ta ligne par :
> If InStr(1,produit, "-") > 0 Then
> ou (ca ne change rien dans le cadre d'un tiret)
> If InStr(1,produit, "-", vbTextCompare) > 0 Then
>
> Ce qui est curieux c'est que tu n'ais pas d'erreur 13 - Type


incompatible
?
> produit est t-il bien déclaré en string ?
>
> --
> Nicolas G.
> FAQ VB : http://faq.vb.free.fr
> API Guide : http://www.allapi.net
> Google Groups : http://groups.google.fr/
> MZ-Tools : http://www.mztools.com/
>
> Himselff a écrit :
>
> > 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
>
>




Avatar
ng
En effet mais seulement s'il y a deux arguments car sinon VB ne peut faire
la différence. Disons que j'ai lu un peu vite et me suis empressé de
répondre :/

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Patrice Henrio a écrit :

Start est facultatif et par défaut vaut 1

"ng" a écrit dans le message de
news:uy8CPpv%
Salut,

InStr semble être mal utilisé dans ton exemple. En effet le premier
argument est Start et est censé être numérque or produit ne l'est
pas !

Essaye de remplacer ta ligne par :
If InStr(1,produit, "-") > 0 Then
ou (ca ne change rien dans le cadre d'un tiret)
If InStr(1,produit, "-", vbTextCompare) > 0 Then

Ce qui est curieux c'est que tu n'ais pas d'erreur 13 - Type
incompatible ? produit est t-il bien déclaré en string ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Himselff a écrit :

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






Avatar
Himselff
jai essayer les modification du instr et avec ou sans modification il sort
quand meme le bon résultat donc ce n'était pas ma syntaxe qui ne
fonctionnait pas ,

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

merci !


--
*****************************************
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
"ng" a écrit dans le message de news:
uvXRZDw#
En effet mais seulement s'il y a deux arguments car sinon VB ne peut faire
la différence. Disons que j'ai lu un peu vite et me suis empressé de
répondre :/

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Patrice Henrio a écrit :

> Start est facultatif et par défaut vaut 1
>
> "ng" a écrit dans le message de
> news:uy8CPpv%
>> Salut,
>>
>> InStr semble être mal utilisé dans ton exemple. En effet le premier
>> argument est Start et est censé être numérque or produit ne l'est
>> pas !
>>
>> Essaye de remplacer ta ligne par :
>> If InStr(1,produit, "-") > 0 Then
>> ou (ca ne change rien dans le cadre d'un tiret)
>> If InStr(1,produit, "-", vbTextCompare) > 0 Then
>>
>> Ce qui est curieux c'est que tu n'ais pas d'erreur 13 - Type
>> incompatible ? produit est t-il bien déclaré en string ?
>>
>> --
>> Nicolas G.
>> FAQ VB : http://faq.vb.free.fr
>> API Guide : http://www.allapi.net
>> Google Groups : http://groups.google.fr/
>> MZ-Tools : http://www.mztools.com/
>>
>> Himselff a écrit :
>>
>>> 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




Avatar
Zoury
> 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
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