Supprimer un record d'une table via un bouton et une zone de liste

Le
Michel
Bonjour a tout le monde,

cela ne doit pas etre la premiere fois qu'on pose cette question, mais la
apres qques jours de recherche sur le net je n'ai rien trouve.

j'ai une table "Table_Reporting" ayant les enregistrements suivant :
NumFond_Reporting (cle primaire) (concatenation de Numero_Fond & Reporting)
Numero_Fond
Reporting
Periode

ensuite j'ai un query "Query_Reporting" se basant uniquement sur la table
"Table_Reporting" et le champ "Numero_Fond" est egal a la valeur d'une box
d'un formulaire.

dans ce formulaire "Formulaire_Add_Fund" j'ai une zone de liste "Liste29"
qui reprend les donnees du query "Query_Reporting". J'ai egalement un bouton
"Commande31" auquel je lui ai attache un evenement "Clic" qui derait en soit
recuperer la cle primaire de la zonr de liste puis ouvrir la table
"Table_Reporting" rechercher la valeur puis supprimer toute la ligne
correspondant a cette valeur.

Voila ou j'en suis (le code suivant vient d'une personne d'internet, dont je
remercie d'avoir mis a disposition ce code) :

Private Sub Commande31_Click()


On Error GoTo errHndlr ' If the user presses the delete button without
selecting an item from the list,
' the system will generate an error.

Dim dbs As Database
Dim rst As Recordset
Dim myID As Long
Dim ListItem As String
Dim retVal As Long

'Get the item from the list
retVal = Me.Liste29.ListIndex
ListItem = Me.Liste29.Column(0, retVal) '-> ici ma valeur est super bien

'Do you want to delete?
If MsgBox("Delete " & ListItem & " from the list?", vbQuestion + vbYesNo) =
vbYes Then
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT * FROM Table_Reporting WHERE
NumFond_Reporting ='" & ListItem & "'")

'-> etre ces 2 lignes j'ai le message d'erreur : "13 incompatibilite de
type"
'-> il se rend tout de suite au code suivant :"MsgBox Err.Number & " " &
Err.Description, vbCritical, "Delete Error""
'-> pourtant le champs dans la table est du texte et la variable ListItem
est du String. Ca devrait aller non ?
rst.Delete
rst.Close
myList.Requery ' Requery the list to display the new list
Else
Exit Sub
End If

Exit Sub

errHndlr:
If Err.Number = 94 Then ' The user did not select from the list and pressed
the delete button
MsgBox "Please select an item from the list.", vbInformation, "Delete"
Exit Sub
Else ' If by any chance there is another error encountered
MsgBox Err.Number & " " & Err.Description, vbCritical, "Delete Error"
Exit Sub
End If
End Sub


Merci d'avance pour l'aide que vous pourrez me fournir,

Michel.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien
Le #16340541
Michel a écrit :
Bonjour a tout le monde,

cela ne doit pas etre la premiere fois qu'on pose cette question, mais la
apres qques jours de recherche sur le net je n'ai rien trouve.

j'ai une table "Table_Reporting" ayant les enregistrements suivant :
NumFond_Reporting (cle primaire) (concatenation de Numero_Fond & Reporting)
Numero_Fond
Reporting
Periode

ensuite j'ai un query "Query_Reporting" se basant uniquement sur la table
"Table_Reporting" et le champ "Numero_Fond" est egal a la valeur d'une box
d'un formulaire.

dans ce formulaire "Formulaire_Add_Fund" j'ai une zone de liste "Liste29"
qui reprend les donnees du query "Query_Reporting". J'ai egalement un bouton
"Commande31" auquel je lui ai attache un evenement "Clic" qui derait en soit
recuperer la cle primaire de la zonr de liste puis ouvrir la table
"Table_Reporting" rechercher la valeur puis supprimer toute la ligne
correspondant a cette valeur.

Voila ou j'en suis (le code suivant vient d'une personne d'internet, dont je
remercie d'avoir mis a disposition ce code) :

Private Sub Commande31_Click()


On Error GoTo errHndlr ' If the user presses the delete button without
selecting an item from the list,
' the system will generate an error.

Dim dbs As Database
Dim rst As Recordset
Dim myID As Long
Dim ListItem As String
Dim retVal As Long

'Get the item from the list
retVal = Me.Liste29.ListIndex
ListItem = Me.Liste29.Column(0, retVal) '-> ici ma valeur est super bien

'Do you want to delete?
If MsgBox("Delete " & ListItem & " from the list?", vbQuestion + vbYesNo) =
vbYes Then
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT * FROM Table_Reporting WHERE
NumFond_Reporting ='" & ListItem & "'")

