OVH Cloud OVH Cloud

Ouvrir une table qui n'est pas lie au formulaire

3 réponses
Avatar
Michel Pellegrini
Un formulaire "FCouleur1" est lié à la table "TCouleur1",
lequel contient un champ texte "Couleur".

Une autre table - qui n'a rien à voir avec le formulaire -
se nomme "TCouleur2". Elle contient aussi un champ texte
"Couleur".

Dans mon formulaire "FCouleur1", j'ai un bouton qui
exécute cette procédure:

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Private Sub Bouton_Click()

Dim dbs As Database
Dim rstTemp As Recordset

Set dbs = CurrentDB
Set rstTemp = dbs.OpenRecordset("TCouleur2", dbOpenTable)

rstTemp.MoveFirst

' Maintenant, si j'indique

MsgBox(Couleur)

' la boîte de message me renvoi la première couleur de
' la table TCouleur1, table qui est liée au formulaire.

End Sub
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Comment faire pour qu'il me renvoi la couleur de la
table "TCouleur2" que j'ai ouvert avec OpenRecordset()?

Michel.Pellegrini@Enter-Net.com
Vercheres QC Canada

3 réponses

Avatar
3stone
Salut,

Dans le texte....


"Michel Pellegrini"
Un formulaire "FCouleur1" est lié à la table "TCouleur1",
lequel contient un champ texte "Couleur".

Une autre table - qui n'a rien à voir avec le formulaire -
se nomme "TCouleur2". Elle contient aussi un champ texte
"Couleur".

Dans mon formulaire "FCouleur1", j'ai un bouton qui
exécute cette procédure:

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Private Sub Bouton_Click()



' spécifier que tu utilise DAO

Dim dbs As DAO.Database
Dim rstTemp As DAO.Recordset


Set dbs = CurrentDB
Set rstTemp = dbs.OpenRecordset("TCouleur2", dbOpenTable)

rstTemp.MoveFirst

' Maintenant, si j'indique

MsgBox(Couleur)



Oui... mais, il faut lire le champ couleur de ce premier enregistrement!!!


MsgBox rstTemp!Couleur

'et aussi fermer le tout gentiment...

rstTemp.Close
Set rstTemp = Nothing
Set dbs = Nothing

' la boîte de message me renvoi la première couleur de
' la table TCouleur1, table qui est liée au formulaire.

End Sub
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Comment faire pour qu'il me renvoi la couleur de la
table "TCouleur2" que j'ai ouvert avec OpenRecordset()?




--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Michel Pellegrini
OK, merci, ça fonctionne.

J'ai de la difficulté à comprendre cette histoire
de DAO et l'autre terme dans le même genre.

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
(Moi)
|> Un formulaire "FCouleur1" est lié à la table "TCouleur1",
|> lequel contient un champ texte "Couleur".
|>
|> Une autre table - qui n'a rien à voir avec le formulaire -
|> se nomme "TCouleur2". Elle contient aussi un champ texte
|> "Couleur".
|>
|> Dans mon formulaire "FCouleur1", j'ai un bouton qui
|> exécute cette procédure:
|>
|> Private Sub Bouton_Click()
|> ...

(3stone)
|>> ' spécifier que tu utilise DAO
|>>
|>> Dim dbs As DAO.Database
|>> Dim rstTemp As DAO.Recordset

(Moi)
|> ...
|> Set dbs = CurrentDB
|> Set rstTemp = dbs.OpenRecordset("TCouleur2", dbOpenTable)
|>
|> rstTemp.MoveFirst
|>
|> ' Maintenant, si j'indique
|>
|> MsgBox(Couleur)
|> ...

(3stone)
|>> Oui... mais, il faut lire le champ couleur de ce premier
|>> enregistrement!!!
|>>
|>> MsgBox rstTemp!Couleur
|>> 'et aussi fermer le tout gentiment...
|>>
|>> rstTemp.Close
|>> Set rstTemp = Nothing
|>> Set dbs = Nothing

(Moi)
|> ...
|> ' la boîte de message me renvoi la première couleur de
|> ' la table TCouleur1, table qui est liée au formulaire.
|>
|> End Sub
|> ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|> Comment faire pour qu'il me renvoi la couleur de la
|> table "TCouleur2" que j'ai ouvert avec OpenRecordset()?


Vercheres QC Canada
Avatar
3stone
Bonjour,

"Michel Pellegrini"
J'ai de la difficulté à comprendre cette histoire
de DAO et l'autre terme dans le même genre.



DAO (Microsoft Data X.xx Object Library)

et

ADO (Microsoft ActiveX Data Object X.xx Library)

=> X.xx représente le numéro des différentes versions...

sont 2 méthodes d'accés aux données.
La disponibilité de ces deux méthodes est liée au références activées.

Access 97 utilise par défaut DAO, mais, à partir de Access 2000
et suivants, Access utilise ADO par défaut.

Les deux méthodes connaissent par exemple l'objet "Recordset"
Une base exécutée sur Access 97 va vouloir utiliser le DAO.Recordset,
alors que, la même base sur Access 2000+ va vouloir utiliser
le ADODB.Recordset

Avec les suites que l'on devinne...

La méconnaissance de ces 2 méthodes d'accès aux données
est à la base de la plupart des "bugs" reprochés par les débutants
et est à l'origine de ces phrases moultes fois lues ici:

"Ma base marche bien sur Access 97, mais, fait des bugs... ou n'est
pas compatible... avec Access 2000"


Cela est totalement évité lorsque, dès le départ, tu désigne la méthode
que tu mets en oeuvre, DAO ou ADO !

Ensuite, il reste à cocher la bonne référence via le menu
Outils, Références... a partir de l'éditeur VBA ( ALT + F11 )



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------