IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

La suppression dans ma bd ne fonctionne pas


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut La suppression dans ma bd ne fonctionne pas
    Bonjour tout le monde,

    J'aimerais supprimer un enregistrement de ma base de données.

    Pour cela, j'utilise ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub commandSupprimerUneRecette_Click(Index As Integer)
        Dim ASupprimer, Prochain As Variant
        Dim rsSuppression As Recordset
        Set rsSuppression = BDOuvrirTable("SELECT * FROM recette")
        ASupprimer = rsSuppression.Bookmark
        rsSuppression.MoveNext
        Prochain = rsSuppression.Bookmark
        rsSuppression.Bookmark = ASupprimer
        rsSuppression.Delete
        rsSuppression.Bookmark = Prochain
     
        RemplirListeRecettes 'j'appelle RemplirListeRecettes pour faire un refresh de la liste des recettes
     
    End Sub
    Le problème, c'est que rien ne s'efface.

    Voici le code pour l'ouverture de la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function BDOuvrirTable(ByVal NomTable As String, Optional ByVal LectureSeule As Boolean = False) As Recordset
        Set BDOuvrirTable = BD.OpenRecordset(NomTable, IIf(LectureSeule, dbOpenSnapshot, dbOpenDynaset))
    End Function
    Je mets bien sûr "lecture seule" à faux (en ne passant aucun paramètre, il prend par défaut false).

    J'utilise DAO avec VB6 et Access.

    Sauriez-vous aussi me dire si il est possible dans la fenêtre d'exécution (déboguage) de connaître la valeur de BDOuvrirTable ?

    Merci d'avance pour l'aide.

    beegees

  2. #2
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut
    Bonjour Beegees,
    Ton index est mal placé...
    Regarde ici un exemple de code à adapter bien sur..tout est dans cet exemple!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Dim retour
    Dim rsChoix As Recordset
    Dim strChoix As String
    Dim item
    Dim iPosition As Integer
    iPosition = lstTexteFixe.ListIndex
    If iPosition = -1 Then
    MsgBox "Choisissez un élément dans la liste", vbInformation
    Exit Sub
    End If
    strChoix = "select*from Tva where [N°]= " & CStr(lNuméroItem)
    Set rsChoix = Bd.OpenRecordset(strChoix, dbOpenDynaset)
    item = rsChoix![Taux]
     
    retour = MsgBox("Supprimer cette donnée " & item & "?", vbOKCancel + vbQuestion, item)
    Select Case retour
    Case vbOK 'effectue la suppression
        rsChoix.Delete
            lstTexteFixe.RemoveItem iPosition
     Case vbCancel 'annule le choix de suppression
        End Select
    VB

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour vb,

    Un tout grand merci pour ton aide.

    J'ai suivi tes conseils et ça fonctionne

    Voici mon code, qu'en penses-tu ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub commandSupprimerUneRecette_Click(Index As Integer)
        Dim ASupprimer, Prochain As Variant
        Dim rsSuppression As Recordset
        Dim sql As String
        ASupprimer = listRecettes(0).ItemData(listRecettes(0).ListIndex)
        sql = "SELECT * FROM recette where [id] = " & ASupprimer
        Set rsSuppression = BDOuvrirTable(sql, False)
        RemplirListeRecettes 'j'appelle RemplirListeRecettes pour faire un refresh de la liste des recettes
     
    End Sub
    Merci encore à toi

    beegees

  4. #4
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut
    Bonjour Beegees,
    Comme je vois tu récupères bien ton élément à supprimer à partir du moment où tu affectes bien ton <ItemData....ect> à la variable ASupprimer et ton querry alors fonctionne.
    Il est à noter que tu peux à partir de cela établir des requêtes bien plus complexes en mettant des conditions plus pointues....A toi de voir dans tes prochains travaux.
    Bien à toi
    VB

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour VB,

    Merci pour ton complément de réponse.

    Très bonne fin de journée à toi.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression d'index qui ne fonctionne pas
    Par FamiDoo dans le forum Développement
    Réponses: 1
    Dernier message: 27/05/2008, 08h58
  2. [DW MX] lien courriel dans firefox qui ne fonctionne pas
    Par xataka dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 02/11/2007, 14h54
  3. fonction onClick= dans IE6 ok Firefox fonctionne pas
    Par rejy_l'Édimestre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/08/2007, 21h58
  4. padding dans un table ne fonctionne pas sur IE
    Par J0r_x dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 05/03/2007, 11h15
  5. Réponses: 3
    Dernier message: 26/01/2006, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo