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 :

VB6 : Base de Données / Doublon


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 1
    Par défaut VB6 : Base de Données / Doublon
    Lors de la mise à jour d'un enregistremnet d'une base de données, le gestionnaire d'erreurs teste les doublons (code ci-joint) : Comment pointer sur l'enregistrement doublon ?

    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
    22
    23
    24
    25
     
    Sub Enregistremnet
        On Error GoTo Erreur_Doublon
        DataEnvironment1.rsTcat.Update
        On Error GoTo 0                
        Exit Sub
     
    Erreur_Doublon:
        msg = "Cette monnaie est déjà enregistrée : Voulez-vous ajouter un exemplaire à l'enregistrement existant ?"
        R = MsgBox(msg, vbYesNo)
        If R = vbYes Then
            MsgBox "Mise à jour de l'enregistrement existant"     
            ' Rechercher et pointer l'enregistrement existant
     
     
            ' Mettre à jour l'enregistrement existant trouvé : un emplaire en plus
            DataEnvironment1.rsTcat.fields("Quantité").value = DataEnvironment1.rsTcat.fields("Quantité").value + 1          
            Resume Next
        Else
            ' Rectifier l'enregistrement en cours pour qu'il ne soit plus doublon
            msg = "Veuillez modifier un des dix champs obligatoires"
            MsgBox msg, , "Traitement des doublons"
            Exit Sub
        End If
    End Sub

  2. #2
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Ca m'étonnerait que tu puisses le faire directement en récupérant l'erreur sur un Update de ton RecordSet, je pense qu'il te faut gérer le code de la lecture desdits doublons afin de les identifier précisement ... Maintenant, je ne me sers pas de cette méthode, à voir si d'autres avis me contredisent
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Par défaut
    Bonsoir
    Essayes le code si-après. J'ai utilisé le recordset sous jacent d'un dataenvironment, mais c'est un recordset comme un autre...
    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 btnAjout_Click()
     
      On Error GoTo GestErreur
     
      Dim strValEnCours As String
      DataEnvironment2.rsCommand2.AddNew
     
    Exit Sub
    GestErreur:
      If Err.Number = -2147467259 Then  'valeur de l'erreur retournée pour un doublon
        strValEnCours = Text1  'valeur du doublon tel que saisie dans la textbox
        DataEnvironment2.rsCommand2.CancelUpdate
        DataEnvironment2.rsCommand2.MoveFirst
        DataEnvironment2.rsCommand2.Find "ID_Representant = '" & strValEnCours & "'"
        Resume Next
      End If
    exit sub
    End Sub
    Ainsi, l'enregistrement en cours est celui dont tu as saisi la valeur dans strValeur en cours..., donc l'original.

Discussions similaires

  1. VB6 --> base de donnée
    Par zuly99 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/12/2007, 21h06
  2. [VB6] Base de donnée
    Par Vesta dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2006, 15h20
  3. [VB6]Base de données
    Par nikko_54 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/03/2006, 16h57
  4. [VB6]Base de données sous Word2000
    Par Jo14 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2006, 13h46
  5. [VB6] Base de données Access distante et multi-utilisateurs
    Par VincentVB dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/12/2005, 14h36

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