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

VBA Access Discussion :

Vérifier si numéro et date existe dans table liée


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    retraite
    Inscrit en
    Mars 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraite

    Informations forums :
    Inscription : Mars 2018
    Messages : 63
    Points : 33
    Points
    33
    Par défaut Vérifier si numéro et date existe dans table liée
    Bonjour à tous,
    Je vous recontacte car j'ai un autre souci avec le code de Hyperion13 qui fonctionne très bien dans certains formulaires.
    Dans les fichier essai que je vais joindre j'ai ajouté:
    un formulaire: F_inscrip_acheteurs
    une requête pour la liste de choix acheteurs
    une table liée: Acheteurs_C
    je voudrais que le code vba du formulaire F_inscrpt_acheteur vérifie que le champ NUMEROA et le champ DT ne soient déjà inscris dans la table Acheteurs_C.

    je me retrouve avec un débogage ligne 6
    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
     
    Private Sub benregparticipant_Click()
     
        DoCmd.SetWarnings False
        ' verrifie si l'acheteur est d?j? inscrit
    If DCount("*", "Acheteurs_C", "NUMEROA = '" & Me.NUMEROA & "' AND DT = '" & Me.DT & "'") = 0 Then
     
        Me.NEXPA.Value = Format(Nz(DMax("[NEXPA]", "[Acheteurs_C]"), 0) + 1)
     
        'inscrption dans la table acheteurs
        CurrentDb.Execute "INSERT INTO Acheteurs_C (NEXPA, NUMEROA, CIVILITEA, NOMA, PRENOMA, ADRESSEA, CPA, VILLEA, REGIONA, EMAIL, TELEPHONEA, CLUBA, SOUCHEA, QUALITEA, DT, NPA)" _
        & " In 'C:\Users\jacques\Documents\ESSAI\FICHIER_BASE.accdb'" _
        & " VALUES (" & Me.NEXPA & ", '" & Me.NUMEROA & "', '" & Me.CIVILITEA & "', '" & Me.NOMA & "', '" & Me.PRENOMA & "', '" & Me.ADRESSEA & "', '" & Me.CPA & "', '" & Me.VILLEA & "', '" & Me.REGIONA & "', '" & Me.EMAIL & "', '" & Me.TELEPHONEA & "', '" & Me.CLUBA & "', '" & Me.SOUCHEA & "', '" & Me.QUALITEA & "', '" & Me.DT & "', '" & Me.NPA & "')", dbFailOnError
     
        rep = MsgBox("L'ACHETEUR EST ENREGISTRE", vbOKOnly, "CONFIRMATION")
    DoCmd.SetWarnings True
    Else
        MsgBox "L'ACHETEUR EST DEJA ENREGISTRE DANS LA TABLE ACHETEURS !", vbOKOnly, "AFFIRMATION"
     End If
     
    End Sub
    j'espère que je me suis bien expliqué.
    NUMEROA est numérique et DT un champ date
    je ne sais pas si cela est possible.
    lorsque je mets d'autre champ, cela fonctionne.
    Désolé de faire encore appel a vous.
    Merci
    cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Pour info
    Lorsque la variable est :
    - numérique, pas de cote
    - string, simple cote
    - date, octotrophe

    De vous à moi, quel intérêt de tester par du code vba la présence d'une ou +sieurs valeurs, alors que vous avez créé une combobox ?
    D'ailleurs, un num + date ne vous permettra jamais d'identifier clairement l'identité d'un acheteur. Où alors un truc m'échappe.

    EDIT 19:28 Comment procédez-vous pour incrémenter NUMEROA ? Saisie manuelle ou autre ?
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    retraite
    Inscrit en
    Mars 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraite

    Informations forums :
    Inscription : Mars 2018
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Bonjour hyperion13,
    Merci de me répondre
    j'ai un formulaire (F_inscrip_acheteurs1) qui enregistre les acheteurs avec un numéro unique (NUMEROA) dans une base_N_acheteurs.
    J'ai un autre formulaire (F_inscrip_acheteurs) avec le combobox qui me permet de récupérer l'acheteur dans la base_N_acheteurs et l'enregistrer dans la table acheteur_C .
    le code vba me permet de controler que cet acheteur( par NUMEROA) et avec la date (DT) que cette personne ne sera inscrit qu'une seule fois à chaque date du jour.
    exemple:
    1 du 5/12/1019 une seule fois
    par contre le lendemain, je dois pouvoir l'inscrire:
    1 du 6/12/2019
    cette table acheteur_C me sert pour des calcul et des synthèses pour ma base de donnée.
    je n'ai pas bien compris ta réponse:
    pour string et numero, je ne connais pas grand chose en vba.
    je cherche sur le forum pour trouver les code qui m'intéresse et j'essaie de les adapter.
    merci à toi de m'aider.
    Cordialement

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Citation Envoyé par jaquot14 Voir le message
    je n'ai pas bien compris ta réponse:
    pour string et numero, je ne connais pas grand chose en vba.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        CurrentDb.Execute "INSERT INTO UneTable (ChampNum, ChampTxt, ChampDate)" _
        & " In 'C:\Users\....\FICHIER_BASE.accdb'" _
        & " VALUES (" & Me.VariableNum & ", '" & Me.VariableTxt & "', #" & Me.VariableDate & "#)", dbFailOnError
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Puisque l'acheteur ne peut-être enregistré qu'une seule fois par jour, il faut vérifier que la valeur DT soit égale une seule fois à la date système de votre machine (L4) et donc insérer la date système (L9)
    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
    Private Sub benregparticipant_Click()
    DoCmd.SetWarnings False
    ' verrifie si l'acheteur est déjà inscrit
    If DCount("*", "Acheteurs_C", "NUMEROA = " & Me.NUMEROA & " AND DT = # " & Format(Date, "mm/dd/yyyy") & "#") = 0 Then
        Me.NEXPA.Value = Format(Nz(DMax("[NEXPA]", "[Acheteurs_C]"), 0) + 1)     
        'inscrption dans la table acheteurs
        CurrentDb.Execute "INSERT INTO Acheteurs_C (NEXPA, NUMEROA, CIVILITEA, NOMA, PRENOMA, ADRESSEA, CPA, VILLEA, REGIONA, EMAIL, TELEPHONEA, CLUBA, SOUCHEA, QUALITEA, DT, NPA)" _
        & " In 'C:\Users\jacques\Documents\ESSAI\FICHIER_BASE.accdb'" _
        & " VALUES (" & Me.NEXPA & ", '" & Me.NUMEROA & "', '" & Me.CIVILITEA & "', '" & Me.NOMA & "', '" & Me.PRENOMA & "', '" & Me.ADRESSEA & "', '" & Me.CPA & "', '" & Me.VILLEA & "', '" & Me.REGIONA & "', '" & Me.EMAIL & "', '" & Me.TELEPHONEA & "', '" & Me.CLUBA & "', '" & Me.SOUCHEA & "', '" & Me.QUALITEA & "', '" & Format(Date, "mm/dd/yyyy") & "', '" & Me.NPA & "')", dbFailOnError
        MsgBox "L'ACHETEUR EST ENREGISTRE", vbOKOnly, "CONFIRMATION"
    DoCmd.SetWarnings True
    Else
        MsgBox "L'ACHETEUR EST DEJA ENREGISTRE DANS LA TABLE ACHETEURS !", vbOKOnly, "AFFIRMATION"
    End If
    End Sub
    EDIT 14:01 pensez à clôturer ce billet.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    retraite
    Inscrit en
    Mars 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraite

    Informations forums :
    Inscription : Mars 2018
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Bonjour hypérion13,
    Merci pour vos réponse, je vais tester votre code qui me semble bien par rapport à ce que j'avais fait.
    Cordialement

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    retraite
    Inscrit en
    Mars 2018
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraite

    Informations forums :
    Inscription : Mars 2018
    Messages : 63
    Points : 33
    Points
    33
    Par défaut
    Bonjour,
    Merci pour votre code hyperion13, j'ai effectué des testes en réseau et cela fonctionne parfaitement bien.
    c'est supère.
    cordialement

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

Discussions similaires

  1. Vérifier si une date existe dans un intervale de deux dates
    Par kedas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/08/2019, 16h34
  2. Ajout date manquante dans table
    Par Niazov dans le forum SAS Base
    Réponses: 3
    Dernier message: 01/10/2008, 15h38
  3. Tester si date existe dans un interval
    Par andreditdd dans le forum SQL
    Réponses: 3
    Dernier message: 10/07/2008, 18h38
  4. [VBA-Excel] Vérifier si on un onglet existe dans un classeur
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2007, 15h21
  5. Réponses: 3
    Dernier message: 21/01/2007, 10h40

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