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 :

Suppression d'un enregistrement d'une base Access sous vb6


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 83
    Points : 40
    Points
    40
    Par défaut Suppression d'un enregistrement d'une base Access sous vb6
    bonjour à tous les présents et bonnes vacances aux absents.
    ma question aujourd'hui est:
    comment supprimer un enregistrement d'une base access en vb6 en cliquant sur une colonne datagrid.
    j'ai utilisé le code suivant.
    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
    Private Sub Command2_Click()
    On Error Resume Next
    rst.MoveFirst
            Do While Not rst.EOF
            Trim(rst!nom) = Trim(T1.Text)
                        h = MsgBox("voulez vous vraiment supprimer cet enregistrement", vbYesNo, Suppression)
                        If h = vbYes Then
                        rs.Delete
                        MsgBox ("suppression effectuée avec succes"), vbInformation, "Suppression"
                        vider
                        Exit Sub
                        Else
                        Exit Sub
                        End If
                End If
                rst.MoveNext
             Loop
    End Sub
    mais la suppression se fait quand je remplis les champs manuellement.
    salutations.

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                        If h = vbYes Then
                        'rs.Delete
                         rst.Delete ' devrait mieux fonctionné
                        MsgBox ("suppression effectuée avec succes"), vbInformation, "Suppression"

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 83
    Points : 40
    Points
    40
    Par défaut suppression enregistrement base sous vb6
    bonjour,
    j'ai essayé plusieurs fois avec la modification donnée par PROGELECT mais en vain.
    je reexplique mon problème .
    j'ai une base données sous access que j'y accède par des boutons ajouter,modifier,supprimer,rechercher par nom,par date,globale.
    quand je remplis les champs nom,prénom manuellement ou via rechercher par nom, la suppression se fait avec succès mais quand les champs sont remplis via datagrid la suppression ne se fait pas malgres le message suppression effectuée.
    ci_joint le 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
    15
    16
    17
    18
    Private Sub Command2_Click()
    On Error Resume Next
    rst.MoveFirst
            Do While Not rst.EOF
                If Trim(rst!nom) = Trim(T1.Text)  Then
                 h = MsgBox("voulez vous vraiment supprimer cet enregistrement", vbYesNo, Suppression)
                        If h = vbYes Then
                         rst.Delete
                        MsgBox ("suppression effectuée avec succes"), vbInformation, "Suppression"
                        vider
                        Exit Sub
                        Else
                        Exit Sub
                        End If
                End If
                rst.MoveNext
             Loop
    End Sub
    merci bcp.

  4. #4
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Ta boucle semble bonne, elle devrait fonctionner, la seule chose que l'on ne peu vérifier et ton appel à la Sub vider, que ce passe t-il dans celle-ci ?

  5. #5
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    comment supprimer un enregistrement d'une base access en vb6 en cliquant sur une colonne datagrid.
    En cliquant sur la colonne ? Déjà en cliquant sur une ligne ca me parait louche.

    Par contre, on pourrait, à l'aide d'un bouton , supprimer la ligne sélectionnée dans le datagrid, çà me parait plus convaincant.

    Un seul rst.Delete comme code dans le bouton suffit alors, le datagrid et le recordset étant lié, c'est la ligne selectionnée qui est supprimée.

  6. #6
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 83
    Points : 40
    Points
    40
    Par défaut suppression enregistrement base sous vb6
    bonsoir,
    en réponse à Mr PROGELECT l'appel de la sub vider c'est remettre à blanc les champs pour mieux comprendre je joints une image d'objet de la table.
    en cliquant sur une ligne du datagrid les champs se remplisent du contenu de la ligne du datagrid mais je clique sur supprimer rst.delete ne s'exécute pas.
    il y a qq chose qui ne va pas.
    salutations
    Fichiers attachés Fichiers attachés

  7. #7
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 83
    Points : 40
    Points
    40
    Par défaut suppression enregistrement base sous vb6
    bonjour,
    j'ai expose mon problème au forum depuis le 31/07/2008 ,je n'ai pas eu de réponse malgré le nombre élevé d'affichage de ma question.peut être que je n'ai pas bien explique mon cas.
    je recommence
    j'ai une base de données access constituée de plusieurs tables.
    j'utilise des boutons (ajouter,supprimer,modifier,rechercher,etc.).
    je visualise la table dont le recordset rs via une datagrid,quand je clique sur une colonne du datagrid les champs du rs se remplissent,alors j'effectue des modifs que je veux et je clique sur modifier,alors la modification se passe et quand je consulte base je trouve l'ancien enregistrement et un nouveau avec les modifs.
    en ce qui concerne la suppression rien ne se passe.
    j'espère que je serais clair.

    ci-joint code suppression.

    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
     
    Private Sub supprimer_Click()
    On Error Resume Next
    rst.MoveFirst
    Do While Not rst.EOF
    Trim(rst!nom) = Trim(T1.Text)
    h = MsgBox("voulez vous vraiment supprimer cet enregistrement", vbYesNo, Suppression)
    If h = vbYes Then
    rs.Delete
    rst.Delete
    MsgBox ("suppression effectuée avec succes"), vbInformation, "Suppression"
    vider
    Exit Sub
    Else
    Exit Sub
    End If
    rst.MoveNext
    Loop
    End Sub
    code modification.

    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
     
    Private Sub modifier_Click()
    On Error Resume Next
    rst.MoveFirst
    Do While Not rst.EOF
    If rst!nom = T1.Text Then
    rst.Update
    Montrer
    rst.Update
    rs.Update
    Mnt
    rs.Update
    MsgBox ("Modification effectuée avec succes"), vbInformation, "Modifier"
    Exit Sub
    End If
    rst.MoveNext
    Loop
    MsgBox ("impossible de modifier un enregistrement inexistant"), vbCritical, "Attention"
    End Sub
    salutations.

  8. #8
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Pourquoi dans tes 2 codes y a t'il "rs" et "rst" qui font la meme chose a chaque fois ?
    Dans ton explication tu parles de rs puis dans ton code on voit par exemple rst.movefirst, tout ca est assez embrouille pour moi.

  9. #9
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Points : 71
    Points
    71
    Par défaut
    je ne vois pas l'utilité d'une boucle (parcourir la table pour rechercher un enregistrement) du moment où c'est l'utilisateur qui definit l'enregistrement courant (à supprimer ou modifier). je pense que c'est inutile.

    Moi je te conseille de faire ceci:

    Tout d'abord lie tes champs de texte et ton datagrid à la meme source de données.

    ensuite tu n'a quà faire un source.delete ou source.update pour agir sur l'enregistrement courant.

  10. #10
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 83
    Points : 40
    Points
    40
    Par défaut suppression enregistrement base sous vb6
    bonsoir,
    merci pour les réponses.
    en ce qui concerne rs et rst .j'utilise 2 tables une table historique et une normale rst = historique et rs=normale.quant je visualise j'utilise la table dont le recordset est rs.

    pour la réponse dr Mr NGANZY je n'ai jamais utilise source delete ,si c'est possible m'envoyer des exemples pour ça.
    salutations

  11. #11
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Points : 71
    Points
    71
    Par défaut
    j'ai pas été clair.

    par source je fais allusion à ton rst ou rs. ou ControleData.Recordset

Discussions similaires

  1. Suppression et modification de données dans une base Access depuis VB6
    Par sousousoumia dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/09/2012, 00h42
  2. Enregistrement d'une base Access
    Par Taylorised dans le forum Modélisation
    Réponses: 3
    Dernier message: 27/06/2012, 13h19
  3. Ajouter un enregistrement dans une base Access
    Par tmonn dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/05/2012, 13h49
  4. Réponses: 5
    Dernier message: 08/07/2010, 08h07
  5. comment réparer et compacter une base access sous vb6
    Par rallain dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/11/2006, 10h42

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