[Résolu][Base] erreur SQL variable : table non trouvée

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
christrabin
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 13 févr. 2024 14:55

[Résolu][Base] erreur SQL variable : table non trouvée

Message par christrabin »


La modération vous a écrit: Dans votre titre, [base macro] a été remplacé par [Base] conformément aux règles de balisage

Bonjour

Désolé aux modérateurs pour ne pas avoir suivi toutes les informations.

bon covidé en plus j'essaie d'avancer en lisant les sujets.... :aie:

J'en suis à vouloir en fonction d'une liste de choix d'un nom et d'un champ texte prénom et au clic sur le bouton "rechercher" mettre à jour un contrôle de table.

Plus explicitement je choisis dans ma liste un nom puis je mets un prénom dans la zone dédiée clic sur rechercher et affichage des éléments dans mon contrôle.

mais je bloque sur une erreur sur la macro UserRechercher et la ligne
PysSQL = "SELECT * FROM ""USER"" WHERE NOM = '" & PysForm.getByName("fmtUSER").SelectedItem & "' AND PRENOM LIKE '%" & PysTexte & "%'"
Voici l'erreur pour le formulaire écran
Erreur d'exécution BASIC.
Une exception s'est produite :
Type: com.sun.star.container.NoSuchElementException
Message: ."
De plus, je ne sais pas pourquoi j'ai fait des essais et j'ai supprimé le code mais il y a encore des traces d ou le message d'erreur à l'ouverture de mon formulaire écran.
Table not found in statement [SELECT * FROM "T_FILM" WHERE "film_nom" LIKE '%%%']"
il y a un cache ou quelque chose du genre ?

Merci pour toute avancée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
windows11 avec openoffice 4.11
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] erreur sur une requête SQL variable

Message par jeanmimi »

Bonjour,
christrabin a écrit : 19 févr. 2024 18:29 il y a un cache ou quelque chose du genre ?
L'erreur est dans le Form Standard où ton contrôle Zone de liste cherche une Table qui n'existe pas.
J'ai regardé quelques Tables et elles ne sont pas conformes.
À titre d'amélioration, tu devrais avoir une Table USER avec les seules coordonnées des utilisateurs, et seulement celles-ci (même si je comprends pas bien son utilité, sachant qu'un PC peut changer d'utilisateur parfois au cours de la même journée).. La Table ECRAN ne devrait pas avoir de champs USER et ne devrait contenir que les données techniques des écrans d'ordinateurs. Même remarque pour les Tables PC, PERIPHERIQUE, PRINTER, SALLE et VISIO. La Table PERIPHERIQUE ne devrait pas contenir des informations concernant la salle puisqu'il y a déjà une Table SALLE.
Les contrôles Zones de liste doivent trouver leur source en SQL, et devraient dans l'instruction SQL contenir l'ID de la Table.
Enfin, il manque une Table INVENTAIRE pour enregistrer les données en fonction de l'entrée logique des saisies.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
christrabin
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 13 févr. 2024 14:55

Re: [Base] erreur sur une requête SQL variable

Message par christrabin »

Bonjour. Merci pour les reponses.
Je suis parti sur la logique par exemple qu un pc est alloue a un utilisateur (d'ou un id utilisateur) il se situe dans une salle (d ou un id salle). Un peripherique est lie a un pc d ou un id pc.
Est que cela est plausible? Le but est de repertorier selon un utilisateur une salle un materiel tout ce qui peut y etre lie.
Un ecran est lie a un pc mais aussi a un utilisateur qui le garde en changeant de bureau.
windows11 avec openoffice 4.11
christrabin
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 13 févr. 2024 14:55

Re: [Base] erreur sur une requête SQL variable

Message par christrabin »

Bonjour. Merci pour les réponses.
L'erreur est dans le Form Standard où ton contrôle Zone de liste cherche une Table qui n'existe pas.
ou peut on voir cela ?

Pour les tables, je suis parti sur la logique par exemple qu' un pc est alloue a un utilisateur (d' ou un id utilisateur) il se situe dans une salle (d ou un id salle). Un périphérique est lie a un pc d ou un id pc. Un écran est lie a un pc mais aussi a un utilisateur qui le garde en changeant de bureau.....Un écran est lie a un pc mais aussi a un utilisateur qui le garde en changeant de bureau.
Est que cela est plausible? Le but est de répertorier selon un utilisateur une salle un matériel... tout ce qui peut y être lie.
windows11 avec openoffice 4.11
christrabin
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 13 févr. 2024 14:55

Re: [Base] erreur sur une requête SQL variable

Message par christrabin »

du coup j'ai compris dans ce que je pensais être globalement le formulaire Standard, certains contrôles sont associés à "MainForm" et d'autres à "Standard". j'ai trouvé cela en faisant une boucle pour faire apparaitre les controles. Maintenant, je comprends l'erreur sql au chargement.

