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

OpenOffice & LibreOffice Discussion :

Ouverture formulaire sur clik dans zone de liste [OpenOffice][Base de données]


Sujet :

OpenOffice & LibreOffice

  1. #21
    Futur Membre du Club
    Femme Profil pro
    gérante de société
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : gérante de société
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Aie aie aie Michel !
    j'ai créé le formulaire avec la requête clients/contacts, puis la boite combinée.
    Ca fonctionnait ... avec des bug mais ça fonctionnait.
    SAUF QUE C'EST INUTILISABLE : parce que si un client a 2 contacts , ce formulaire ne me donne pas la possibilité de consulter le 2e contact.
    Le sous-formulaire est utile si, à une valeur du formulaire, correspond plusieurs valeurs tu me l'as écrit et je ne l'ai pas lu avec l'attention qu'il fallait.
    Alors je suis revenue à mon formulaire et son sous formulaire.
    Retour à la case départ.
    Je décide de suivre la méthodologie access que j'ai pratiqué sur PC :
    Je crée donc une requête que j'appelle "liste clients" comprenant 3 champs : ID clients, nom et prénom, qui me servira de source.
    J'ajoute une combo box à mon formulaire.
    dans l'onglet données , type de contenu : requête , puis contenu de liste : liste Clients
    dans l'onglet évènement : il faudrait créer un code après mise à jour rechercher l'enregistrement correspondant au contrôle, genre "AfterUpdate() Dim rs As Object Set rs = Me.Recordset.Clone
    je ne connais pas le language SQL et je ne sais pas où on doit le rentrer .... dans access il y a après MAJ, mais je ne peux pas les créer.
    Peux tu m'aider ?

  2. #22
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Effectivement, il faudra un sous-formulaire dans ce cas.
    Ce sous-formulaire doit avoir des propriétés et il faudra effectuer la même démarche que pour le formulaire.
    Je vais essayer de faire une petite simulation sur l'exemple fourni mais cela risque de prendre un peu de temps vu le weekend et le lundi de Pentecôte.
    Patience !!!

  3. #23
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Je viens de regarder l'exemple envoyé apres avoir ajouté quelques contacts pour un même client
    Nom : contacts.png
Affichages : 262
Taille : 14,4 Ko
    Si j'ouvre le formulaire, en bas, j'ai bien 2 enregistrements pour le client 1 et je peux passer de l'un à l'autre avec les flèches
    Nom : choixEnregistrements.png
