Problème de suppression de ligne dans ma DB access via VB6 [Résolu]

Signaler
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
Au risque d'abuser, et de paraitre ridicule , je pose tout de même mon problème, voilà je veux supprimer une ligne de ma base de donne via VB6, problème de 1 il ne me supprime pas la ligne, de deux il ne m'affiche aucun message d'erreur, alors voilà le obut de script sencé supprimer ma ligne :
Private Sub CmdSupp_Click()
'requete suppression des raisons cause sélectionné
Dim NumIdRCFctSel As Integer
NumIdRCFctSel = CInt(CboIDSel.Text)
Requete = "DELETE " & _
          "FROM Raison_Cause " & _
          "WHERE Raison_Cause.Rai_Cau_Fct_Id = " & NumIdRCFctSel & _
            " "

'resultat interpretation requete
GLB_Jeton_Access.Execute Requete, rdExecDirect

'Réinitialisation des combobox.
CboRCD.Clear
CboRCT.Clear
CboIDSel.Clear

'requete récupération des raisons cause
NumNomFctSel = CInt(Mid(CboFct.Text, 1, 2))
Requete = "SELECT * " & _
          "FROM Raison_Cause " & _
          "ORDER BY Raison_Cause.Rai_Cau_Id "
          
'resultat interpretation requete
Set Resultat = GLB_Jeton_Access.OpenResultset(Requete, rdOpenKeyset)
With Resultat
    If (Not .EOF) Then
        .MoveFirst
        While (Not .EOF)
'Remplissage des combobox
            CboRCD.AddItem (!Rai_Cau_Description)
            CboRCT.AddItem (!Rai_Cau_Type)
            CboIDSel.AddItem (!Rai_Cau_Id)
            .MoveNext
        Wend
    End If
    .Close
End With
End Sub, ----
(Coloration syntaxique automatique par Kenji)

Merci de votre aide ^^                  

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe

27 réponses

Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Attendé, je ... je croi oui oh oui je croi bien que enfin ... ET oui enfin celà marche ... mais c'est suspect je ne croi pas avoir changer quelque chose d'important ... bref voilà le bout de  code qui marche bien ... :
Private Sub CmdSupp_Click()
'requete suppression des raisons cause sélectionné
Dim NumIdRCFctSel As Long
NumIdRCFctSel = CLng(CboIDSel.Text)
Requete = "DELETE * " & _
          "FROM Raison_Cause " & _
          "WHERE Raison_Cause.Rai_Cau_Fct_Id = " & NumIdRCFctSel & _
            " "
MsgBox NumIdRCFctSel

'resultat interpretation requete
GLB_Jeton_Access.Execute Requete, rdExecDirect

'Réinitialisation des combobox.
CboRCD.Clear
CboRCT.Clear
CboIDSel.Clear

'requete récupération des raisons cause
NumNomFctSel = CInt(Mid(CboFct.Text, 1, 2))
Requete = "SELECT * " & _
          "FROM Raison_Cause " & _
          "WHERE Raison_Cause.Rai_Cau_Fct_Id = " & NumNomFctSel & _
            " " & _
          "ORDER BY Raison_Cause.Rai_Cau_Id "
          
'resultat interpretation requete
Set Resultat = GLB_Jeton_Access.OpenResultset(Requete, rdOpenKeyset)
With Resultat
    If (Not .EOF) Then
        .MoveFirst
        While (Not .EOF)
'Remplissage des combobox
            CboRCD.AddItem (!Rai_Cau_Description)
            CboRCT.AddItem (!Rai_Cau_Type)
            CboIDSel.AddItem (!Rai_Cau_Id)
            .MoveNext
        Wend
    End If
    .Close
End With
End Sub, ----
(Coloration syntaxique automatique par Kenji)

MERCI ENCORE POUR LE TEMPS QUE VOUS AVEZ PASSE A M'AIDER !!!!

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Avant de lancer ta requête, que te dis :

MsgBox NumIdRCFctSel 


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut,

De  un :
Requete =  "DELETE  * " & _
          "FROM Raison_Cause " & _
          "WHERE Raison_Cause.Rai_Cau_Fct_Id  = " & NumIdRCFctSel & _
            " "

