OVH Cloud OVH Cloud

DAO implicite et explicite

4 réponses
Avatar
YannX
Bnjr,

J'ai une question simpliste, mais....où trouver la réponse ?

Quand je bâtis un formulaire basé sur une table, je traite
implicitement en DAO une Database et un RecordSet !
Comment les atteindre dans ma form ?
facile.....> Me.RecordSet.Clone !

maintenant, si je ne base pas mon formulaire sur une table,
bien que j'utilise cette table dans une ComboListe ?
Et en plus, si je veux aller chercher par une table liée ?

Comment récupérer la DB ? le RS correspondant à ma table ?

Y a-t-il plus simple que de passer par les Collections
Databases(0) ou autre index ?????

merci de vos suggestions !
YannX

4 réponses

Avatar
Raymond [mvp]
Bonjour.

je pense qu'il faut faire simple.
1- déclarer un recordset : Dim Rs as DAO.Recordset
2- tu veux que ton recordset soit le recordset de ton formulaire: set Rs =
Me.Recordset
3- tu veux baser ton recordset sur une table ou une requête :
set Rs = Currentdb.Openrecordset("table1")
set Rs = CurrentDb.openrecordset("Select * from table1")

tu peu remplacer currentdb par un objet DB déclaré en set DB = Currentdb
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"YannX" a écrit dans le message de news:
%
Bnjr,

J'ai une question simpliste, mais....où trouver la réponse ?

Quand je bâtis un formulaire basé sur une table, je traite
implicitement en DAO une Database et un RecordSet !
Comment les atteindre dans ma form ?
facile.....> Me.RecordSet.Clone !

maintenant, si je ne base pas mon formulaire sur une table,
bien que j'utilise cette table dans une ComboListe ?
Et en plus, si je veux aller chercher par une table liée ?

Comment récupérer la DB ? le RS correspondant à ma table ?

Y a-t-il plus simple que de passer par les Collections
Databases(0) ou autre index ?????

merci de vos suggestions !
YannX




Avatar
YannX
"YannX" a écrit dans le message de
news:%
Bnjr,

J'ai une question simpliste, mais....où trouver la réponse ?

Quand je bâtis un formulaire basé sur une table, je traite
implicitement en DAO une Database et un RecordSet !
Comment les atteindre dans ma form ?
facile.....> Me.RecordSet.Clone !

maintenant, si je ne base pas mon formulaire sur une table,
bien que j'utilise cette table dans une ComboListe ?
Et en plus, si je veux aller chercher par une table liée ?

Comment récupérer la DB ? le RS correspondant à ma table ?
CurrentDB. (?)




Y a-t-il plus simple que de passer par les Collections
Databases(0) ou autre index ?????

merci de vos suggestions !
YannX




Avatar
YannX
Bnjr,

Merci pour la reponse rapide !
Ma difficulté = trouver un point de départ
pour rechercher.....
@+

Y

PS. D'ailleurs, voila la page qui m'a aiguillé :
http://officesystem.access.free.fr/ex_base_mde.htm
avec celle-ci pour m'embeter d'abord ;-)
"Générateur simple de code DAO"


J'en profite pour signaler une erreur 404 en appelant
http://officesystem.access.free.fr/utilisateursencours.htm
appelée par http://officesystem.access.free.fr/ex_userslist.htm Dans cette
base vous n'avez rien de plus que les fonctions décrites dans les pages
utilisateurs en cours et ...

"YannX" a écrit dans le message de
news:

"YannX" a écrit dans le message de
news:%
Bnjr,

J'ai une question simpliste, mais....où trouver la réponse ?

Quand je bâtis un formulaire basé sur une table, je traite
implicitement en DAO une Database et un RecordSet !
Comment les atteindre dans ma form ?
facile.....> Me.RecordSet.Clone !

maintenant, si je ne base pas mon formulaire sur une table,
bien que j'utilise cette table dans une ComboListe ?
Et en plus, si je veux aller chercher par une table liée ?

Comment récupérer la DB ? le RS correspondant à ma table ?
CurrentDB. (?)




Y a-t-il plus simple que de passer par les Collections
Databases(0) ou autre index ?????

merci de vos suggestions !
YannX








Avatar
Raymond [mvp]
un premier exemple :
un recordset basé sur une requête:
Public Sub DAOSequence()
Dim Db As Dao.Database
Dim Rs As Dao.RecordSet
Dim strSql As String
strSql = "Select * from table1"
Set Db = Currentdb
Set Rs = Db.OpenRecordset(strSql)
If Rs.BOF Then GoTo Exit_Sub
Do Until Rs.EOF
debug.Print Rs.Fields("numéro")
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
Set Db = Nothing
End Sub

un 2e exemple : un recordset basé sur le formulaire en cours
Public Sub DAOSequence()
Dim Rs As Dao.RecordSet
Set Rs = Me.RecordSet
If Rs.BOF Then GoTo Exit_Sub
Rs.MoveFirst
Do Until Rs.EOF
Debug.Print Rs.Fields("numéro")
Rs.MoveNext
Loop
Exit_Sub:
Set Rs = Nothing
End Sub

tu fais un essai et tu compares.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"YannX" a écrit dans le message de news:

Bnjr,

Merci pour la reponse rapide !
Ma difficulté = trouver un point de départ
pour rechercher.....
@+

Y