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

Access Discussion :

Gérer les doublons (2ème partie) selon des critères [AC-2013]


Sujet :

Access

  1. #1
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut Gérer les doublons (2ème partie) selon des critères
    Bonjour membres du forum,
    Pourriez-vous m'indiquer à quelle ligne dois-je placer une procédure dans le code suivant afin d'éviter des doublons ?

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    Private Sub BtnEnregisterElevesComposants_Click()
    Dim stMsg As String
    Dim Itm As Variant
    Dim oDb As Database
    Dim oRS As Recordset
    Dim critere As String
    Dim eleve As String
    Dim ajouter As Boolean
     
    On Error GoTo OUMAR
     
    With Me.ListeELEVES_ANNEE_CLASSE
        '' contrôle saisie élèves
        If .ItemsSelected.Count = 0 Then Exit Sub
        'contrôle saisie Classe
        If IsNull(Me.lstClasse_Evaluation) Then
            MsgBox "Sélectionnez une classe.", vbCritical
            Me.lstClasse_Evaluation.SetFocus
            'Me.lstClasse_Evaluation.Dropdown  **** Pour dérouler le combobox à l'aide de la méthode DROPDOWN
            SendKeys "{F4}"      '*** Pour dérouler le combobox à l'aide de l'envoi de touche clavier (F4)
            Exit Sub
        End If
     
        Set oDb = CurrentDb
        Set oRS = oDb.OpenRecordset("Tbl_EVALUATION_NIVEAU_SCOLAIRE", dbOpenDynaset)
     
        For Each Itm In .ItemsSelected
            eleve = .Column(4, Itm)
        'oRS.FindFirst "[Nom_Prenoms_EleveComposant] LIKE '*" & Eleve & "*'"
        ''Cette ligne de code modifiée à cause des mots contenant l'apostrophe
        oRS.FindFirst "[Nom_Prenoms_EleveComposant] LIKE ""*" & eleve & "*"""
              ajouter = False
            If oRS.NoMatch Then
                ajouter = True  'Add the record to the table and
                stMsg = "L'élève " & eleve & " a été rajouté à la liste, avec succès !"
            Else
                Dim fld As Field
                stMsg = "L'élève " & eleve & " existe déjà dans la table !" & vbLf    '**********************
                stMsg = stMsg & "avec les données suivantes :" & vbCrLf
                For Each fld In oRS.Fields
                    stMsg = stMsg & fld.Name & " : " & fld.Value & vbCrLf
                Next fld
                stMsg = "Année scolaire en cours : " & Me.lstAnnee_Evaluation & vbCrLf & vbCrLf & stMsg & vbCrLf & "Voulez-vous le rajouter ?"
                If MsgBox(stMsg, vbQuestion + vbYesNo, "Ajouter un Elève") = vbNo Then
                    ajouter = False
                Else
                    ajouter = True  'Add the record to the table
                End If
            End If        'stMsg = stMsg & .Column(4, Itm) & vbCrLf
     
            If ajouter = True Then
                With oRS
                    .AddNew
                    ![NumEnregistreComposant] = f_NumAutoEnregistrementElevesComposants() + 1
                    ![Nom_Prenoms_EleveComposant] = Me.ListeELEVES_ANNEE_CLASSE.Column(4, Itm)
                    '![COMPOSITION] = Me.ListeComposition_Evaluation
                    ![NiveauCompositionFrancais] = Me.ListeNiveauEVALUATION
                    ![IdEcole] = Me.ID_ETABL_FREQ
                    ![AnneeScol] = Me.ANNEE_SCOL
                    ![NumInsCreleve] = Me.ListeELEVES_ANNEE_CLASSE.Column(2, Itm)
                    ![Mleeleve] = Me.ListeELEVES_ANNEE_CLASSE.Column(3, Itm)
                    .Update
                End With
                MsgBox "Année scolaire en cours : " & Me.lstAnnee_Evaluation & vbCrLf & stMsg, vbInformation + vbOKOnly, "Elève ajouté"
            End If
        Next Itm
     
    ' enlever la sélection
        .RowSource = .RowSource
     
    ' affichage des éléments saisis
        Me.Refresh
        Me.ListeELEVES_ANNEE_CLASSE.Requery
        Forms("Frm_EvaluationScolaireElevesECIND").Tbl_EVALUATION_NIVEAU_SCOLAIRE_SFrm.Requery
        ListeELEVES_ANNEE_CLASSE.RowSource = ListeELEVES_ANNEE_CLASSE.RowSource
        End With
    Forms!Frm_EvaluationScolaireElevesECIND!CtlTabEVALUATION_COMPOSITION.Pages(1).SetFocus
    DoCmd.GoToRecord , , acLast
    OUMAR_Exit:
        Exit Sub
     
    OUMAR:
        MsgBox err.Description, vbExclamation + vbOKOnly, err.Number
        Resume OUMAR_Exit
    End Sub
    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
     
     
    ''FONCTION POUR CONTROLER LES DOUBLONS DE L'ENREGISTREMENT DES ELEVES
    ''COMPOSANTS PAR COMPOSITION, Niveau de Composition ET ANNEE SCOLAIRE, ECOLE
    Public Function fEstEleveDejaComposant(ETABL As Long, NumInsc As Long, Mleelv As Long, Ansco As String, Composi As Long, NivCompo As String) As Boolean
    On Error GoTo MOROBABOUMAR
     
    Dim nbElement As Long
    nbElement = DCount("*", "Req_Tbl_EVALUATION_NIVEAU_SCOLAIRE", "IdEcole = " & ETABL & "and NumInsCreleve =" & NumInsc & "and MleEleve =" & Mleelv & "and AnneeScol ='" & Ansco & "'and COMPOSITION =" & Composi & "and NiveauCompositionFrancais ='" & NivCompo & "'")
    fEstEleveDejaComposant = (nbElement <> 0)
     
    Exit Function
    MOROBABOUMAR:
        MsgBox "Erreur n° " & err.Number & vbCrLf & err.Description, vbCritical + vbOKOnly, "Une erreur est survenue"
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub MleEleve_BeforeUpdate(Cancel As Integer)
    If fEstEleveDejaComposant(Me.Identif_EtablisFR, _
    Me.NumInsCreleve, Me.Mleeleve, Me.AnneeScol, _
    Me.CompositionAra, Me.NiveauCompositionFrancais) = True Then
    MsgBox "ATTENTION !!" & vbCrLf & _
    "Cet(Cette) élève est déjà " & vbCrLf & "enregistré(e) pour la" & _
    Me.CompositionAra.Column(1) & "du " & _
    Me.NiveauCompositionFrancais.Column(1), _
    vbCritical + vbOKOnly, "Risque de Doublons"
       Undo
       End If
    End Sub
    Nom : DOUBLONS 1.jpg
