|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
Bonjour,
Je gère un petit parc info et j'ai fait une base sous access pour m'aider. Il y a, entres autres, dans cette base, le nom de l'agent et le nom netbios de son pc. Je voudrais faire un plan de l'étage et des bureaux où je bosse (un plan tres simpliste, juste avec des traits). A l'interieur de chaque carré du plan (symbolisant un bureau), mettre 2 champs (nom_agent et nom_ordi) J'ai donc fait mon plan dans un état, mais forcement, il ne me mets pas un nom différent dans chaque bureau... J'ai X états différents (car X agents) et sur chaque état, tjs le même nom de l'agent et de son ordi Comment faire pour avoir un seul état (mon plan) et un nom différent dans chaque bureau??? J'espère que j'ai été clair, c'est pas évidant d'expliquer ce que l'on a en tête... Merci d'avance pour votre aide... |
|
|
00
|
|
|
#2 | ||||
|
Membre confirmé
![]() Chef de projet MOA Inscription : septembre 2007 Messages : 191 ![]() |
J'imagine que tu as spécifié une source pour ton formulaire qui doit correspondre à une table ou une requête. Avec cette solution, tu ne pourras effectivement pas y arriver.
Tu peux en revanche alimenter manuellement tes champs à l'ouverture de ton formulaire. Du genre : Code :
Poste | Employe | Netbios Compta | Dupont| NB1 Info | Durand | NB2 Ensuite, tu nommes tes champs sur le formulaire : Compta_Poste Compta_Employe Compta_NetBios Avec ça, pour alimenter tes champs tu peux écrire : Code :
|
||||
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
Salut...
Wahoooooooooooooooo Merci pour la reponse precise et rapide! Bon j'avoue , j'ai pas trop compris grand chose dans ton code...Mais je vais vite tester ca.... Effectivement, mon formulaire (ou etat) pointe vers une requete ... et donc apparemment c'est impossible à faire avec cette methode! ![]() Encore merci... ![]() Ps: donc avec ta méthode, mon formulaire ne doit avoir aucune source, c'est bien ça? |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Chef de projet MOA Inscription : septembre 2007 Messages : 191 ![]() |
Oui, avec cette solution, l'état n'a pas de source particulière. C'est ta fonction qui va manuellement alimenter chaque champ.
Si tu es perdu avec le code, n'hésite pas à faire un tour du côté des tutos pour re(voir) les bases de la programmation Access. |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
Oui, bonne idée pour les tuto, j'y vais de ce pas...
|
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
Il y a un petit souci.. Lorsque j'exécute le code,
j'ai Db as Databse qui est surligné et j'ai le message "Type defini par l'utilisateur non defini" Faut il que je nomme Database ou CurrentDb par le nom exact d'une de mes tables?? |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Chef de projet MOA Inscription : septembre 2007 Messages : 191 ![]() |
Dim db As Databse
T'as pas l'impression qu'il manque un a ? Je vais te donner des devoirs Rends-toi sur l'excellent tuto de Tofalu (http://warin.developpez.com/access/dao/), et lit en priorité les parties suivantes : Partie 1 & 2 Partie 3.3 Partie 4.3, 4.4 et 4.7 Partie 5 Evidemment, je t'engage à lire le reste, mais avec ces éléments, tu auras vraiment le pied à l'étrier pour l'accès et la manipulation de tes données sous Access. |
|
|
00
|
|
|
#8 | ||
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
C'était une faute de frappe dans mon post...
![]() J'ai lu le tuto de Tofalu...Effectivement il est tres bien...Complexe, mais tres bien! Bon, j'ai un peu avancé... Voila mon code : Code :
Agent.Nom et Nom_Ordinateur.Nom sont les 2 champs de ma requete (Ordiagent) Tous a l'air Ok, mais quand j'execute le code j'ai ce message d'erreur Erreur 3078 : Microsoft Jet ne peut trouver la table ou requête. assurez vous quelle existe et qu'elle est bien orthographiée" Pourtant ma requete se nomme bien Ordiagent Je cherche mais je seche... ![]() ![]() Alors si quelqu'un avait une piste....
|
||
|
|
00
|
|
|
#9 | ||
|
Membre confirmé
![]() Chef de projet MOA Inscription : septembre 2007 Messages : 191 ![]() |
Il suffit que tu mettes OrdiAgent entre guillemets. Rassure toi, c'est une erreur de débutant classique. Les guillemets signifient : ce qui est dedans est une chaîne de caractères. Sinon, c'est le nom de quelque chose, une variable par exemple. Autrement dit, le code suivant fonctionnerait :
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
Bonjour Spaiku
Tout d'abord merci pour ttes tes réponses... J'ai rajouté les guillemets et voila maintenant qu'il me met "erreur13: incompatibilité de type" sur la meme ligne Code :
Bon c'est ce que j'ai compris, ca vaut ce que ca vaut... Pourtant recordset peut etre des chiffres ou des llettres non?!? ![]() ![]() Dans la requête Ordiagent, j'ai deux champs texte. J'ai fait un test en remplaçant la requête par une table à 2 colonnes de 3 valeurs chacune, même pb... Si quelqu'un avait une piste... |
||
|
|
00
|
|
|
#11 | ||
|
Membre confirmé
![]() Chef de projet MOA Inscription : septembre 2007 Messages : 191 ![]() |
Bonjour,
il faudrait que tu postes l'intégralité de ta fonction pour que je puisse comprendre ce qui se passe. A propos de ce qu'est un recordset, ce n'est ni du texte, ni une valeur numérique, mais un objet. Pour la définition d'un objet en programmation, voici une explication lumineuse : http://plasserre.developpez.com/cour...rincipe#LIII-A La méthode OpenRecordset renvoie bien un objet Recordset, et non une variable String, Integer ou autre, donc tu ne devrais pas avoir de problème de type. C'est pour ça qu'il me faudrait l'intégralité de la fonction. Autre chose sur ton post précédent : tu écris un rs.MoveNext après l'alimentation de chaque champ. Tu vas avoir des problèmes ! - Il faut comprendre qu'un Recordset est un tableau contenant des données. Il y a donc des lignes et des colonnes (qu'on appelle champs). - Dans ta requête, nous sommes d'accord qu'une ligne représente un poste de travail, et une colonne, un type d'information pour chaque poste. - Si donc j'ai 3 infos pour chaque poste, j'aurai 3 champs sur chaque ligne de mon Recordset, dont je devrai écrire la valeur dans 3 contrôles différents sur mon formulaire. - La méthode MoveNext du recordset dit à celui-ci "passe à la ligne suivante". - Tu ne dois donc l'utiliser qu'une fois que tu as traité tes 3 champs pour une ligne donnée. Sinon, tu ne récupères qu'une info par ligne de ton recordset - Le code correct sera donc du type : Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
Ta réponse a éclairci pas mal de chose...
Voici ma fonction avec les modif que j'ai pu y apporter (merci pour les Movenext...) Code :
nom agent nom ordi dupont 001 durant 002 martin 003 MAIS (tres important je pense) ma requte est basée en fait sur 4 champs nom agent / nom ordi / un champ texte / un champ vrai-faux. Comme j'ai besoin des 2 premiers, j'ai mis les 2 derniers en invisible dans la requete. Du coup l'objet Recordset est un objet à 2 colonnes ou 4 colonnes? Recordset prend il en compte les colonnes invisibles? Peut etre que le pb vient de là??? |
||
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Chef de projet MOA Inscription : septembre 2007 Messages : 191 ![]() |
Je ne vois pas très bien ce que tu appelles champs invisibles, mais ça n'a pas d'incidence sur ce qui nous occupe, à savoir ton problème d'incompatibilité de type. Je ne vois pas de problème particulier dans ton code. Envoie-moi ton .mdb si tu veux. Mais je ne pourrai pas te donner de retour avant ce soir : je n'ai pas Access sur mon poste au boulot.
Autre chose : je vois que tu as des noms qui comporte des espaces. C'est à proscrire, de même que les caractères spéciaux ou accentués. Au lieu de Nom Ordinateur, tu peux écrire : Nom_Ordinateur ou NomOrdinateur |
|
|
00
|
|
|
#14 | |||
|
Membre éclairé
![]() |
Bonjour,
Citation:
Par contre, la permière idée était pas mal du tout : Code :
|
|||
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Chef de projet MOA Inscription : septembre 2007 Messages : 191 ![]() |
Bonjour paidge,
ce n'est pas du problème de gestion du curseur que je parlais, mais de celui d'incompatibilité de type à l'ouverture du recordset (voir quelques messages plus haut). Il n'a pas eu le temps de se rendre compte de son erreur plus bas, vu qu'il n'arrive pas encore à accéder aux données. ouflala, paidge a raison, ton code pour alimenter tes champs n'est pas encore au point. Mais j'ai prévu de te corriger ça dans le .mdb. c'est vrai que quand on est débutant, c'est difficile de comprendre comment fonctionne le code sans avoir vu le résultat. |
|
|
00
|
|
|
#16 |
|
Membre éclairé
![]() |
Oui c'est sûr que pour le problème d'incompatibilté de type, il vaut mieux avoir tous les éléments pour trouver d'où ça vient
Quand je me suis penché sur le fonctionnement des recordset, j'ai pas mal appris avec bien sûr le tuto de Tofalu mais aussi avec ce site que je te conseille ouflala Bonne chance pour la suite EDIT : ah oui ! et celui-là aussi ^^ |
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
bon alors je vais repondre dans l'ordre...
Quand je dis champs invisible, c'est quand, dans une requete en mode creation tu coches la case qui te permet de ne pas voir la colonne en question dans ton resultat. Ok, je t'envoie le .mdb ou je fais le test! Paidge, effectivement il y avait un pb dans les movenext que j'ai rectifié sur les conseils avisés de spaiku. Pour l'instant je m'interesse qu'a la 1ere partieb du code . Dès que ca marche et que je l'aurai assimilé, je m'interesserai à la 2e partie! Merci pour tout vos lien que je suis en train de lire, mais il y a tellement d'info que je ne sais pas trop quoi prendre pour résoudre mes pb...Enfin heureusement que vous etes là... |
|
|
00
|
|
|
#18 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 108 ![]() |
le .mdb ne passait pas. Je l'ai juste renommé en .zip
|
|
|
00
|
|
|
#19 |
|
Membre éclairé
![]() |
lol ok...Je comprenais pas qu'il ne veuille pas s'ouvrir
|
|
|
00
|
|
|
#20 |
|
Membre éclairé
![]() |
J'ai trouvé d'où venait ton incompatibilité de type...Un caprice d'Access apparemment
Déclare ta variable recordset comme ça et ça devrait le faire, je viens d'essayer et c'est bon |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com