Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suppression occurence dans une zone de liste

12 réponses
Avatar
k3n3bra
salut !

je suis actuellement en stage et on me demande de reprendre un programme
déjà existant sur ACCESS concernant une gestion de stock
-l'utilisateur peut faire une entrée en stock, une entrée peut avoir
plusieurs produit (ex: entrée 01 => 5 pain, 10 farine etc)
-si l'utilisateur se trompe il peut modifier une entrée mais il doit
pouvoir aussi supprimer l'entrée (le code est déjà fait pour la suppression
de l'entrée entiére)

le probleme est que je n'arrive pas à faire en sorte de supprimer un produit
supprimer dans une entrée (ex: entrée01: sélectionner uniquement les '5
pains' et les supprimer )

pour l'instant mon code ressemble à cela :

Private Sub Cmdsupsup01_Click()

Dim base As Database
Dim tentree As Recordset
Set base = CurrentDb()
Set tentree = base.OpenRecordset("DÉTAIL_ENTREE", DB_OPEN_DYNASET)
Dim critere As String


critere = "N°ENTREE='" + Lstpdtsup.Column(0) + "' AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"


tentree.FindFirst (critere)

If tentree.NoMatch = False Then
tentree.Delete
End If

Lstpdtsup.Requery

donc voila lorsque j'essaye de supprimer le produit selectionné (cliqué avec
la souris) un message d'erreur apparait sur "tentree.FindFirst (critere)" =>
type de données imcompatible dans l'expressoin du critére
pourtant mon critere récupere bien le N°ENTREE et le N°DETAIL
enfin bref, je commence à avoir access en horreur et je dois encore y passer
un mois
donc si quelqu'un pouvait apaiser ma peine cela serait fort sympathique
voila merci d'avance
byebye

10 réponses

1 2
Avatar
Michel_D
Bonjour,

Quel est la structure de ta base ?


"k3n3bra" a écrit dans le message de news:
salut !

je suis actuellement en stage et on me demande de reprendre un programme
déjà existant sur ACCESS concernant une gestion de stock
-l'utilisateur peut faire une entrée en stock, une entrée peut avoir
plusieurs produit (ex: entrée 01 => 5 pain, 10 farine etc)
-si l'utilisateur se trompe il peut modifier une entrée mais il doit
pouvoir aussi supprimer l'entrée (le code est déjà fait pour la suppression
de l'entrée entiére)

le probleme est que je n'arrive pas à faire en sorte de supprimer un produit
supprimer dans une entrée (ex: entrée01: sélectionner uniquement les '5
pains' et les supprimer )

pour l'instant mon code ressemble à cela :

Private Sub Cmdsupsup01_Click()

Dim base As Database
Dim tentree As Recordset
Set base = CurrentDb()
Set tentree = base.OpenRecordset("DÉTAIL_ENTREE", DB_OPEN_DYNASET)
Dim critere As String


critere = "N°ENTREE='" + Lstpdtsup.Column(0) + "' AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"


tentree.FindFirst (critere)

If tentree.NoMatch = False Then
tentree.Delete
End If

Lstpdtsup.Requery

donc voila lorsque j'essaye de supprimer le produit selectionné (cliqué avec
la souris) un message d'erreur apparait sur "tentree.FindFirst (critere)" =>
type de données imcompatible dans l'expressoin du critére
pourtant mon critere récupere bien le N°ENTREE et le N°DETAIL
enfin bref, je commence à avoir access en horreur et je dois encore y passer
un mois
donc si quelqu'un pouvait apaiser ma peine cela serait fort sympathique
voila merci d'avance
byebye