'-> etre ces 2 lignes j'ai le message d'erreur : "13 incompatibilite de
type"
'-> il se rend tout de suite au code suivant :"MsgBox Err.Number & " " &
Err.Description, vbCritical, "Delete Error""
'-> pourtant le champs dans la table est du texte et la variable ListItem
est du String.... Ca devrait aller non ?
rst.Delete
rst.Close
myList.Requery ' Requery the list to display the new list
Else
Exit Sub
End If

Exit Sub

errHndlr:
If Err.Number = 94 Then ' The user did not select from the list and pressed
the delete button
MsgBox "Please select an item from the list.", vbInformation, "Delete"
Exit Sub
Else ' If by any chance there is another error encountered
MsgBox Err.Number & " " & Err.Description, vbCritical, "Delete Error"
Exit Sub
End If
End Sub


Merci d'avance pour l'aide que vous pourrez me fournir,

Michel.




Salut Michel
et en simplifiant


Private Sub Commande31_Click()


On Error GoTo errHndlr ' If the user presses the delete button without
selecting an item from the list,
' the system will generate an error.
If me.liste29.listindex = -1 then
Msgbox "Pas d'éléments selectionnés !"
Exit sub
end if
Currentdb.execute "Delete * " & _
"from Table_Reporting " & _
"WHERE NumFond_Reporting ='" & Replace(Me.Liste29.Column(0,
Me.Liste29.ListIndex),"'","''") & "';")

Me.Liste29.requery

Exit Sub

errHndlr:
If Err.Number = 94 Then ' The user did not select from the list and
ressed
the delete button
MsgBox "Please select an item from the list.", vbInformation, "Delete"
Exit Sub
Else ' If by any chance there is another error encountered
MsgBox Err.Number & " " & Err.Description, vbCritical, "Delete Error"
Exit Sub
End If
End Sub
Peut_être que ton soucis vient du fait qu'il y a des ' dans l'élément
séléctionné d'où le replace
@+
Fabien
Le #16340551
Michel a écrit :
Bonjour a tout le monde,

cela ne doit pas etre la premiere fois qu'on pose cette question, mais la
apres qques jours de recherche sur le net je n'ai rien trouve.

j'ai une table "Table_Reporting" ayant les enregistrements suivant :
NumFond_Reporting (cle primaire) (concatenation de Numero_Fond & Reporting)
Numero_Fond
Reporting
Periode

ensuite j'ai un query "Query_Reporting" se basant uniquement sur la table
"Table_Reporting" et le champ "Numero_Fond" est egal a la valeur d'une box
d'un formulaire.

dans ce formulaire "Formulaire_Add_Fund" j'ai une zone de liste "Liste29"
qui reprend les donnees du query "Query_Reporting". J'ai egalement un bouton
"Commande31" auquel je lui ai attache un evenement "Clic" qui derait en soit
recuperer la cle primaire de la zonr de liste puis ouvrir la table
"Table_Reporting" rechercher la valeur puis supprimer toute la ligne
correspondant a cette valeur.

Voila ou j'en suis (le code suivant vient d'une personne d'internet, dont je
remercie d'avoir mis a disposition ce code) :

Private Sub Commande31_Click()


On Error GoTo errHndlr ' If the user presses the delete button without
selecting an item from the list,
' the system will generate an error.

Dim dbs As Database
Dim rst As Recordset
Dim myID As Long
Dim ListItem As String
Dim retVal As Long

'Get the item from the list
retVal = Me.Liste29.ListIndex
ListItem = Me.Liste29.Column(0, retVal) '-> ici ma valeur est super bien

'Do you want to delete?
If MsgBox("Delete " & ListItem & " from the list?", vbQuestion + vbYesNo) =
vbYes Then
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT * FROM Table_Reporting WHERE
NumFond_Reporting ='" & ListItem & "'")

'-> etre ces 2 lignes j'ai le message d'erreur : "13 incompatibilite de
type"
'-> il se rend tout de suite au code suivant :"MsgBox Err.Number & " " &
Err.Description, vbCritical, "Delete Error""
'-> pourtant le champs dans la table est du texte et la variable ListItem
est du String.... Ca devrait aller non ?
rst.Delete
rst.Close
myList.Requery ' Requery the list to display the new list
Else
Exit Sub
End If

Exit Sub

errHndlr:
If Err.Number = 94 Then ' The user did not select from the list and pressed
the delete button
MsgBox "Please select an item from the list.", vbInformation, "Delete"
Exit Sub
Else ' If by any chance there is another error encountered
MsgBox Err.Number & " " & Err.Description, vbCritical, "Delete Error"
Exit Sub
End If
End Sub


Merci d'avance pour l'aide que vous pourrez me fournir,

Michel.




Salut Michel
et en simplifiant


Private Sub Commande31_Click()