Affichages : 229
Taille : 4,2 Ko


    et donc, si comme il était proposé je n'affiche qu'un contact à la fois, cela fonctionne sinon, il faudra un sous-formulaire

  4. #24
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    voila, cela fonctionne avec la même macro (je l'ai reconstruit avec OpenOffice pour éviter les problèmes)
    Au départ, le formulaire principal utilise la table client et le sous-formulaire la table contact en liant les champs ref client et id client.
    on rempli selon ce qu'on désire et on vérifie.
    Ensuite, on modifie le formulaire ;on remplace la requête par une instruction sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM "Clients"
    qui sera modifiée par la procédure basic.(A ce stade, on a plus besoin de la table contact puisque son usage est défini par le sous-formulaire)
    On ajoute la liste combinée avec
    dans l'onglet données
    • type de contenu liste : sql
    • contenu de liste :SELECT DISTINCT "Nom" FROM "Clients"

    dans l'onglet événement , le choix est le même que dans le cas précédent :status modifié et on sélectionne la macro ActualiserListe
    voila, c'est tout et c'est plus simple
    Un petit exemple minimaliste :Nouvelle base de données - copie5.odb.zip
    Bon courage

    Remarque: sur le fond, il y a un problème : que se passe-il si deux clients ont le même nom ? cela risque d'être la cata mais c'est un autre débat !

  5. #25
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut que se passe-il si deux clients ont le même nom ?
    J'ai une solution. La liste ne peut contenir qu'un champ par ligne. Donc, il faut modifier la requête de la liste de façon à inclure (concatener) l'ID client. Je suis obligé de le mettre à la fin pour pouvoir garder la possibilité de taper le début d'un nom. J'en profite pour ajouter la macro à un deuxième événement :texte modifié sinon, dans ce cas, cela ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONCAT( "Nom", CONCAT( '-', "ID client" ) ) AS "nom_ID" FROM "Clients"  order by "Nom"
    Ensuite, j'adapte la requête SQL de la macro pour tenir compte de cette nouvelle chaîne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     RequeteSQL =" SELECT ""Clients"".*, ""Contacts"".* FROM ""Contacts"", ""Clients"" WHERE ""Contacts"".""Ref client"" = ""Clients"".""ID client""  and concat(Nom,concat('-',""Clients"".""ID client"")) = '" + Choix + "'"
    C'est un peu long mais cela permet de sélectionner le bon enregistrement.
    Voilà, on y est mais on peut certainement faire mieux !
    Voilà la dernière version : Nouvelle base de données - copie6.odb.zip

  6. #26
    Futur Membre du Club
    Femme Profil pro
    gérante de société
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : gérante de société
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Michel Voir le message
    voila, cela fonctionne avec la même macro (je l'ai reconstruit avec OpenOffice pour éviter les problèmes)
    Au départ, le formulaire principal utilise la table client et le sous-formulaire la table contact en liant les champs ref client et id client.
    on rempli selon ce qu'on désire et on vérifie.
    Ensuite, on modifie le formulaire ;on remplace la requête par une instruction sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM "Clients"
    qui sera modifiée par la procédure basic.(A ce stade, on a plus besoin de la table contact puisque son usage est défini par le sous-formulaire)
    On ajoute la liste combinée avec
    dans l'onglet données
    • type de contenu liste : sql
    • contenu de liste :SELECT DISTINCT "Nom" FROM "Clients"

    dans l'onglet événement , le choix est le même que dans le cas précédent :status modifié et on sélectionne la macro ActualiserListe
    voila, c'est tout et c'est plus simple
    Un petit exemple minimaliste :Nouvelle base de données - copie5.odb.zip
    Bon courage

    Remarque: sur le fond, il y a un problème : que se passe-il si deux clients ont le même nom ? cela risque d'être la cata mais c'est un autre débat !
    Bonjour michel,
    Week end chargé ... je me remets sur ma base de données ..
    Malheureusement à ce stade : dans l'onglet événement , le choix est le même que dans le cas précédent :status modifié et on sélectionne la macro ActualiserListe je ne peux plus avancer , parce que la macro actualiser liste n'existe pas ....

  7. #27
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Normal, le faut la créer
    marco gerer les macro ->openoffice , sélectionner la beuille correspondant la base pour que la macro soit dans la feuille ensuite "standart et nouveau et encoder la macro
    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
     
    REM  *****  BASIC  *****
    option explicit
     
    Sub ActualiserListe(Evt as object)
    dim ListClient as object, Formulaire as object
    dim RequeteSQL as string, Choix as string
     
     ListClient = Evt.source                    'La liste déroulante
     
    Choix =  ListClient.SelectedText            'Choix fait dans la liste
    Formulaire =  ListClient.model.Parent            'On "remonte" au parent (le formulaire)
     
    'SELECT clients.* FROM clients WHERE client.nom ='FIARDA' 
    'Concaténation avec le choix fait dans la liste
    ' RequeteSQL = "SELECT * FROM Clients  WHERE Nom = '" + Choix + "'"
     RequeteSQL =" SELECT ""Clients"".*, ""Contacts"".* FROM ""Contacts"", ""Clients"" WHERE ""Contacts"".""Ref client"" = ""Clients"".""ID client""  and concat(Nom,concat('-',""Clients"".""ID client"")) = '" + Choix + "'"
    Formulaire.command = RequeteSQL                'Redéfinition de la source du formulaire
    Formulaire.reload
    end sub

  8. #28
    Futur Membre du Club
    Femme Profil pro
    gérante de société
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : gérante de société
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Tout cela ne fonctionne pas ...
    Voici la macro qui avait été créée sur Access pour ce même contrôle (recherche de clients) dans une zone de liste déroulante.
    J'ai modifié zonecombinee1 au lieu de modifiable59 dans access.
    Mais ça ne fonctionne pas ... Il y a une erreur sur Me
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub zonecombinee1_Afterupdate()
     
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        ' tester la valeur nulle
        If Not Isnull(Me![zonecombinee1]) Then
        rs.FindFirst "[id_clients] = " & Str(Me![zonecombinee1])
        Me.Bookmark = rs.Bookmark
        End If
    End Sub

  9. #29
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Access, ce n'est pas libreoffice !
    Me.quelquechose n'existe pas en OoBasic, il faut utiliser une autre méthode.
    J'ai fourni un exemple basé avec une liste combinée et une macro qui fonctionne en tenant compte les informations fournies et cela sur LO et sur OpenOffice.
    Bricoler une procédure access risque de poser plus de problèmes que d'en résoudre.
    Je me demande si tout ne vient pas d'une méconnaissance grave du basic d'OpenOffice et je ne peux que conseiller d'aller lire les tutos qui sont sur ce site avant de se lancer tête baissée.
    Cela prend un peu de temps, d'accord, mais si j'en juge pas le temps que dure cette discussion, je crois que la solution pourrait être trouvée beaucoup plus rapidement !
    Je ne peux pas faire plus que de fournir une solution qui fonctionne pour l'exemple fourni !!!!

  10. #30
    Futur Membre du Club
    Femme Profil pro
    gérante de société
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : gérante de société
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Absolument Michel, méconnaissance certaine... bon je vais essayer autrement ...
    La base de données n°6 que vous m'avez envoyé ne fonctionne pas ; les noms dans le contrôle de recherche se superposent ...
    je vous remercie beaucoup pour votre temps...

  11. #31
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    quand tu dis les noms se superposent cela veut dire quoi ?
    Il arrive qu'en passant d'une version à une autre certains contrôles se déplacent; pour corriger cela, il suffit d'éditer le formulaire et es les déplace.
    Remarque: contrairement à access, le formulaire est une simple page de texte avec les champs placés dessus .

  12. #32
    Futur Membre du Club
    Femme Profil pro
    gérante de société
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : gérante de société
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Nom : Capture d’écran 2017-06-08 à 15.54.41.png
Affichages : 219
Taille : 13,6 Ko
    il ne s'agit pas d'un déplacement de contrôle .
    Ce que je trouve bizarre aussi, c'est qu'en passant en mode ébauche, le client "PIT" est affiché dans le contrôle supérieur ... alors que normalement en mode ébauche, il n'y a aucun élément des tables , seuls les contrôles .....

  13. #33
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Effectivement, c'est un bug; normalement, en mode ébauche ou édition,il affiche parfois la dernière fiche sur laquelle on a travaillé mais ici, il y a un raté !
    Cependant, cela n'a aucune influence sur le mode de fonctionnement normal. Je reconnais qu'il y a encore quelques problèmes avec Base et pour moi, c'est le module le moins abouti de LibreOffice/OpenOffice.
    voila ce que cela donne chez moi
    Edition
    Nom : EditFormulaire.png
Affichages : 297
Taille : 15,7 Ko
    Utilisation
    Nom : utiliseFormulaire.png
Affichages : 256
Taille : 31,0 Ko
    Si cette erreur est trop gênante, il suffit d'ajouter une nouvelle liste combinée, de comparer et adapter les propriétés et événements des deux, de tester et si la nouvelle fonctionne correctement, de supprimer l'ancienne.
    Ne pas supprimer l'ancienne directement permet de comparer facilement les propriétés des deux jusqu'à ce qu'elles soient identique.

  14. #34
    Futur Membre du Club
    Femme Profil pro
    gérante de société
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : gérante de société
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    D'accord... je comprends mieux.
    Pas facile d'essayer de comprendre avec des bugs surprise...
    Je vais essayer ça. Et puis si ça ne fonctionne pas, je crois que je vais jeter l'éponge ...
    Je n'ai pas encore de plan B ; j'aimais bien développer mes formulaires en fonction de mes besoins.
    Je sais qu'il existe des logiciels commerciaux prêt à l'emploi mais ça me plaisait moins ...
    Encore Merci Michel.

  15. #35
    Futur Membre du Club
    Femme Profil pro
    gérante de société
    Inscrit en
    Mai 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : gérante de société
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mai 2017
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé !!!!
    Le contrôle de recherche que je voulais créer servait à afficher dans mon formulaire les infos d'un client X : et bien il n'est pas nécessaire de créer un contrôle sous forme de zone de liste ou combo box ou autre !!!!
    il suffit de cliquer sur la paire de jumelle en bas à gauche à coté de "enregistrement" - Une fenêtre de recherche s'ouvre : je n'ai ^lus qu'a mettre le nom du client qui m'intéresse !!!!
    hiiiiiiihaaaaa !
    bonne journée Michel !
    et encore merci pour ton temps

  16. #36
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Et oui, on cherche parfois bien loin ce qui est sous notre nez !
    Mais ce n'est pas perdu car c'est la base de recherches utilant plusieurs critères(nom +date + localié par exemple)
    Bonne continuation !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Ouverture formulaire sur clik dans zone de liste
    Par Niaouli02 dans le forum IHM
    Réponses: 4
    Dernier message: 26/05/2017, 12h50
  2. Réponses: 1
    Dernier message: 02/04/2015, 03h52
  3. Réponses: 7
    Dernier message: 14/01/2008, 12h12
  4. Réponses: 4
    Dernier message: 30/08/2007, 09h47
  5. [formulaire] absence dans zone de liste
    Par roms1 dans le forum IHM
    Réponses: 4
    Dernier message: 10/11/2005, 12h31

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