Avatar
k3n3bra
euh ... la structure de la base ... euh je dois avouer que je n'en sais rien
... désolé.
En plus je c'est pas où trouver la réponse ^^'
normalement c'est du genre OCBD où quelque chose comme ça non ?!
enfin désolé je suis très novice (même si c'est pas une excuse :/)


Bonjour,

Quel est la structure de ta base ?


"k3n3bra" a écrit dans le message de news:
salut !

je suis actuellement en stage et on me demande de reprendre un programme
déjà existant sur ACCESS concernant une gestion de stock
-l'utilisateur peut faire une entrée en stock, une entrée peut avoir
plusieurs produit (ex: entrée 01 => 5 pain, 10 farine etc)
-si l'utilisateur se trompe il peut modifier une entrée mais il doit
pouvoir aussi supprimer l'entrée (le code est déjà fait pour la suppression
de l'entrée entiére)

le probleme est que je n'arrive pas à faire en sorte de supprimer un produit
supprimer dans une entrée (ex: entrée01: sélectionner uniquement les '5
pains' et les supprimer )

pour l'instant mon code ressemble à cela :

Private Sub Cmdsupsup01_Click()

Dim base As Database
Dim tentree As Recordset
Set base = CurrentDb()
Set tentree = base.OpenRecordset("DÉTAIL_ENTREE", DB_OPEN_DYNASET)
Dim critere As String


critere = "N°ENTREE='" + Lstpdtsup.Column(0) + "' AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"


tentree.FindFirst (critere)

If tentree.NoMatch = False Then
tentree.Delete
End If

Lstpdtsup.Requery

donc voila lorsque j'essaye de supprimer le produit selectionné (cliqué avec
la souris) un message d'erreur apparait sur "tentree.FindFirst (critere)" =>
type de données imcompatible dans l'expressoin du critére
pourtant mon critere récupere bien le N°ENTREE et le N°DETAIL
enfin bref, je commence à avoir access en horreur et je dois encore y passer
un mois
donc si quelqu'un pouvait apaiser ma peine cela serait fort sympathique
voila merci d'avance
byebye






Avatar
Michel_D
re,

Si l'on ne sait pas comment sont organisés les données, on va avoir du
mal pour t'aider.

En gros, tes entrées sont stockés dans quels champs de quelles tables ?

Par exemple j'espère que les infos "5 pain" et "10 farine" sont situées
dans un enregistrement distinct sinon cela veut dire des complications
en perspectives.


"k3n3bra" a écrit dans le message de news:
euh ... la structure de la base ... euh je dois avouer que je n'en sais rien
... désolé.
En plus je c'est pas où trouver la réponse ^^'
normalement c'est du genre OCBD où quelque chose comme ça non ?!
enfin désolé je suis très novice (même si c'est pas une excuse :/)


Bonjour,

Quel est la structure de ta base ?


"k3n3bra" a écrit dans le message de news:
salut !

je suis actuellement en stage et on me demande de reprendre un programme
déjà existant sur ACCESS concernant une gestion de stock
-l'utilisateur peut faire une entrée en stock, une entrée peut avoir
plusieurs produit (ex: entrée 01 => 5 pain, 10 farine etc)
-si l'utilisateur se trompe il peut modifier une entrée mais il doit
pouvoir aussi supprimer l'entrée (le code est déjà fait pour la suppression
de l'entrée entiére)

le probleme est que je n'arrive pas à faire en sorte de supprimer un produit
supprimer dans une entrée (ex: entrée01: sélectionner uniquement les '5
pains' et les supprimer )

pour l'instant mon code ressemble à cela :

Private Sub Cmdsupsup01_Click()

Dim base As Database
Dim tentree As Recordset
Set base = CurrentDb()
Set tentree = base.OpenRecordset("DÉTAIL_ENTREE", DB_OPEN_DYNASET)
Dim critere As String


critere = "N°ENTREE='" + Lstpdtsup.Column(0) + "' AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"


tentree.FindFirst (critere)

If tentree.NoMatch = False Then
tentree.Delete
End If

Lstpdtsup.Requery

donc voila lorsque j'essaye de supprimer le produit selectionné (cliqué avec
la souris) un message d'erreur apparait sur "tentree.FindFirst (critere)" =>
type de données imcompatible dans l'expressoin du critére
pourtant mon critere récupere bien le N°ENTREE et le N°DETAIL
enfin bref, je commence à avoir access en horreur et je dois encore y passer
un mois
donc si quelqu'un pouvait apaiser ma peine cela serait fort sympathique
voila merci d'avance
byebye








Avatar
k3n3bra
AHHHH diantre ... un nom si compliqué pour ça ... pfiou j'ai eu peur ^^
donc lorsqu'il y a une entrée:
table => ENTRÉE(n°entrée,date entrée)
et on enregistre l'entrée dans une autre table (si j'ai bien tout compris au
travail de mes predecesseurs ^^') => DÉTAIL_ENTRÉE(n°détail, n°entrée,
n°produit_cdt ...)
donc normalement quand il y a une entrée les différents produits sont
enregistrés avec le n°détail
car effectivement si c'est pas le cas je vais avoir énormément de mal à
séparer les produits pour réussir à les supprimer individuellement ... du
coup maintenant je balise encore plus :$
Avatar
Michel_D
re,

Hum, un conseil avant de lancer dans quoi que ce soit essaye de
comprendre comment est organisé ta base, aprés tu pourras
intervenir dessus.


"k3n3bra" a écrit dans le message de news:
AHHHH diantre ... un nom si compliqué pour ça ... pfiou j'ai eu peur ^^
donc lorsqu'il y a une entrée:
table => ENTRÉE(n°entrée,date entrée)
et on enregistre l'entrée dans une autre table (si j'ai bien tout compris au
travail de mes predecesseurs ^^') => DÉTAIL_ENTRÉE(n°détail, n°entrée,
n°produit_cdt ...)
donc normalement quand il y a une entrée les différents produits sont
enregistrés avec le n°détail
car effectivement si c'est pas le cas je vais avoir énormément de mal à
séparer les produits pour réussir à les supprimer individuellement ... du
coup maintenant je balise encore plus :$