De deux :
Le plus souvent , quand une requete suppression échoue,
pour une raison ou pour une autre, il n' y a pas de message.
Sauf en cas d' erreur dans la synthaxe, bien sûr.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Chaibat05 (Salut) >> Pas forcément(sauf erreur de ma part), cela fonctionne aussi sans *

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut Explorer,
Si tu le dis et que t' en ai sûr, c' est que c' est vrai.
J' ai jamais fait autrement .Alors j' ai pensé que ça pourrait être ça.
Mais peut être aussi que le type de champ ne correspond pas.
Par exemple Long au lieu de Integer.
Attendons.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

ouai ca fonctionne aussi car au debut je l'avais mis, puis j'ai était vérifier ma requète avec easyphp ^^ est il le mette sans *, par qu'elle est implicite en fait si tu la mets pas ...

Exploreur >> Il m'indique bien le numéros d'id de la ligne selectionné dans une de mes combobox !!
Voilà pk je ne comprend pas, mon script et pourtant aC bien foutu

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
ben..j'utilise cette syntaxe dans ma derniere source...Et je suis partit du principe que le DELETE efface la totalité d'un enregistrement comprenant plusieurs champs...

Je suis d'accord avec toi pour le Long

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Re,

Essaye ta requête comme ça, défois que..... :

Requete = "DELETE FROM Raison_Cause " & _
          "WHERE Raison_Cause.Rai_Cau_Fct_Id = " & CLng(CboIDSel.Text) & ""

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Explorer,
(Pour revenir au *)
c' est que * (tout) ne signifie pas seulement  'un enregistrement comprenant plusieurs champs'
mais aussi tous les enregistrements pour une valeur de champ donnée.
D' ailleur dans une requête Suppression, c' est toute la ligne qui est visée.
On peut pas énumérer les champs comme dans Select ou Update.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Non j'ai que des Integer pour le moment, je ne placerai jamais plus de 100 lignes dans ma table ...
et pour le moment la je tente de supprimer al ligne d'id 24 ....

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

J'ai tout de même essayé la convertion en long mais tjs rien ...

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
regardes du coté de GLB_Jeton_Access.Execute Requete, rdExecDirect

tapes
GLB_Jeton_Access.Execute Requete,
et chois un autre argument

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Le quel car moi je sais pas utiliser ca, on m'as dit pour executer c ca, et pour lire c rdOpenKeySet une connerie dansle genre, moi je m'y connais pas du tout en access c'est pour ca entre autre que je galère, pareil pour VB c la troisième ou 4ème fois que ej travail avec alors j'ai un peu de mal, dsl

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
essaies :
GLB_Jeton_Access.Execute Requete,dbFailOnError

ça sert justement à signaler l' erreur.











<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

bien vue !!
il me sors
Erreur d'execution '40085':
Indicateurs d'options non valides ...

Mais que celà peut il bien vouloir dire !!

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

j'ai essayé en dure avec :
Requete = "DELETE * " & _
          "FROM Raison_Cause " & _
          "WHERE Raison_Cause.Rai_Cau_Fct_Id = 28 "

'resultat interpretation requete
GLB_Jeton_Access.Execute Requete, dbFailOnError

Tjs le même problème, franchement je commence serieusement à me poser des questions, comment est-ce possible, que'est ce que j'ai bien pus faire de faux, ... faut absolument que je trouve, car demain mon collège va sur site, et si il n'as pas ca, ca craint pour le client ...
MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
beh c' est pas extraodinaire !
c' est l' option dbFailOnError qui est mise en cause.
Il n' en veut pas.
Remets le  rdExecDirect et cherches l' echec de la suppression ailleurs.
Moi, à part ce qu' on a tenté,je ne vois pas. dsl...

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Essaye comme cela :

Requete = "DELETE * " & _
          "FROM Raison_Cause " & _
          "WHERE Rai_Cau_Fct_Id = 28 "

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

J'ai testé ... mais ca marche tjs pas
Franchement c'est suspect ^^

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
je ne croi pas avoir changer quelque chose d'important ... ...



>Si !

Dim NumIdRCFctSel As Long
NumIdRCFctSel = CLng(CboIDSel.Text)

ton champ est bien un Long alors !


<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />