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 :

[Sous-formulaire] Ajuster la taille automatiquement selon le contenu


Sujet :

IHM

  1. #21
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Ok Herman,

    J'ai donc rectifié, et maintenant, j'ai le message d'erreur suivant :

    Erreur d'exécution '2465'
    Erreur définie par l'application ou par l'objet
    Mais qu'est-ce que cela veut bien dire ?
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  2. #22
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    J'ai oublié de te dire :

    j'ai la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Form.Height = nombre_enregistrement * 2
    qui est en jaune.
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  3. #23
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    Ton formulaire s'appelle Form ?

  4. #24
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Oula, non... C'est parce que comme c'était sous Activation du sous-formulaire au départ, j'ai oublié de le modifier pour le bouton...

    Résultat : j'ai modifié le code, qui est donc maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Bascule27_Click()
    Dim nombre As DAO.Recordset
    Dim Db As DAO.Database
    Dim nombre_enregistrement As Integer
     
    Set Db = CurrentDb
    Set nombre = Db.OpenRecordset("SELECT T_Tiers.RefGPTiers  FROM T_Tiers")
    nombre_enregistrement = nombre.RecordCount
    Me.FS_OrganiserTourneesSF.Height = nombre_enregistrement * 2
    '(si la taille du formulaire avec un seul enregistrement fait 2 cm)
     
    End Sub
    Mais maintenant, dès que je clique sur le bouton, mon formulaire disparait ! (même les entête de colonnes)
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  5. #25
    Invité
    Invité(e)
    Par défaut
    Cela vient de ton chiffre 2

    en VBA, les distances sont en twips, de mémoire 567 twips = 1 cm


    Starec

  6. #26
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    Le Me.nomduform marche pas chez moi xD Je sais pas si ça peut venir de là aussi.

  7. #27
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Re Starec,

    Entre temps j'avais remplacé le 2 par 20... mais ça ne suffisait donc pas !

    J'ai remplacé au hasard par 1428, et je vois un bout de mon formulaire... donc tu as raison !

    Re herman et Starec,

    En fait, en testant, et en tenant compte des écarts entre mes zones, je m'aperçois que ça ne tient pas compte du nombre d'enregistrements, la taille du sous-formulaire reste fixée sur la première fois que je clique sur le bouton.

    Après, si mon nombre d'enregistrement est modifié, j'ai beau recliquer sur le bouton, la taille reste la même...
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  8. #28
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    J'ai testé le code sur l'événement After Update du sous-formulaire. Il ne bugue pas, la réaction est la même que précedemment sur clic.

    Donc, déjà, l'événement Sur Activation n'était pas une bonne idée.
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  9. #29
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    @ Herman :

    J'ai supprimé le Me, pour voir : ça ne change rien du tout chez moi.
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  10. #30
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    J'ai une idée... je pourrais peut-être tester comment il compte les enregistrements... mais je ne sais pas comment il faut que je procède;

    J'ai mis le code suivant, ou j'ai rajouté un msgbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Bascule27_Click()
    Dim nombre As DAO.Recordset
    Dim Db As DAO.Database
    Dim nombre_enregistrement As Integer
     
    Set Db = CurrentDb
    Set nombre = Db.OpenRecordset("SELECT T_Tiers.RefGPTiers  FROM T_Tiers")
    nombre_enregistrement = nombre.RecordCount
    MsgBox "nombre_enregistrement"
    FS_OrganiserTourneesSF.Height = (nombre_enregistrement * 344.736) + 2525
     
    End Sub
    Mais bien sûr, Access me renvoie le texte
    nombre_enregistrement


    Comment fait-on pour qu'il me renvoie la valeur ?
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  11. #31
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox nombre_enregistrement

  12. #32
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Ok Herman,

    Merci !

    En fait, il me renvoie 1 tout le temps, que j'ai 0, 1, 2 ou 8 enregistrements.
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  13. #33
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    La requête ne doit pas être bonne, surement que tu ne sélectionnes pas tous tes enregistrement en faisant ça.

    Copie la dans le truc des requêtes normales, et éxécute pour voir combien de lignes il t'affiche.

  14. #34
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    J'espère qu'Access ne compte pas le nombre d'enregistrement du formulaire, au lieu du nombre d'enregistrements du sous-formulaire... En même temps, je n'ai pas de champ T_Tiers.RefGPTiers dans mon formulaire, je ne l'ai que dans mon sous-formulaire...

    Je ne comprends rien !

    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  15. #35
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    J'ai fait ce que tu m'as dit, j'ai 658 enregistrements...
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  16. #36
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Et si je remets laz requête de départ, j'ai 12 enregistrements... ce qui est faux aussi.
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  17. #37
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    Voilà quelque chose que j'ai testé

    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
    Private Sub Commande3_Click()
    Dim strSQL As String
    Dim n As Integer
    Dim oRst As DAO.Recordset
    strSQL = "SELECT * FROM TBLCLIENT WHERE NUMCLIENT LIKE " & Chr(34) & Me.txtrecherche & "*" & Chr(34)
     
     
    'Ouvre le recordset pour compter le nombre de ligne
    Set oRst = CurrentDb.OpenRecordset(strSQL)
    With oRst
        .MoveLast
        n = .RecordCount
        .Close
    End With
    Set oRst = Nothing
     
     
    With Me.sformulaire
        Debug.Print strSQL
        .Form.RecordSource = strSQL
        .Height = .Form.EntêteFormulaire.Height + .Form.PiedFormulaire.Height + .Form.Détail.Height * (n - Form.AllowAdditions)
     
    End With
    End Sub
    Tient compte du fait que le sous formulaire accepte ou non des ajouts de lignes, il faudrait aussi rajouter un chouilla à la hauteur suivant que tu affiches ou non la barre de navigation en bas de formulaire

  18. #38
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    bonjour Tofalu,

    Alors j'ai pris lton code, et j'ai mis mes valeurs dedans, ça donne ça :

    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
    Private Sub Bascule27_Click()
     
    Dim strSQL As String
    Dim n As Integer
    Dim oRst As DAO.Recordset
    strSQL = "SELECT T_Livraisons.DateLivraisonSouhaitee, T_Tiers.fNumTypeTournee, T_Livraisons.Retour, T_Livraisons.Transport, T_Livraisons.HeureLivraison, T_Tiers.RefGPTiers, T_Tiers.NomTiers, T_Tiers.fNumPL, T_Livraisons.DistanceParcourue, T_Livraisons.Montant, T_Livraisons.fNumTournee, T_Livraisons.NbColis, T_Livraisons.Poids FROM T_Tiers INNER JOIN T_Livraisons ON T_Tiers.NumTiers=T_Livraisons.fNumTiers ORDER BY T_Livraisons.HeureLivraison; " & Chr(34) & Me.txtrecherche & "*" & Chr(34)
     
     
    'Ouvre le recordset pour compter le nombre de ligne
    Set oRst = CurrentDb.OpenRecordset(strSQL)
    With oRst
        .MoveLast
        n = .RecordCount
        .Close
    End With
    Set oRst = Nothing
     
     
    With Me.FS_OrganiserTourneesSF
        Debug.Print strSQL
        .Form.RecordSource = strSQL
        .Height = .FS_OrganiserTourneesSF.EntêteFormulaire.Height + .FS_OrganiserTourneesSF.PiedFormulaire.Height + .FS_OrganiserTourneesSF.Détail.Height * (n - FS_OrganiserTourneesSF.AllowAdditions)
     
    End With
    End Sub
    Mais j'ai un problème avec txtrecherche, par quoi faut-il que je le remplace ?

    Merci de m'aider
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  19. #39
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    La première partie du code correspond à ton code permettant de synchroniser la zone de liste avec le sous formulaire

  20. #40
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Ok Tofalu,

    Alors j'ai mis ça :

    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
    Private Sub Bascule27_Click()
     
    Dim strSQL As String
    Dim n As Integer
    Dim oRst As DAO.Recordset
    strSQL = "SELECT T_Livraisons.DateLivraisonSouhaitee, T_Tiers.fNumTypeTournee, T_Livraisons.Retour, T_Livraisons.Transport, T_Livraisons.HeureLivraison, T_Tiers.RefGPTiers, T_Tiers.NomTiers, T_Tiers.fNumPL, T_Livraisons.DistanceParcourue, T_Livraisons.Montant, T_Livraisons.fNumTournee, T_Livraisons.NbColis, T_Livraisons.Poids FROM T_Tiers INNER JOIN T_Livraisons ON T_Tiers.NumTiers=T_Livraisons.fNumTiers ORDER BY T_Livraisons.HeureLivraison "
     
     
    'Ouvre le recordset pour compter le nombre de ligne
    Set oRst = CurrentDb.OpenRecordset(strSQL)
    With oRst
        .MoveLast
        n = .RecordCount
        .Close
    End With
    Set oRst = Nothing
     
     
    With Me.FS_OrganiserTourneesSF
        Debug.Print strSQL
        .Form.RecordSource = strSQL
        .Height = .FS_OrganiserTourneesSF.EntêteFormulaire.Height + .FS_OrganiserTourneesSF.PiedFormulaire.Height + .FS_OrganiserTourneesSF.Détail.Height * (n - FS_OrganiserTourneesSF.AllowAdditions)
     
    End With
    End Sub
    Comme tu vois, j'ai donc juste mis après strSQL la requête SQL de mon sous formulaire.

    Mais lorsque je lance la procédure, j'ai un message d'erreur :

    Erreur de compilation:
    Membre de méthode ou de données introuvable
    Je ne sais pas ce que ça veut dire
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/02/2009, 13h53
  2. Réponses: 0
    Dernier message: 25/01/2008, 11h21
  3. Réponses: 6
    Dernier message: 12/01/2007, 19h10
  4. Ajuster la taille d'un formulaire
    Par tabtab dans le forum Access
    Réponses: 21
    Dernier message: 31/05/2006, 22h35
  5. Sous-formulaire créer une saisie automatique
    Par Mimi-des-îles dans le forum Access
    Réponses: 2
    Dernier message: 23/02/2006, 14h47

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