|
|
|
|
Posté par
Fabinou, le vendredi 19 octobre 2007 à 11:59:50Configuration: Windows XP Internet Explorer 6.0
bonjour,
tu récupères dans une variable string : .... Dim str As String Dim Query As String str = monbouton.Caption Query = "SELECT nom FROM pc WHERE nom = ' " & str & " ' " .... Voilà Bon courage ;o) |
Bonjour Polux31,
Je viens d'essayer, mais le pb c'est qu'Access m'inscrit un message d'erreur : Microsoft Office Access can't find the object 'requête'. Can you help me please? |
salut, apparemment tu passes un objet 'requête' qu'Accces ne connait pas. Peux-tu mettre ici le code derrière ton bouton qui commande la requête, stp ? |
Bien sûr,
Private Sub bt_A1_Click() On Error GoTo Err_bt_A1_Click Dim str As String Dim Query As String str = Me.Caption Query = "SELECT box.nomBox, pc.nomPc, pc.adressIpPc, etat.libEtat" & _ "FROM etat INNER JOIN (box INNER JOIN pc ON box.idBox = pc.idBox) ON etat.idEtat = pc.idEtat" & _ "WHERE (((box.nomBox)='" & str & "'" DoCmd.OpenQuery Query, , acReadOnly Exit_bt_A1_Click: Exit Sub Err_bt_A1_Click: MsgBox Err.Description Resume Exit_bt_A1_Click End Sub Voici mon ami... Merci pour ta rapidité |
merci, je ne peux pas me pencher sur le sujet cet aprem, je regarde ça ce soir. Je n'utilise que très rarement les formulaires directement sur Access, je développe sur VB6 ou Java avec des connections sur diverses bases.
As-tu fait un test avec un simple select (ex : "select * from box") ? pour voir si tu as un mesage d'erreur ? A plus |
Oui, je viens d'essayer, et toujours le même message d'erreur. |
salut,
teste ça stp ... -> Penses à cocher la référence Microsoft DAO 3.6 Object Library ( Dans un module faites Outils / références ) Private Sub bt_A1_Click() On Error Resume Next Dim str As String Dim Query As String Dim db As DAO.Database, rst As DAO.Recordset str = Me.Caption ' Ouverture de la base de données Set db = CurrentDb ' Construction de la requête Query = "SELECT box.nomBox, pc.nomPc, p.adressIpPc, etat.libEtat " Query = Query & " FROM box, pc, etat " Query = Query & " WHERE box.idBox = pc.idBox AND pc.idEtat = etat.idEtat AND box.nomBox = ' " & str & " ' " ' Ouverture du recordset Set rst = db.OpenRecordset (Query , dbOpenForwardOnly, dbReadOnly) ' Fermeture du Recordset rst.Close If Err.Number <> 0 then msgbox Err.Description Exit Sub End If End Sub Ensuite il faut parcourir le recordset pour lire les données. Tiens moi au courrant stp. Bon courage Polux |
Salut Polux,
La référence était déjà cochée, par contre j'ai essayé ton code, et j'ai un autre message d'erreur : Object variable or With block variable not set. Peux-tu aussi m'aiguiller sur la façon de parcourir le recordset STP? Merci d'avance, Fabinou |
salut,
Je ne vois pas le blème, fait ça, à tout hasard : ..... ' Ouverture du recordset Set rst = new DAO.RecordSet rst = db.OpenRecordset (Query , dbOpenForwardOnly, dbReadOnly) .... Dans ton RecordSet tu as les données de ta requêtes. Dans ton cas : leNomBox = rst.Fields(0).Value leNomPC = rst.Fields(1).Value lAdresseIpPc = rst.Fields(2).Value leLibEtat = rst.Fields(3).Value Pour passer à la ligne suivante : rst.MoveNext (pour lire l'enregistrement suivant) et rst.MovePrevious (pour lire l'enregistrement précédent). Je suis désolé mais je ne peux pas faire de test sur les codes que je te passe, je n'ai pas Access installé sur mon pc ... |
Coucou,
Oui, c'est vrai, dommage que tu n'as pas Access. Je viens d'essayer et j'ai toujours le même message d'erreur : Object variable or With block variable not set. Et sinon, est-il possible de récupérer par exemple "leNomPC = rst.Fields(1).Value " et le donner à une requête paramétrable? Car auparavant, j'utilisais un formulaire qui est lié à une requête paramétrable, cela me servant à changer le box d'un Pc, en y inscrivant le nom du Pc. ex : Je clic sur le formulaire 'trouver un pc', une question apparait : "Quel Pc" -> je rentre GOGOPC020, et je clic ok -> cela me retourne le nom du pc avec le nom du box, que je peux modifier dans un combo box. Merci pour ta patiente, Fabinou |
Je viens de remarquer quelques chose d'autre, lorsque je me positionne sur str = Me.Caption pendant le lancement, str est = à "".
Donc il ne prend pas, ou ne trouve pas le bouton !? Quand dis-tu? |
oups oula oui en effet, j'ai fait pas attention à ça.
str = Me.bt_A1.Caption là tu devrais avoir quelque chose dans str. Je pense qu'effectivement tu dois pouvoir passer ta variable à ta requête paramètrable. |
Bonjour Polux,
Je pense avoir trouvé une solution à mon problème (grâce à toi bien sûr ;-)). Mon but final étant qu'une CENTAINE de boutons puisse utiliser la même requête SQL, avec comme paramétre le nom du bouton. Au départ, je ne savais pas comment exécuter ma requête en prenant en compte le nom du bouton sans passer par l'assistant d'access pour la création des requêtes, car je n'arrivais pas à passer en paramêtre le nom du bouton dans celle-ci. (faut suivre hein :-)). Solution : 'Variable Dim ReqSQL As String 'definition ReqSQL = "SELECT box.nomBox, pc.nomPc " ReqSQL = ReqSQL & " FROM box INNER JOIN pc ON box.idBox = pc.idBox " ReqSQL = ReqSQL & " WHERE (((box.nomBox)=[forms]![nomDuFormulaire]![nomDuBouton].[caption])) " 'Création de la requête CurrentDb.CreateQueryDef "testerReq", ReqSQL 'execution DoCmd.OpenQuery "testerReq", acViewNormal, acReadOnly --> Comme ça je peux faire une procédure avec ce code, et passer en paramètre le nom du bouton quand je clic dessus Mon deuxième pb est que je ne peux pas créer deux fois la même requête. Alors je la supprime, avant de la re-créer avec le nouveau nom de bouton passé en paramètre dans la procédure. Pense-tu que c'est une bonne solution ? |
salut, je ne pense pas qu'il soit nécessaire de détruite la requête puis la recréer ... Puisque tu as une variable dans le paramètrage de ta requête "testerReq" si j'ai bien compris... en principe tu ne devrais pas avoir besoin de l'assistant requête, mais si c'est une solution qui marche, pourquoi pas. L'essentiel c'est que tu obtiennes le résultat que tu cherches, peu importe comment en fin de compte. Je dois avoir Access 2007 ce week end, je vais pouvoir bidouiller dedans et faire des tests.
;o) |
Dac, si jamais tu trouves une solution plus pratique à mon pb, fais moi un pti signe ;-)
En tout cas, merci pour ton aide, A bientôt j'espère. |
| 13/05 23h47 | Messagerie, pages web et MTU | Internet |
| 22/05 11h07 | CPU multicores : comment désactiver un core | Processeur |
| 30/08 11h13 | Activation du Wifi intégré sur un PC Portable | WiFi |
| 20/11 15h53 | Liaison WI-FI parasitée ou perturbée (livebox) | WiFi |
| 29/05 17h56 | DS, le réglage du WI-FI ! | WiFi |
| 08/03 10h07 | Comment ecrire une requete en VBa sous access | 6 |
| 22/07 07h46 | Problème avec les requetes en vba sous access | 2 |
| 17/04 11h36 | Procédure et macro sur un bouton sous Access | 3 |
| 22/02 20h55 | Pb execution macro via bouton | 3 |
![]() | Lanterne Magique - Après les vacances, on se rend compte qu’on a pris beaucoup trop de photos. On a du mal à les visualiser méthodiquement ou... | Catégorie: Album photo Licence: Freeware/gratuit |
![]() | Switch Sound Format Converter - Switchest un convertisseur de formats audio pour Windows ou Mac, capable de convertir des fichiers audio à partir de... | Catégorie: Conversion audio Licence: Freeware/gratuit |
![]() | Sound Convert Tool - Sound Convert Tool est un petit outil très simple permettant de convertir des fichiers au format ACT, REC ou RCD vers le... | Catégorie: Conversion audio Licence: Freeware/gratuit |
![]() | SoundEngine - SoundEngine est un outil permettant d'éditer les fichiers audio et contient quelques filtres permettant d'y appliquer des... | Catégorie: Edition audio Licence: Freeware/gratuit |
![]() | HP Souris 2 boutons | Catégorie: Souris | 22.72 € Inmac Wstore |
![]() | Mitsumi Clavier + souris | Catégorie: Clavier | 21.50 € Cdiscount |
![]() | Logitech Cordless Desktop + | Catégorie: Clavier | |
![]() | Microsoft Wireless Optical Desktop | Catégorie: Clavier |