Avatar
k3n3bra
oui oui je sais j'ai essayé de bien la comprendre mais la base est
relativement imposante (elle date de 2003) et les utilisateurs s'en servent
depuis lors ... donc il y a bon nombre d'enregistrement.
de plus d'autres étudiants sont passés avant moi et n'ont pas réussi grand
chose non plus ... et c'est pas pour critiquer ceux qui sont passés avant moi
mais ils ont nommés les formulaires et autres un peu bizarrement donc c'est
difficile d'avoir de bons points de repéres ... enfin bref ... désolé du
dérangement ^^ je suis (presque) sur que j'ai du me tromper dans la
récupération du n° ou quelque chose comme ça :D
byebye


re,

Hum, un conseil avant de lancer dans quoi que ce soit essaye de
comprendre comment est organisé ta base, aprés tu pourras
intervenir dessus.


"k3n3bra" a écrit dans le message de news:
AHHHH diantre ... un nom si compliqué pour ça ... pfiou j'ai eu peur ^^
donc lorsqu'il y a une entrée:
table => ENTRÉE(n°entrée,date entrée)
et on enregistre l'entrée dans une autre table (si j'ai bien tout compris au
travail de mes predecesseurs ^^') => DÉTAIL_ENTRÉE(n°détail, n°entrée,
n°produit_cdt ...)
donc normalement quand il y a une entrée les différents produits sont
enregistrés avec le n°détail
car effectivement si c'est pas le cas je vais avoir énormément de mal à
séparer les produits pour réussir à les supprimer individuellement ... du
coup maintenant je balise encore plus :$






Avatar
Gilbert
Bonjour,

Au vu des noms des champs j'imagine qu'ils sont numériques. As-tu essayé
d'enlever les apostrophes?
Ca donne :
critere = "N°ENTREE=" + Lstpdtsup.Column(0) + " AND N°DETAIL=" +
Lstpdtsup.Column(14)


--
Cordialement,

Gilbert


"k3n3bra" a écrit dans le message de
news:
salut !

je suis actuellement en stage et on me demande de reprendre un programme
déjà existant sur ACCESS concernant une gestion de stock
-l'utilisateur peut faire une entrée en stock, une entrée peut avoir
plusieurs produit (ex: entrée 01 => 5 pain, 10 farine etc)
-si l'utilisateur se trompe il peut modifier une entrée mais il doit
pouvoir aussi supprimer l'entrée (le code est déjà fait pour la
suppression

de l'entrée entiére)

le probleme est que je n'arrive pas à faire en sorte de supprimer un
produit

