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 :

Source d'un Field en vba dans un formulaire [AC-2007]


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 108
    Points : 49
    Points
    49
    Par défaut Source d'un Field en vba dans un formulaire
    Bonjour,
    Je cherche la possibilité après avoir créé un champ nommé Numéro de lui donner sa source par VBA.
    En faite je souhaite que ce champ prenne sa source dans la requête SQLFolio et le nom de champ source serait Folnuméro.


    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 Commande1_Click()
    Dim FrmFolio As Form
    Dim strName As String
    Dim ctl As Control
    Dim Fi As Field
    Dim SQLFolio As String
     
    SQLFolio = "select* FROM TblFolio;"
     
    Set FrmFolio = Application.CreateForm
    With FrmFolio
    .DefaultView = 2
    .RecordSource = SQLFolio
    .Caption = "visualisation folio"
    .Width = 5000
    .Section(acDetail).Height = 2000
    .NavigationButtons = False
    .RecordSelectors = True
    .AutoCenter = True
    strName = FrmFolio.Name
     
    End With
     
    Set ctl = Application.CreateControl(strName, acTextBox, , "", "", 2000, 500, 2500, 300)
     
    With ctl
    .Name = "Numéro"
    .BackColor = vbWhite
    .ForeColor = vbBlack
    .FontBold = True
    pour l'instant je ne sais pas comment faire.
    Si quelqu'un a une idée ...
    Merci d'avance
    Franck

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir
    Pour une zone de texte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.NomDeTaZone.ControlSource = "NomDuChampRequête"

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par GAYOT Voir le message
    Bonsoir
    Pour une zone de texte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.NomDeTaZone.ControlSource = "NomDuChampRequête"
    une erreur mindique Membre de méthode ou de données introuvable depuis que j'ai mis ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.NuméroCopie.ControlSource = "SQLFolio"
    je ne sais vraiment pas comment on procède pour indiquer à un champ de formulaire la source contyrol d'un champ.
    Ci-dessous mon code complet permettant de créer un formulaire et un champ ainsi que certaines propriétés supplémentaire le tout en vba, la source du formulaire j'y arrive mais pas la source d'un champ....Quiz..

    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
    Private Sub Commande1_Click()
    Dim FrmFolio As Form
    Dim strName As String
    Dim ctl As Control
    Dim SQLFolio As String
     
     
     
    SQLFolio = "select Numéro FROM TblFolio;"
     
    Set FrmFolio = Application.CreateForm
    With FrmFolio
    .DefaultView = 2
    .RecordSource = SQLFolio
    .Caption = "visualisation folio"
    .Width = 5000
    .Section(acDetail).Height = 2000
    .NavigationButtons = False
    .RecordSelectors = True
    .AutoCenter = True
    strName = FrmFolio.Name
     
     
     
     
    End With
     
    Set ctl = Application.CreateControl(strName, acTextBox, , "", "", 2000, 500, 2500, 300)
     
    With ctl
    .Name = "NuméroCopie"
    .BackColor = vbWhite
    .ForeColor = vbBlack
    .FontBold = True
    Me.NuméroCopie.ControlSource = "SQLFolio"
     
    End With
     
    Set ctl = Application.CreateControl(strName, acLabel, , "", "", 500, 500, 1500, 300)
    With ctl
    .Name = "lblNuméro"
    .Caption = "IdRèglement"
     
    End With
     
    'DoCmd.RunSQL SQLFolio
     
    '.RecordSource = SQLFolio
     
     
     
    End Sub

    une bonne soirée

    Franck

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'avais mis une formule un peu généraliste.
    Le Me. ne correspond pas à ce que tu fais.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par GAYOT Voir le message
    J'avais mis une formule un peu généraliste.
    Le Me. ne correspond pas à ce que tu fais.
    As tu une idée de la direction à prendre pour y réussir ?

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 021
    Points : 24 554
    Points
    24 554
    Par défaut
    Bonjour,

    Tu mélange un peu tout.

    2 controles peuvent contenir une source de données : la zone de liste et la zone de liste déroulante.

    La zone de texte ne peut contenir qu'une valeur, le contenu d'un champ ou une expression qui retourne une valeur.

    Soit tu donnes la source (ta chaine sql) à la source du formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.recordsource = sqlfolio
    sans les double cote.
    Et tu affecte le nom du champ à la source de ton controle texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .controlsource = "Numero"

    Soit tu affecte la valeur via une fonction comme dlookup()

    voir le tuto pour cette dernière fonction.

    Attention ! Les méthodes que tu mets en oeuvre sont incompatibles avec la compilation (fichier Accde/ mde)

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 108
    Points : 49
    Points
    49
    Par défaut
    Bien voilà maintenant çà marche, j'avais bien une erreur de syntaxe il fallait indiquer .controlsource ="Numéro", donc bien affecter le nom du champ à la source comme tu le stipules dans ta réponse. Merci bien et bonne journée
    Franck

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

Discussions similaires

  1. Requête sql multi-source avec jointure en pur VBA dans excel
    Par guidav dans le forum Général VBA
    Réponses: 1
    Dernier message: 21/09/2013, 20h33
  2. Affichage Dcount/VBA dans un formulaire
    Par fdalyon dans le forum VBA Access
    Réponses: 11
    Dernier message: 15/03/2010, 16h30
  3. Réponses: 4
    Dernier message: 04/03/2009, 14h49
  4. Réponses: 4
    Dernier message: 30/11/2008, 18h29
  5. Réponses: 4
    Dernier message: 19/07/2007, 14h59

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