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

2 réponses

1 2
Avatar
k3n3bra
hum hum ... bizarrement, plus rien ne se passe ... pas d'erreur, pas de
supression ... rien.
que se soit avec des " + " ou des " & " ca ne fait pas de différence, aucune
réaction dans les deux cas
donc je sais pas trop si c'est une bonne ou une mauvaise nouvelle, il
semblerait que se soit une bonne vue qu'il n'y a plus d'erreur : /


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















Avatar
k3n3bra
euh du coup j'aimerais savoir car en me renseignant à droite à gauche je me
suis rendu compte que sous excel on pouvait faire un truc du genre :
pour i = 1 à list.listcount
list.listindex = i-1
si list.listindex=list.value
j = list.listindex
j.delete
fsi
fp
mais par contre je ne sais pas par quoi remplacer les qualificateurs pour le
mettre sous access (j'avais déjà pensé mettre ItemsSelected pour listIndex
mais c'est tout ^^') donc voilà si quelqu'un a une petite idée merci d'avance
1 2