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

IHM Discussion :

Activer Code VBA sur Formulaire Feuille de données [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut Activer Code VBA sur Formulaire Feuille de données
    Bonjour

    j'ai un formulaire (SUIVI_N) en mode feuille de donnée avec 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
    25
    26
    27
    28
    29
    Private Sub Form_current()
    Dim strSQL As String
    Dim strSQL1 As String
    Dim Date1 As Date
    Dim Date2 As Date
    Dim Date3 As Date
     
    Date1 = Format(Date1, "dd/mm/yyyy")
    Date2 = Format(Date1, "dd/mm/yyyy")
    Date3 = Format(Date3, "dd/mm/yyyy")
     
    Date1 = Nz(ENVOIEN, "01/01/1900")
    Date2 = Nz(ENVOIEC, "01/01/2080")
    Date3 = Nz(DATE_D, "01/01/2080")
     
    If (Date1) > (Date2) Then
     
    strSQL = "UPDATE CONTRATS SET [ENVOIEC] ='" & "" & "'" & "WHERE ID =" & Me!ID
    CurrentDb.Execute strSQL
    Forms!SUIVI_N.Requery
    End If
     
    If (Date1) > (Date3) Then
    strSQL1 = "UPDATE CONTRATS SET [DATE_D] ='" & "" & "'" & "WHERE ID =" & Me!ID
    CurrentDb.Execute strSQL1
    Forms!SUIVI_N.Requery
    End If
     
    End Sub
    je voudrai que ce code s'active dès l'ouverture du formulaire (qui le fasse sur toutes les lignes du formulaire), car pour le moment il s'active seulement si je clique sur la ligne.

    Edit:Chaque ligne à un ID différent.

    Est-ce possible?
    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 943
    Points : 4 868
    Points
    4 868
    Par défaut
    Bonjour,
    tu peux faire :

    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
     
    Private Sub Form_current()
    Dim strSQL As String
    Dim strSQL1 As String
    dim rst as DAO.recordset
     
    set rst = me.form.recordsetclone
     
    if rst.recordcount > 0 then
    rst.movefirst
    while not rst.EOF
    If   Nz(ENVOIEN, #01/01/1900#) > Nz(ENVOIEC, #01/01/2080#) Then
     
    strSQL = "UPDATE CONTRATS SET [ENVOIEC] = '' WHERE ID =" & rst!ID
    CurrentDb.Execute strSQL
    End If
     
    If Nz(ENVOIEN, #01/01/1900#) > Nz(DATE_D, #01/01/2080#) Then
    strSQL1 = "UPDATE CONTRATS SET [DATE_D] = '' WHERE ID =" & rst!ID
    CurrentDb.Execute strSQL1
    End If
     
    rst.movenext
    wend
    me.requery
    end if
     
    set rst=nothing
     
    End Sub
    Pas testé mais ça devrait être ok

    Bonne suite

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    Désolé de la réponse tardif mais j'ai été malade.
    ça à l'aire de marcher je te remercie grandement

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    j'avais laisser ce problème de coté en pensant que ça marcher (j'avais pas fait assez de test)
    Donc j'ai toujours le même problème il faut cliquer sur la ligne ou il y a la bonne condition pour que le code s'active et avec ce code (donc il check pas toute les ligne tout seul) et si il trouve une date supérieur il m'efface toutes les dates de la colonne malgré le critère ID.

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 943
    Points : 4 868
    Points
    4 868
    Par défaut
    Je ne connais pas tes données dans le détail.

    si ENVOIEN, ENVOIEC et DATE_D sont des colonnes du recordset,
    ceci devrait être plus adapté :

    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
    Private Sub Form_current()
    Dim strSQL As String
    Dim strSQL1 As String
    dim rst as DAO.recordset
     
    set rst = me.form.recordsetclone
     
    if rst.recordcount > 0 then
    rst.movefirst
    while not rst.EOF
    If   Nz(rst!ENVOIEN, #01/01/1900#) > Nz(rst!ENVOIEC, #01/01/2080#) Then
     
    strSQL = "UPDATE CONTRATS SET [ENVOIEC] = '' WHERE ID =" & rst!ID
    CurrentDb.Execute strSQL
    End If
     
    If Nz(rst!ENVOIEN, #01/01/1900#) > Nz(rst!DATE_D, #01/01/2080#) Then
    strSQL1 = "UPDATE CONTRATS SET [DATE_D] = '' WHERE ID =" & rst!ID
    CurrentDb.Execute strSQL1
    End If
     
    rst.movenext
    wend
    me.requery
    end if
     
    set rst=nothing
     
    End Sub
    A voir

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2012
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    c'est tout vu

    ça marche à merveille exactement ce que je cherchais

    Mille merci

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

Discussions similaires

  1. Recherche V ou code VBa sur plusieurs feuilles
    Par Jack67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/09/2014, 00h13
  2. Réponses: 7
    Dernier message: 19/06/2011, 06h56
  3. [AC-2007] paramétrer formulaire feuille de données vba
    Par markuus dans le forum IHM
    Réponses: 4
    Dernier message: 11/03/2011, 02h05
  4. [Vba-Excel] Exécuter une requete SQL sur une feuille de donnée
    Par Spacy_green dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2006, 10h27

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