Affichages : 275
Taille : 436,1 Ko

    Cordialement.

  2. #2
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Bonsoir,
    Je viens de tester 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     Sub ControleDoublonComposantFR(Cancel As Integer)
        Dim strCritere As String
     
        ' Construction du critère sur 6 champs (adapter les noms de champs et contrôles)
        strCritere = "[IdEcole] = " & Me.IdEcole & " AND " & _
                     "[AnneeScol] = '" & Me.AnneeScol & "' AND " & _
                     "[NiveauCompositionFrancais] = " & Me.NiveauCompositionFrancais & " AND " & _
                     "[NumInsCreleve] = " & Me.NumInsCreleve & " AND " & _
                     "[MleEleve] = " & Me.Mleeleve & " AND " & _
                     "[CompositionAra] = " & Me.CompositionAra & ""
     
        ' Si l'enregistrement n'est pas nouveau, on exclut l'ID actuel de la recherche
        If Not Me.NewRecord Then
            strCritere = strCritere & " AND [NumEnregistreComposant] <> " & Me.NumEnregistreComposant
        End If
     
        ' Vérification de l'existence d'un doublon
        If DCount("*", "Req_Tbl_EVALUATION_NIVEAU_SCOLAIRE", strCritere) > 0 Then
            MsgBox "Un enregistrement avec ces 6 critères existe déjà.", vbExclamation, "Doublon détecté"
        Cancel = True ' Annule la sauvegarde
        Undo
        End If
    End Sub
    mais ne marche pas. Pièce Jointe https://www.dropbox.com/scl/fi/5dunf...=3bs6f3ou&dl=0

  3. #3
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 619
    Par défaut
    Hello,

    juste une suggestion : si au lieu de vous em***béter la vie vous laissiez faire Access ?
    Dans la table, en mode c réatuion, il est possible de créer un index composé de plusieurs champs, si en plus vous lui mettez la propriétés "Unique" ça devrait éviter les doublons.

    NB : votre table ne doit pas comporter de doublons pour créer cet index

  4. #4
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 350
    Par défaut
    Salut,
    Sauf erreur, ce que vous désignez comme doublons, n'en sont pas.
    Ce sont 3 enregistrements distincts.

    Citation Envoyé par morobaboumar Voir le message
    Bonjour membres du forum,
    Pourriez vous m'indiquer à quelle ligne dois je placer une procedure dans le code suivant afin d'éviter des doublons ?

    Cordialement.
    Images attachées Images attachées  

  5. #5
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par Nain porte koi Voir le message
    Hello,

    juste une suggestion : si au lieu de vous em***béter la vie vous laissiez faire Access ?
    Dans la table, en mode c réatuion, il est possible de créer un index composé de plusieurs champs, si en plus vous lui mettez la propriétés "Unique" ça devrait éviter les doublons.

    NB : votre table ne doit pas comporter de doublons pour créer cet index
    Bonsoir membres du forum,
    Je trouve que vous ne me comprenez pas.
    Mon application doit gérer trois compsitions (Évaluations) par élève chaque année scolaire. Certains parmi eux fréquentent notre
    établissement durant plusieurs années. D'où la gestion personnalisée des doublons est très importante dans ce contexte.
    Merci de bien vouloir me faire des suggestions pratiques.
    Cordialement.

  6. #6
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 619
    Par défaut
    Citation Envoyé par morobaboumar Voir le message
    Je trouve que vous ne me comprenez pas.
    Effectivement, vous êtes assez incompréhensible

    Citation Envoyé par morobaboumar Voir le message
    Merci de bien vouloir me faire des suggestions pratiques.
    Encore faudrait il comprendre ce que vous voulez et la façon dont vous gérer vos données, or là moi pas comprendre !

    Avez vous au moins essayé ce que j'ai proposé ? Certainement pas !

  7. #7
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par Nain porte koi Voir le message
    Avez vous au moins essayé ce que j'ai proposé ? Certainement pas !
    Votre suggestion, je la connais ! Cela n'arrange pas mon affaire ?
    Je cherche à savoir si le dernier code que je propose a une anomalie ?
    Il serait mieux d'arrêter les discours pour aller au but recherché.
    Merci de bien vouloir me comprendre.

  8. #8
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Sauf erreur, ce que vous désignez comme doublons, n'en sont pas.
    Ce sont 3 enregistrements distincts.
    Bonsoir hyperion13,
    Heureux d'être avec vous !
    Désolé ! Je viens d'apercevoir votre intervention.
    Je me dis doublons, ici car le même composant est enregistré à 3 reprises.
    Or, ce que je devrais éviter.
    Explication: Durant une année scolaire, chaque élève
    composant de chaque classe, doit être enregistré une seule fois
    .
    Cordialement.

  9. #9
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 619
    Par défaut
    Citation Envoyé par morobaboumar Voir le message
    Je cherche à savoir si le dernier code que je propose a une anomalie ?
    Alors la réponse est simple : il fait ce qu'il doit faire ? Si oui il n'a pas d'anomalie, si non il y a une anomalie !
    Facile

  10. #10
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 350
    Par défaut
    Salut
    Je viens de faire un essai, il n'y a pas de doublons en créant la liste des élèves.
    Mais quand la MsgBox vous indique que l'élève est déjà inscrit, vous cliquez bien sur non ?
    Images attachées Images attachées     

  11. #11
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Je viens de faire un essai, il n'y a pas de doublons en créant la liste des élèves.
    Mais quand la MsgBox vous indique que l'élève est déjà inscrit, vous cliquez bien sur non ?
    Bonjour hyperion13,
    bonjour Nain porte koi,
    Oui la MsgBox me previent
    MsgBox vous indique que l'élève est déjà inscrit !
    Nom : DOUBLONS 2.jpg
