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 :

changer la source des champs d'un formulaire


Sujet :

VBA Access

  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut changer la source des champs d'un formulaire
    Bonjour,
    j'ai un formulaire avec une colonne dates et une colonne qui contient la somme des montants correspondants à chaque date
    je veux crée un évenement sur clic qui ouvre un autre formulaire et lui affecte les données correspondantes or le programme que j'ai fait ne renvoi qu'un seule ligne
    voici le 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
    30
    31
    32
    33
    34
    35
    'MsgBox (DateCA)
    LeSql = "SELECT facture_clients.* " & _
    "FROM facture_clients " & _
    "WHERE facture_clients.date_reglement=#" & Format(dateC, "yyyy-mm-dd") & "#"
     
    Set rsRdV = CurrentDb.OpenRecordset(LeSql, dbOpenForwardOnly)
     
    ' s'il y a un rdv alors copier dans la variable DateC l'horaire de début du rdv.
     
       If Not (rsRdV.EOF) Then
     'MsgBox (rsRdV!n_facture)
     'MsgBox (rsRdV!nom_client)
     DoCmd.OpenForm "F_details"
     F_details.Form.RecordSource = rsRdV
     
    '[F_details].Form.RecordSource = rsRdV
    ' ouvre le formulaire " F_RendezVous "
     
    Forms!F_details![n_facture] = rsRdV![n_facture]
    Forms!F_details![nom_client] = rsRdV![nom_client]
    Forms!F_details![montant_HT] = rsRdV![montant_HT]
    Forms!F_details![montant_TTC] = rsRdV![montant_TTC]
    Forms!F_details!TVA = rsRdV!TVA
    Forms!F_details![date_reglement] = rsRdV![date_reglement]
    Forms!F_details![Montant_reglé] = rsRdV![Montant_reglé]
    Forms!F_details![Reste] = rsRdV![Reste]
     
    Else
    MsgBox ("Il n'y pas de réglement pour cette date!")
    '  Forms!F_RendezVous!HoraireF = Format(DateAdd("n", 30, DateC), "hh:nn")
    End If
     
    rsRdV.Close
    Set rsRdV = Nothing
    End Sub

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Salut,

    Ne devrais-tu pas faire plutôt :
    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
    LeSql = "SELECT facture_clients.* " & _
    "FROM facture_clients " & _
    "WHERE facture_clients.date_reglement=#" & Format(dateC, "yyyy-mm-dd") & "#"
    Set rsRdV = CurrentDb.OpenRecordset(LeSql, dbOpenForwardOnly)
     
    ' s'il y a un rdv alors copier dans la variable DateC l'horaire de début du rdv.
     
    If Not (rsRdV.EOF) Then
       Forms!F_details!Form.RecordSource = LeSql
     
    Else
    MsgBox ("Il n'y pas de réglement pour cette date!")
    '  Forms!F_RendezVous!HoraireF = Format(DateAdd("n", 30, DateC), "hh:nn")
    End If
     
    rsRdV.Close
    Set rsRdV = Nothing
    End Sub
    Et faire un formulaire avec le requête obtenue, plutôt que d'essayer de mettre les données du résultat de la requête dans les champs (ce qui ne te donne d'une donnée).
    @+.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    Rebonjour
    merci zoom
    En fait ça me donne une erreur comme quoi microsoft ne reconnait pas le formulaire F_details
    une idée?

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Essai avec Forms!F_details.RecordSource = LeSql

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    ça me donne toujours microsoft access ne trouve pas le formulaire F_details...
    je suis perdue là
    F_details contient des champs, en plus de l'affectation de la requete il faut affecter à chaque champs une source
    je ne vois vraiment pas comment faire

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Si le code se trouve dans le formulaire : Me.Form.RecordSource = LeSQL

  7. #7
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    le code se trouve dans le formulaire RCA,
    je me réexplique
    je veux créer un évènement qui, sur double clic, ouvre le formulaire F_details en lui affectant les données contenus dans la requete select...

  8. #8
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    Re
    donc voila j'ai mis comme vous avez dis la requete en source
    Sauf que j'ai plusieurs colonne et chaque colonne à comme source une base diférente avec cette methode je devrai creer pour chaque colonne un formulaire
    Y-a moyen que pour le meme formulaire la source change? ou soit disant la base?

  9. #9
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LeSql = "SELECT facture_clients.* " & _
    "FROM facture_clients " & _
    "WHERE facture_clients.date_reglement=#" & Format(CDate(ChampFormulaire), "yyyy-mm-dd") & "#" & _
    "OR facture_clients.colonne1 = '" & ChampFormulaire & "' " & _
    "OR facture_clients.colonne2 = '" & ChampFormulaire & "' " & _
    ...

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2012, 14h16
  2. Réponses: 4
    Dernier message: 05/06/2011, 12h28
  3. Réponses: 3
    Dernier message: 03/07/2006, 22h00
  4. [Tableaux] Alignement des champs d'un formulaire
    Par jack554 dans le forum Langage
    Réponses: 7
    Dernier message: 15/09/2005, 15h30
  5. Verification des champs d'un formulaire
    Par 164emie dans le forum ASP
    Réponses: 5
    Dernier message: 19/11/2003, 14h03

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