On Error GoTo errHndlr ' If the user presses the delete button without
selecting an item from the list,
' the system will generate an error.
If me.liste29.listindex = -1 then
Msgbox "Pas d'éléments selectionnés !"
Exit sub
end if
Currentdb.execute "Delete * " & _
"from Table_Reporting " & _
"WHERE NumFond_Reporting ='" & Replace(Me.Liste29.Column(0,
Me.Liste29.ListIndex),"'","''") & "';")

Me.Liste29.requery

Exit Sub

errHndlr:
If Err.Number = 94 Then ' The user did not select from the list and
ressed
the delete button
MsgBox "Please select an item from the list.", vbInformation, "Delete"
Exit Sub
Else ' If by any chance there is another error encountered
MsgBox Err.Number & " " & Err.Description, vbCritical, "Delete Error"
Exit Sub
End If
End Sub
Peut_être que ton soucis vient du fait qu'il y a des ' dans l'élément
séléctionné d'où le replace
@+
Michel
Le #16345811
salut,

un tout GRAND merci a toi... T'es trop gentil, ca marche a la perfection...
Tout comme ce que je voulais.

@+

Michel.


"Fabien" news:
Michel a écrit :
Bonjour a tout le monde,

cela ne doit pas etre la premiere fois qu'on pose cette question, mais la
apres qques jours de recherche sur le net je n'ai rien trouve.

j'ai une table "Table_Reporting" ayant les enregistrements suivant :
NumFond_Reporting (cle primaire) (concatenation de Numero_Fond &
Reporting)
Numero_Fond
Reporting
Periode

ensuite j'ai un query "Query_Reporting" se basant uniquement sur la table
"Table_Reporting" et le champ "Numero_Fond" est egal a la valeur d'une
box d'un formulaire.

dans ce formulaire "Formulaire_Add_Fund" j'ai une zone de liste "Liste29"
qui reprend les donnees du query "Query_Reporting". J'ai egalement un
bouton "Commande31" auquel je lui ai attache un evenement "Clic" qui
derait en soit recuperer la cle primaire de la zonr de liste puis ouvrir
la table "Table_Reporting" rechercher la valeur puis supprimer toute la
ligne correspondant a cette valeur.

Voila ou j'en suis (le code suivant vient d'une personne d'internet, dont
je remercie d'avoir mis a disposition ce code) :

Private Sub Commande31_Click()


On Error GoTo errHndlr ' If the user presses the delete button without
selecting an item from the list,
' the system will generate an error.

Dim dbs As Database
Dim rst As Recordset
Dim myID As Long
Dim ListItem As String
Dim retVal As Long

'Get the item from the list
retVal = Me.Liste29.ListIndex
ListItem = Me.Liste29.Column(0, retVal) '-> ici ma valeur est super
bien

'Do you want to delete?
If MsgBox("Delete " & ListItem & " from the list?", vbQuestion + vbYesNo)
= vbYes Then
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT * FROM Table_Reporting WHERE
NumFond_Reporting ='" & ListItem & "'")

'-> etre ces 2 lignes j'ai le message d'erreur : "13 incompatibilite de
type"
'-> il se rend tout de suite au code suivant :"MsgBox Err.Number & " " &
Err.Description, vbCritical, "Delete Error""
'-> pourtant le champs dans la table est du texte et la variable ListItem
est du String.... Ca devrait aller non ?
rst.Delete
rst.Close
myList.Requery ' Requery the list to display the new list
Else
Exit Sub
End If

Exit Sub

errHndlr:
If Err.Number = 94 Then ' The user did not select from the list and
pressed the delete button
MsgBox "Please select an item from the list.", vbInformation, "Delete"
Exit Sub
Else ' If by any chance there is another error encountered
MsgBox Err.Number & " " & Err.Description, vbCritical, "Delete Error"
Exit Sub
End If
End Sub


Merci d'avance pour l'aide que vous pourrez me fournir,

Michel.


Salut Michel
et en simplifiant


Private Sub Commande31_Click()


On Error GoTo errHndlr ' If the user presses the delete button without
selecting an item from the list,
' the system will generate an error.
If me.liste29.listindex = -1 then
Msgbox "Pas d'éléments selectionnés !"
Exit sub
end if
Currentdb.execute "Delete * " & _
"from Table_Reporting " & _
"WHERE NumFond_Reporting ='" & Replace(Me.Liste29.Column(0,
Me.Liste29.ListIndex),"'","''") & "';")

Me.Liste29.requery

Exit Sub

errHndlr:
If Err.Number = 94 Then ' The user did not select from the list and
ressed
the delete button
MsgBox "Please select an item from the list.", vbInformation, "Delete"
Exit Sub
Else ' If by any chance there is another error encountered
MsgBox Err.Number & " " & Err.Description, vbCritical, "Delete Error"
Exit Sub
End If
End Sub
Peut_être que ton soucis vient du fait qu'il y a des ' dans l'élément
séléctionné d'où le replace
@+


Publicité
Poster une réponse
Anonyme