Affichages : 207
Taille : 346,6 Ko

    Parfois, après la sélection de plusieurs élèves à la fois afin de les enregistrer dans la table "Tbl_EVALUATION_NIVEAU_SCOLAIRE"plus vite, je me retrouve avec des doublons.

    Nom : DOUBLONS 3.jpg
Affichages : 203
Taille : 334,5 Ko

    Voila pourquoi je recherche une méthode qui me permet de remedier à celà .
    Cordialement.

  12. #12
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 255
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par moroba
    Mon application doit gérer trois compsitions (Évaluations) par élève chaque année scolaire.
    Je n’utilise pas ACCESS, mais tout SGBD SQL accepte le code suivant, dans lequel la clé primaire de la table Composition est composée des 3 colonnes eleveId, anneeScolaire, compositionId. Pour chaque élève, la colonne eleveId prend sa valeur dans la colonne eleveId de la table Eleve :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    CREATE TABLE Eleve(
       eleveId INT,
       eleveNom VARCHAR(50) NOT NULL,
       elevePrenom VARCHAR(50) NOT NULL,
       PRIMARY KEY(eleveId)
    );
    CREATE TABLE Composition(
       eleveId INT,
       anneeScolaire SMALLINT,
       compositionId SMALLINT CHECK (compositionId < 4),
       note SMALLINT NOT NULL,
       PRIMARY KEY(eleveId, anneeScolaire, compositionId),
       FOREIGN KEY(eleveId) REFERENCES Eleve(eleveId)
    );

    Quelques lignes dans les tables :

    Code SQL : 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
     
    insert into Eleve (eleveId, eleveNom, elevePrenom)
        values (1, 'Naudin', 'Fernand'),
               (2, 'Volfoni', 'Raoul'),
               (3, 'Volfoni', 'Paul')    
    ;
     
    insert into Composition (eleveId, anneeScolaire, compositionId, note)
        values (1, 2023, 1, 14),
               (1, 2023, 2, 12),
               (1, 2023, 3, 12),  
               (1, 2024, 1, 17),
               (1, 2024, 2, 15),
               (1, 2024, 3, 15),                    
               (2, 2024, 1, 14),
               (2, 2024, 2, 15),
               (2, 2024, 3, 13)                    
    ;

  13. #13
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Je n’utilise pas ACCESS, mais tout SGBD SQL accepte le code suivant, dans lequel la clé primaire de la table Composition est composée des 3 colonnes eleveId, anneeScolaire, compositionId. Pour chaque élève, la colonne eleveId prend sa valeur dans la colonne eleveId de la table Eleve 
    Bonjour membres du forum,
    bonjour fsmrel, très heureux de rencontrer en de la grande famille devloppez.net.
    Merci pour votre intervention. J'espère pouvoir l'exploiter à bon escient.
    Merci beaucoup.

  14. #14
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Salut fsmrel,
    Je viens de faire un essai de votre suggestion. Voici ce que je constate:

    Nom : Capture SQL CREATE Table 1.jpg
