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 :

Message si l'élément existe dans la table


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Par défaut Message si l'élément existe dans la table
    Bonjour à tout le monde;
    j'utilise ce code pour insérer dans la table,
    le champs NUM_COMPTE est une clé de la table.
    je veux retourner un message en cas de saisie d'un élément qui existe déja

    *****************************

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Public Sub AddNewCompte()
     
      Dim cnn1 As ADODB.Connection
      Dim rstCompte As ADODB.Recordset
      Dim strCnn As String
      Dim strCodeCompte As String
      Dim strLibelleCompte As String
      Dim booRecordAdded As Boolean
     
      ' Open a connection.
      Set cnn1 = New ADODB.Connection
      strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Compta_v4.mdb;Persist Security Info=False"
      cnn1.Open strCnn
     
      ' Open COMPTE table.
      Set rstCompte = New ADODB.Recordset
      rstCompte.CursorType = adOpenKeyset
      rstCompte.LockType = adLockOptimistic
      rstCompte.Open "COMPTE", cnn1, , , adCmdTable
     
      ' Get data from the user.
      strCodeCompte = Trim(TxtCodeCompte)
      strLibelleCompte = Trim(txtIntitule)
     
      ' Proceed only if the user actually entered something
      ' for both the CodeCompte and LibelleCompte.
      If (strCodeCompte <> "") Then
        rstCompte.AddNew
        rstCompte!NUM_COMPTE = strCodeCompte
        rstCompte!LIBELLE = strLibelleCompte
        rstCompte.Update
        booRecordAdded = True
     
        ' Show the newly added data.
       MsgBox "New record: " & rstCompte!NUM_COMPTE & " " & _
          rstCompte!LIBELLE & " "
     
      Else
        MsgBox "SVP entez le numéro du compte, " & _
          " et l'intitulé du compte"
      End If
     
      ' Delete the new record because this is a demonstration.
      'cnn1.Execute "DELETE FROM employee WHERE emp_id = '" & strCodeCompte & "'"
     
      rstCompte.Close
      cnn1.Close
     
    End Sub

    **************************

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Sujet largement abordé, on recommence ...........
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Set rstCompte = New ADODB.Recordset
      rstCompte.CursorType = adOpenKeyset
      rstCompte.LockType = adLockOptimistic
      ' Get data from the user.
      strCodeCompte = Trim(TxtCodeCompte)
      strLibelleCompte = Trim(txtIntitule)
     
      If strCodeCompte = "" Or strLibelleCompte = "" Then
       MsgBox "SVP entez le numéro du compte, " & _
          " et l'intitulé du compte"
       Exit Sub
      End If
      If strCodeCompte <> "" And strLibelleCompte <> "" Then
       ' Open COMPTE table.
       Set rstCompte = New ADODB.Recordset
       rstCompte.CursorType = adOpenKeyset
       rstCompte.LockType = adLockOptimistic
       'ouverture de la table avec essais d'au moins une entrée deja existante dans la table
       rstCompte.Open "COMPTE Where NUM_COMPTE =" & strCodeCompte & " Or LIBELLE = '" & strLibelleCompte & "'", cnn1, , , adCmdTable
       If Not rstCompte.EOF Then
        ' une ligne d'enregistrement correspond a au moins un des 2 champs
        Dim Msg$
        If rstCompte!NUM_COMPTE = strCodeCompte Then Msg$ = strCodeCompte
        If rstCompte!LIBELLE = strLibelleCompte Then
         If Msg$ = "" Then
          Msg$ = strLibelleCompte
          Else
          Msg$ = Msg$ & "et " & strLibelleCompte
         End If
        End If
        rstCompte.Close
        cnn1.Close
        Msg$ = Msg$ & vbCrLf & "existe deja"
        MsgBox Msg$, vbCritical, "Doublon"
        Exit Sub
       End If
      End If
     
    'd'ici on est sûr que pas de doublon, pas de prposition vide
      rstCompte.Open "COMPTE", cnn1, , , adCmdTable
      rstCompte.AddNew
      rstCompte!NUM_COMPTE = strCodeCompte
      rstCompte!LIBELLE = strLibelleCompte
      rstCompte.Update
      booRecordAdded = True
      ' Show the newly added data.
      MsgBox "New record: " & rstCompte!NUM_COMPTE & " " & _
         rstCompte!LIBELLE & " "
      rstCompte.Close
      cnn1.Close
    Le principe, on essai d'ouvrire la table avec le(s) element(s) que l'on desire ajouter, si le resultat de la demande ne renvoie rien, on réouvre sans critere et on ajoute, sinon on ferme la table (eventuellement le connection aussi) et on indique a l'utilisateur le risque de doublon.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Savoir si un élément existe dans un tableau
    Par peuf23 dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2006, 12h09
  2. Controle existence dans une table
    Par Daniel MOREAU dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 13h59
  3. Réponses: 2
    Dernier message: 06/05/2006, 22h50
  4. Réponses: 7
    Dernier message: 05/05/2006, 19h55

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