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 :

DMax et DLookup


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2015
    Messages : 5
    Par défaut DMax et DLookup
    Bonjour,

    je narrive pas a faire fonctioner ceci correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Numéro_du_projet_Click()
    If Len(Me.Numéro_du_projet & "") < 1 Then
    ElseIf Me.Localité.Column(2) = "" Or Me.Type.Column(2) = "" Then
    MsgBox "Veuillez renseigner la localité et le type de projet."
    Else
    tSeq = Nz(DMax("Séquence", "Projets", "Localité=" & Me.Localité & " and " & "Type=" & Me.Type))
    hiCount = Nz(DLookup("Compteur", "Projets", "Séquence=" & tSeq), 0) + 1
    Me.Numéro_du_projet = Me.Localité.Column(2) & "-" & Me.Type.Column(2) & "-" & Format(Compteur, "000")
    End If
    End Sub
    Projets.zip

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    Il faudrait indiquer où est l'erreur sur les 8 lignes de code parce qu'on ne peut deviner. Et quel est le message ? Et qu'est-ce qu'on veut faire?
    Ceci dit, j'imagine que Localité et Type sont des textes. Donc quand on les utilise en tant que variable, il faut les mettre "" ou ' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tSeq = Nz(DMax("Séquence", "Projets", "Localité=""" & Me.Localité & """ and """ & "Type=""" & Me.Type & """"))

    Cordialement,

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2015
    Messages : 5
    Par défaut
    je nai pas de retour derreur mais simplement il ne se passe rien...

    le code devrai generer un numero de projet unique en tenon compte de la localité et le type de projet.

    example pour le premier projet a paris du type construction PA-CO-001

    localité=Paris=PA
    type=Construction=CO

    la fonction Len devrai juste verifier si le projet a deja un numero de projet ou pas pour ne pas ecraser ou modificier le numero.

    If Len(Me.Numéro_du_projet & "") < 1 Then

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Essayons de commenter ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Numéro_du_projet_Click()
    If Len(Me.Numéro_du_projet & "") < 1 Then                                               'Si la longueur du numéro de projet est inférieure à 1 (donc c'est vide) donc c'est dans cette partie qu'on devrait avoir l'ajout du nouveau numéro de projet ? NON ?!?
         ElseIf Me.Localité.Column(2) = "" Or Me.Type.Column(2) = "" Then            'J'ai pas compris l'objet du test ici ??
             MsgBox "Veuillez renseigner la localité et le type de projet."
    Else                                                                                                    'Là il y a un numéro de projet ? Tu veux le changer ?
         tSeq = Nz(DMax("Séquence", "Projets", "Localité=" & Me.Localité & " and " & "Type=" & Me.Type))
         hiCount = Nz(DLookup("Compteur", "Projets", "Séquence=" & tSeq), 0) + 1
         Me.Numéro_du_projet = Me.Localité.Column(2) & "-" & Me.Type.Column(2) & "-" & Format(Compteur, "000")
    End If
    End Sub
    A mon avis, simplement ça devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Numéro_du_projet_Click()
    If Len(Me.Numéro_du_projet & "") < 1 Then                                               'Si la longueur du numéro de projet est inférieure à 1
         If Me.Localité.Column(2) = "" Or Me.Type.Column(2) = "" Then            'J'ai pas compris l'objet du test ici ??
              MsgBox "Veuillez renseigner la localité et le type de projet."
              Exit Sub
         End If
         tSeq = Nz(DMax("Séquence", "Projets", "Localité=""" & Me.Localité & """ and " & "Type=""" & Me.Type & """"))
         hiCount = Nz(DLookup("Compteur", "Projets", "Séquence=" & tSeq), 0) + 1
         Me.Numéro_du_projet = Me.Localité.Column(2) & "-" & Me.Type.Column(2) & "-" & Format(Compteur, "000")
    End If
    End Sub
    Cordialement,

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2015
    Messages : 5
    Par défaut
    merci pour ton aide

    voici un lien ver la db si ca peut aider

    https://www.dropbox.com/s/yjatdlq9wv...ets.accdb?dl=0

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    Et comme ça ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Numéro_du_projet_Click()
    If Len(Me.Numéro_du_projet & "") < 1 Then                                               'Si la longueur du numéro de projet est inférieure à 1
         If Me.Localité.Column(2) = "" Or Me.Type.Column(2) = "" Then            'J'ai pas compris l'objet du test ici ??
              MsgBox "Veuillez renseigner la localité et le type de projet."
              Exit Sub
         End If
         tSeq = Nz(DMax("Séquence", "Projets", "Localité=" & Me.Localité & " and " & "Type=" & Me.Type), 0)
         hiCount = Nz(DLookup("Compteur", "Projets", "Séquence=" & tSeq), 0) + 1
         Me.Numéro_du_projet = Me.Localité.Column(2) & "-" & Me.Type.Column(2) & "-" & Format(hiCount, "000")
    End If
    End Sub
    Cordialement,

Discussions similaires

  1. [AC-2007] Combiner DLookUp and DMax
    Par Bonero dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/01/2013, 22h27
  2. Interaction DLookup/AllowEdits
    Par Clelia dans le forum Access
    Réponses: 1
    Dernier message: 21/12/2005, 07h36
  3. DMax dans un Sql
    Par jmde dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 19/12/2005, 13h00
  4. Sur quel evenement mettre Dmax?
    Par kabikou dans le forum Access
    Réponses: 18
    Dernier message: 15/09/2005, 00h00
  5. PB Fonction RechDom (DlookUp)
    Par Mike 619 dans le forum Access
    Réponses: 14
    Dernier message: 12/10/2004, 15h34

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