Affichages : 285
Taille : 87,4 Ko

    Que dois je faire ?

  15. #15
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par morobaboumar Voir le message
    Salut fsmrel,
    Je viens de faire un essai de votre suggestion. Voici ce que je constate:
    Nom : Capture SQL CREATE Table 1.jpg
Affichages : 285
Taille : 87,4 Ko
    Que dois je faire ?
    Autant pour moi, je viens de comprendre.

    Nom : Capture SQL CREATE Table 2.jpg
Affichages : 183
Taille : 75,0 Ko

    Je continue le test.

    Nom : Capture SQL CREATE Table 3.jpg
Affichages : 178
Taille : 65,7 Ko

    Encore un problème.
    Comment faut il gérer vos codes sql ?

  16. #16
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 255
    Billets dans le blog
    16
    Par défaut
    Pour ma part, j’ai soumis le code à SQL Server qui l’accepte sans problème.
    Avec son « Y a d’ l’erreur » Access est pour le moins laconique

    Voir https://www.bing.com/copilotsearch?q...es&form=CSSANS
    Où Access propose l’exemple suivant, dans lequel CHECK est précédé d’une virgule :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE Orders (
        OrderID INT PRIMARY KEY,
        CustomerID INT NOT NULL,
        OrderDate DATE NOT NULL,
        TotalAmount DECIMAL(10, 2),
        CHECK (TotalAmount >= 0),  -- Ensure non-negative orders
        FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
    );

    Voir donc ce qu’il se passe si on insère une virgule entre SMALLINT et CHECK :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     CREATE TABLE Composition(
    ... 
      compositionId SMALLINT,  
      CHECK (compositionId < 4),
    ...
    );

  17. #17
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Nom : Capture SQL CREATE Table 4.jpg
Affichages : 170
Taille : 145,3 Ko

  18. #18
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 255
    Billets dans le blog
    16
    Par défaut
    Problème de parenthèse gauche absente et ";" en trop :

    Remplacer « CHECK ;compositionId < 4), »
    par
    « CHECK (compositionId < 4), »

  19. #19
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Problème de parenthèse gauche absente et ";" en trop :

    Remplacer « CHECK ;compositionId < 4), »
    par
    « CHECK (compositionId < 4), »
    Bonjour fsmrel,
    Je reçois toujours le même message d'erreur:
    erreur de syntaxe dans la définition de champ.
    .
    Je vous suggère d'ouvrir une nouvelle discussion concernant le SQL"Comprendre le SQL". Afin que je puisse comprendre cette méthode car très interessante. https://www.developpez.net/forums/ne...newthread&f=45
    Merci beaucoup.
    Ici, je vous suggère de continuer avec le thème de notre discussion"Gérer les Doublons 2e partie selon des critères".
    Cordialement.

  20. #20
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 228
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Salut,
    Sauf erreur, ce que vous désignez comme doublons, n'en sont pas.
    Ce sont 3 enregistrements distincts.
    Bonjour membres du forum,
    Je ferme cette discussion ici.

    Nom : DOUBLONS 4.jpg
Affichages : 144
Taille : 287,8 Ko

    Merci beaucoup à tout le monde.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Eviter les doublons dans le fichier des contacts
    Par sedcacvgdms2016 dans le forum Access
    Réponses: 1
    Dernier message: 23/02/2016, 12h30
  2. [XSLT 2.0] Supprimer les doublons en tenant compte des descendants
    Par Myrkiriad dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 09/04/2014, 10h10
  3. effacer les doublons tout en copiant des cellules
    Par dalo02 dans le forum Excel
    Réponses: 3
    Dernier message: 28/02/2010, 20h56
  4. Supprimer les doublons sans tri préalable des données
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 20/12/2007, 08h16
  5. Réponses: 2
    Dernier message: 12/05/2006, 08h35

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