supprimer dans une entrée (ex: entrée01: sélectionner uniquement les '5
pains' et les supprimer )

pour l'instant mon code ressemble à cela :

Private Sub Cmdsupsup01_Click()

Dim base As Database
Dim tentree As Recordset
Set base = CurrentDb()
Set tentree = base.OpenRecordset("DÉTAIL_ENTREE", DB_OPEN_DYNASET)
Dim critere As String


critere = "N°ENTREE='" + Lstpdtsup.Column(0) + "' AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"


tentree.FindFirst (critere)

If tentree.NoMatch = False Then
tentree.Delete
End If

Lstpdtsup.Requery

donc voila lorsque j'essaye de supprimer le produit selectionné (cliqué
avec

la souris) un message d'erreur apparait sur "tentree.FindFirst (critere)"
=>

type de données imcompatible dans l'expressoin du critére
pourtant mon critere récupere bien le N°ENTREE et le N°DETAIL
enfin bref, je commence à avoir access en horreur et je dois encore y
passer

un mois
donc si quelqu'un pouvait apaiser ma peine cela serait fort sympathique
voila merci d'avance
byebye


Avatar
k3n3bra
salut !
oui j'ai tenté de les enlever ce matin au cas ou mais en fait n°entrée =>
num auto
n°détail => texte
si j'enléve les quotes j'ai une erreur de syntaxe sur mon critere du coup ^^'
merci quand même
byebye


Bonjour,

Au vu des noms des champs j'imagine qu'ils sont numériques. As-tu essayé
d'enlever les apostrophes?
Ca donne :
critere = "N°ENTREE=" + Lstpdtsup.Column(0) + " AND N°DETAIL=" +
Lstpdtsup.Column(14)


--
Cordialement,

Gilbert


"k3n3bra" a écrit dans le message de
news:
salut !

je suis actuellement en stage et on me demande de reprendre un programme
déjà existant sur ACCESS concernant une gestion de stock
-l'utilisateur peut faire une entrée en stock, une entrée peut avoir
plusieurs produit (ex: entrée 01 => 5 pain, 10 farine etc)
-si l'utilisateur se trompe il peut modifier une entrée mais il doit
pouvoir aussi supprimer l'entrée (le code est déjà fait pour la
suppression

de l'entrée entiére)

le probleme est que je n'arrive pas à faire en sorte de supprimer un
produit

supprimer dans une entrée (ex: entrée01: sélectionner uniquement les '5
pains' et les supprimer )

pour l'instant mon code ressemble à cela :

Private Sub Cmdsupsup01_Click()

Dim base As Database
Dim tentree As Recordset
Set base = CurrentDb()
Set tentree = base.OpenRecordset("DÉTAIL_ENTREE", DB_OPEN_DYNASET)
Dim critere As String


critere = "N°ENTREE='" + Lstpdtsup.Column(0) + "' AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"


tentree.FindFirst (critere)

If tentree.NoMatch = False Then
tentree.Delete
End If

Lstpdtsup.Requery

donc voila lorsque j'essaye de supprimer le produit selectionné (cliqué
avec

la souris) un message d'erreur apparait sur "tentree.FindFirst (critere)"
=>

type de données imcompatible dans l'expressoin du critére
pourtant mon critere récupere bien le N°ENTREE et le N°DETAIL
enfin bref, je commence à avoir access en horreur et je dois encore y
passer

un mois
donc si quelqu'un pouvait apaiser ma peine cela serait fort sympathique
voila merci d'avance
byebye







Avatar
Michel_D
Bonjour,

Bon allez, on va essayer de progresser, il faudrait fournir le code qui
supprime l'entrée entière.


"k3n3bra" a écrit dans le message de news:
oui oui je sais j'ai essayé de bien la comprendre mais la base est
relativement imposante (elle date de 2003) et les utilisateurs s'en servent
depuis lors ... donc il y a bon nombre d'enregistrement.
de plus d'autres étudiants sont passés avant moi et n'ont pas réussi grand
chose non plus ... et c'est pas pour critiquer ceux qui sont passés avant moi
mais ils ont nommés les formulaires et autres un peu bizarrement donc c'est
difficile d'avoir de bons points de repéres ... enfin bref ... désolé du
dérangement ^^ je suis (presque) sur que j'ai du me tromper dans la
récupération du n° ou quelque chose comme ça :D
byebye