par contre, je n'arrive pas à associer mon controle TxtSaisieEcranPrenom à Standard. J'ai cliqué droit sur le controle pris l'onglet formulaire et mis en nom Standard mais il ne l'associe pas. Je rate une étape ?

Merci
windows11 avec openoffice 4.11
christrabin
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 13 févr. 2024 14:55

Re: [Base] erreur sur une requête SQL variable

Message par christrabin »

j'avance j'ai compris pas mal de chose en lisant le forum maintenant j'ai bien ce que je veux mais je ne comprends pas l'erreur suivante sur ma macro UserRechercher() j'ai l'erreur
Propriété ou méthode non trouvée : SelectedItem.
c'est bien pourtant la bonne propriété ?

Code : Tout sélectionner

Sub UserRechercher()
    ' Déclaration des variables
    Dim PysTexte As String
    Dim PysForm As Object
    Dim PysSQL As String
     Dim PysForm2 As Object
    ' Accès au formulaire nommé "Standard"
    PysForm = ThisComponent.DrawPage.Forms.getByName("Standard")
    
    ' Récupération du texte saisi dans la zone de texte pour le prénom
    PysTexte = PysForm.getByName("TxtSaisieEcranPrenom").Text
        
     PysForm2 = PysForm.getByName("fmtUSER")
      MsgBox PysForm2.Name
    ' Construction de la requête SQL pour rechercher les utilisateurs par nom et prénom
    PysSQL = "SELECT * FROM ""USER"" WHERE NOM = '" & PysForm2.SelectedItem & _
             "' AND PRENOM LIKE '%" & PysTexte & "%'"
    
    ' Mise à jour du contrôle de table avec les résultats de la requête
    PysForm.getByName("CtrlSaisieEcranTableuser").command = PysSQL
    PysForm.getByName("CtrlSaisieEcranTableuser").reload

    ' Vérification si des résultats ont été trouvés et affichage d'un message
    If PysForm.getByName("CtrlSaisieEcranTableuser").rowCount = 0 Then
        MsgBox "Aucun élément trouvé pour la recherche spécifiée.", 64, "Information"
    End If
End Sub
Merci

La modération vous a écrit: Merci de ne pas poster plusieurs messages à la suite, si vous devez ajouter un complément d'information, le bouton "Modifier" à la droite du message permet d'y remédier.
Image
En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.

Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
windows11 avec openoffice 4.11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] erreur sur une requête SQL variable

Message par Dude »

Salut,
christrabin a écrit : 19 févr. 2024 23:52j'ai l'erreur
Propriété ou méthode non trouvée : SelectedItem.
c'est bien pourtant la bonne propriété ?
Sûrement que non sinon tu n'aurais pas cette erreur. :?
Je t'invite à utiliser XRay pour connaître les propriétés et méthodes d'un objet de l'API.
Tu ne peux faire l'impasse sur cet outil si tu programmes.

Pour les accès aux contrôles d'un formulaire, tu peux consulter ce tuto :
https://beaussier.com/sections/viewtopic.php?f=8&t=158

Et une dernière chose, on est bénévole ici. Donc merci de fournir un ODB limité à la seule problématique.
Uniquement un formulaire et les tables/requêtes utilisés pour montrer le dysfonctionnement.
Souvent en faisant cet exercice, l'auteur trouve de lui-même l'origine de son problème. :)
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] erreur sur une requête SQL variable

Message par jeanmimi »

christrabin a écrit : 19 févr. 2024 18:29 J'en suis à vouloir en fonction d'une liste de choix d'un nom et d'un champ texte prénom et au clic sur le bouton "rechercher" mettre à jour un contrôle de table.
C'est aussi possible sans Macro, comme expliqué dans le forum, avec la zone de liste en MainForm et le Contrôle de Table en SubForm. L'affichage dans le SubForm se fait par clic sur un bouton avec l'action paramétrée.
christrabin a écrit : 19 févr. 2024 21:18 ou peut on voir cela ?
En passant le formulaire en Mode Édition, puis en utilisant le Navigateur du formulaire pour afficher l'arborescence des MainForm et des SubForm. Enfin, tu cliques sur un contrôle et tu regardes ses propriétés.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Base] erreur sur une requête SQL variable

Message par Bidouille »

Bonjour,
Dernière visite : 26 mars 2024 15:57
Un mois plus tard, vous avez lu les réponses apportées sans daigner y donner une suite.
N'ayant plus de nouvelle, on peut en déduire que le problème est résolu ou ne se reproduit plus.
Merci de baliser par vous-même la prochaine fois.

Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
La courtoisie fait également partie de la philosophie du logiciel libre.
En cas d'erreur, veuillez lire ce sujet pour une éventuelle réouverture de votre question :
ftopic52748-reouverture-de-question-fermee.html