re,

Hum, un conseil avant de lancer dans quoi que ce soit essaye de
comprendre comment est organisé ta base, aprés tu pourras
intervenir dessus.


"k3n3bra" a écrit dans le message de news:
AHHHH diantre ... un nom si compliqué pour ça ... pfiou j'ai eu peur ^^
donc lorsqu'il y a une entrée:
table => ENTRÉE(n°entrée,date entrée)
et on enregistre l'entrée dans une autre table (si j'ai bien tout compris au
travail de mes predecesseurs ^^') => DÉTAIL_ENTRÉE(n°détail, n°entrée,
n°produit_cdt ...)
donc normalement quand il y a une entrée les différents produits sont
enregistrés avec le n°détail
car effectivement si c'est pas le cas je vais avoir énormément de mal à
séparer les produits pour réussir à les supprimer individuellement ... du
coup maintenant je balise encore plus :$








Avatar
Gilbert
Alors laisse-les pour n°detail et enlève-les pour N°ENTREE

critere = "N°ENTREE=" + Lstpdtsup.Column(0) + " AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"

Et je ne sais pas si ça peut influer, mais j'utilise & plutôt que + pour les
chaînes de caractères
critere = "N°ENTREE=" & Lstpdtsup.Column(0) & " AND N°DETAIL='" &
Lstpdtsup.Column(14) & "'"


--
Cordialement,

Gilbert


"k3n3bra" a écrit dans le message de news:

salut !
oui j'ai tenté de les enlever ce matin au cas ou mais en fait n°entrée =>
num auto
n°détail => texte
si j'enléve les quotes j'ai une erreur de syntaxe sur mon critere du coup
^^'
merci quand même
byebye


Bonjour,

Au vu des noms des champs j'imagine qu'ils sont numériques. As-tu essayé
d'enlever les apostrophes?
Ca donne :
critere = "N°ENTREE=" + Lstpdtsup.Column(0) + " AND N°DETAIL=" +
Lstpdtsup.Column(14)


--
Cordialement,

Gilbert


"k3n3bra" a écrit dans le message de
news:
salut !

je suis actuellement en stage et on me demande de reprendre un
programme
déjà existant sur ACCESS concernant une gestion de stock
-l'utilisateur peut faire une entrée en stock, une entrée peut
avoir
plusieurs produit (ex: entrée 01 => 5 pain, 10 farine etc)
-si l'utilisateur se trompe il peut modifier une entrée mais il
doit
pouvoir aussi supprimer l'entrée (le code est déjà fait pour la
suppression

de l'entrée entiére)

le probleme est que je n'arrive pas à faire en sorte de supprimer un
produit

supprimer dans une entrée (ex: entrée01: sélectionner uniquement les '5
pains' et les supprimer )

pour l'instant mon code ressemble à cela :

Private Sub Cmdsupsup01_Click()

Dim base As Database
Dim tentree As Recordset
Set base = CurrentDb()
Set tentree = base.OpenRecordset("DÉTAIL_ENTREE", DB_OPEN_DYNASET)
Dim critere As String


critere = "N°ENTREE='" + Lstpdtsup.Column(0) + "' AND N°DETAIL='" +
Lstpdtsup.Column(14) + "'"


tentree.FindFirst (critere)

If tentree.NoMatch = False Then
tentree.Delete
End If

Lstpdtsup.Requery

donc voila lorsque j'essaye de supprimer le produit selectionné (cliqué
avec

la souris) un message d'erreur apparait sur "tentree.FindFirst
(critere)"
=>

type de données imcompatible dans l'expressoin du critére
pourtant mon critere récupere bien le N°ENTREE et le N°DETAIL
enfin bref, je commence à avoir access en horreur et je dois encore y
passer

un mois
donc si quelqu'un pouvait apaiser ma peine cela serait fort sympathique
voila merci d'avance
byebye










1 2