OVH Cloud OVH Cloud

Passer un recordsource de formulaire en ADO

6 réponses
Avatar
Yann47
Je passe des application Access en ADO et je sèche pour pour établir un
recordsource de sous-formulaire en ADO.
Aprés déclarations et connection correctes, j'ai
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour
RstAdo.Open StrSql, CnnAdo, adOpenKeyset, adLockPessimistic, adCmdText
Pas de problème,mais comment opérer pour attribuer le recordsource à :
[Form_Recherche sous-formulaire].RecordSource = RstAdo?

Merci.

6 réponses

Avatar
Rv
Salut,

Je pense que la propriété RecordSource contient juste un texte SQL ou un
nom de table ou un nom de requête et n'est donc pas liée à un environnement
DAO ou ADO. Pour manipuler un recordset il faut utiliser la propriété
Recordset du formulaire.

A+

Rv

"Yann47" a écrit dans le message de
news:
Je passe des application Access en ADO et je sèche pour pour établir un
recordsource de sous-formulaire en ADO.
Aprés déclarations et connection correctes, j'ai
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour
RstAdo.Open StrSql, CnnAdo, adOpenKeyset, adLockPessimistic, adCmdText
Pas de problème,mais comment opérer pour attribuer le recordsource à :
[Form_Recherche sous-formulaire].RecordSource = RstAdo?

Merci.



Avatar
Yann47
Salut Rv
Oui, mais si j'attibue StrSql au recordsource du formulaire, j'ai un message
d'erreur et c'est normal puisque la table utilisée par StrSql se trouve sur
la Mdb de la connection(Base distante) et que la table utilisée n'est pas
dans la base ou je travaille.
J'ai vu une solution sur le net,mais je ne la retrouve pas!

"Rv" wrote:

Salut,

Je pense que la propriété RecordSource contient juste un texte SQL ou un
nom de table ou un nom de requête et n'est donc pas liée à un environnement
DAO ou ADO. Pour manipuler un recordset il faut utiliser la propriété
Recordset du formulaire.

A+

Rv

"Yann47" a écrit dans le message de
news:
Je passe des application Access en ADO et je sèche pour pour établir un
recordsource de sous-formulaire en ADO.
Aprés déclarations et connection correctes, j'ai
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour
RstAdo.Open StrSql, CnnAdo, adOpenKeyset, adLockPessimistic, adCmdText
Pas de problème,mais comment opérer pour attribuer le recordsource à :
[Form_Recherche sous-formulaire].RecordSource = RstAdo?

Merci.








Avatar
Rv
Salut Yann,

Alors je vois 3 possibilités:
- Créer des tables liées sur la base distante. Puis utiliser la
propriété RecordSource normalement : le plus classique!
- Utiliser une requête de type "SELECT .... FROM ... IN 'Le
chemin complet de la base distante' ... WHERE ..." dans la propriété
RecordSource. C'est la même idée mais sans table attachée!
- Créer un recordset ADO ou DAO et l'affecter à la propriété
Recordset du formulaire: Je crois qu'en access2000 on ne peut pas modifier
les données via le formulaire tandis qu'en Access XP et 2003 on peut le
faire. A vérifier.

A+

Rv

"Yann47" a écrit dans le message de
news:
Salut Rv
Oui, mais si j'attibue StrSql au recordsource du formulaire, j'ai un
message

d'erreur et c'est normal puisque la table utilisée par StrSql se trouve
sur

la Mdb de la connection(Base distante) et que la table utilisée n'est pas
dans la base ou je travaille.
J'ai vu une solution sur le net,mais je ne la retrouve pas!

"Rv" wrote:

Salut,

Je pense que la propriété RecordSource contient juste un texte SQL
ou un


nom de table ou un nom de requête et n'est donc pas liée à un
environnement


DAO ou ADO. Pour manipuler un recordset il faut utiliser la propriété
Recordset du formulaire.

A+

Rv

"Yann47" a écrit dans le message de
news:
Je passe des application Access en ADO et je sèche pour pour établir
un



recordsource de sous-formulaire en ADO.
Aprés déclarations et connection correctes, j'ai
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour
RstAdo.Open StrSql, CnnAdo, adOpenKeyset, adLockPessimistic, adCmdText
Pas de problème,mais comment opérer pour attribuer le recordsource à :
[Form_Recherche sous-formulaire].RecordSource = RstAdo?

Merci.










Avatar
Yann47
Salut Rv
C'est OK avec le 2,j'avais complètement oculté la clause IN(pas l'habitude
des bases distantes.
Je migre aussi mes appis vers SQL Server,pourrais tu m'indiquer la manière
pour la même commande.
Merci

Alors je vois 3 possibilités:
- Créer des tables liées sur la base distante. Puis utiliser la
propriété RecordSource normalement : le plus classique!
- Utiliser une requête de type "SELECT .... FROM ... IN 'Le
chemin complet de la base distante' ... WHERE ..." dans la propriété
RecordSource. C'est la même idée mais sans table attachée!
- Créer un recordset ADO ou DAO et l'affecter à la propriété
Recordset du formulaire: Je crois qu'en access2000 on ne peut pas modifier
les données via le formulaire tandis qu'en Access XP et 2003 on peut le
faire. A vérifier.

A+

Rv

"Yann47" a écrit dans le message de
news:
Salut Rv
Oui, mais si j'attibue StrSql au recordsource du formulaire, j'ai un
message

d'erreur et c'est normal puisque la table utilisée par StrSql se trouve
sur

la Mdb de la connection(Base distante) et que la table utilisée n'est pas
dans la base ou je travaille.
J'ai vu une solution sur le net,mais je ne la retrouve pas!

"Rv" wrote:

Salut,

Je pense que la propriété RecordSource contient juste un texte SQL
ou un


nom de table ou un nom de requête et n'est donc pas liée à un
environnement


DAO ou ADO. Pour manipuler un recordset il faut utiliser la propriété
Recordset du formulaire.

A+

Rv

"Yann47" a écrit dans le message de
news:
Je passe des application Access en ADO et je sèche pour pour établir
un



recordsource de sous-formulaire en ADO.
Aprés déclarations et connection correctes, j'ai
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour
RstAdo.Open StrSql, CnnAdo, adOpenKeyset, adLockPessimistic, adCmdText
Pas de problème,mais comment opérer pour attribuer le recordsource à :
[Form_Recherche sous-formulaire].RecordSource = RstAdo?

Merci.















Avatar
Rv
Re,

Voir le post :
http://groups.google.fr/groups?hl=fr&lr=&threadm=uLGMVPcLEHA.3892%40TK2MSFTNGP11.phx.gbl&rnum=3&prev=/groups%3Fhl%3Dfr%26lr%3D%26q%3Drv%2Bsql%2Bserver%26btnG%3DRechercher%26meta%3Dgroup%253Dmicrosoft.public.fr.access.

Comme je l'indiquais au moment de ce post, tout retour de connaissances
sera le bienvenu.

A+

Rv


"Yann47" a écrit dans le message de
news:
Salut Rv
C'est OK avec le 2,j'avais complètement oculté la clause IN(pas l'habitude
des bases distantes.
Je migre aussi mes appis vers SQL Server,pourrais tu m'indiquer la manière
pour la même commande.
Merci

Alors je vois 3 possibilités:
- Créer des tables liées sur la base distante. Puis utiliser
la


propriété RecordSource normalement : le plus classique!
- Utiliser une requête de type "SELECT .... FROM ... IN 'Le
chemin complet de la base distante' ... WHERE ..." dans la propriété
RecordSource. C'est la même idée mais sans table attachée!
- Créer un recordset ADO ou DAO et l'affecter à la propriété
Recordset du formulaire: Je crois qu'en access2000 on ne peut pas
modifier


les données via le formulaire tandis qu'en Access XP et 2003 on peut le
faire. A vérifier.

A+

Rv

"Yann47" a écrit dans le message de
news:
Salut Rv
Oui, mais si j'attibue StrSql au recordsource du formulaire, j'ai un
message

d'erreur et c'est normal puisque la table utilisée par StrSql se
trouve



sur
la Mdb de la connection(Base distante) et que la table utilisée n'est
pas



dans la base ou je travaille.
J'ai vu une solution sur le net,mais je ne la retrouve pas!

"Rv" wrote:

Salut,

Je pense que la propriété RecordSource contient juste un texte
SQL




ou un
nom de table ou un nom de requête et n'est donc pas liée à un
environnement


DAO ou ADO. Pour manipuler un recordset il faut utiliser la
propriété




Recordset du formulaire.

A+

Rv

"Yann47" a écrit dans le message
de




news:
Je passe des application Access en ADO et je sèche pour pour
établir





un
recordsource de sous-formulaire en ADO.
Aprés déclarations et connection correctes, j'ai
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour
RstAdo.Open StrSql, CnnAdo, adOpenKeyset, adLockPessimistic,
adCmdText





Pas de problème,mais comment opérer pour attribuer le recordsource
à :





[Form_Recherche sous-formulaire].RecordSource = RstAdo?

Merci.

















Avatar
Yann47
Pour info voici le résultat :
Private Sub Form_Open(Cancel As Integer)
.......déclaration connection
Cmd.ActiveConnection = Cnn
StrInConn = " IN 'C:Documents and SettingsYguenandPersonnelAccess
2002
Nira.mdb'"
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour
End Sub
Private Sub ListeFichiers_AfterUpdate()
Rst.CursorLocation = adUseClient
Rst.Open StrSql, Cnn, adOpenStatic, adLockPessimistic, adCmdText
Le Rst est la pour compter le Nb d'enregistrements, je ne sais pas faire sur
un SELECT
If Rst.EOF Or Rst.BOF Then
End If
StrSql = "SELECT " & FichierJour & ".* FROM " & FichierJour & StrInConn
If Len(Filtre(1)) = 0 And Len(Filtre(2)) > 0 Then StrFiltre = "WHERE "
& FichierJour & ".MESSAGE='" & Filtre(2) & "'"
StrSql = StrSql & StrInConn & StrFiltre
[Form_Recherche sous-formulaire].RecordSource = StrSql

Merci.





Re,

Voir le post :
http://groups.google.fr/groups?hl=fr&lr=&threadm=uLGMVPcLEHA.3892%40TK2MSFTNGP11.phx.gbl&rnum=3&prev=/groups%3Fhl%3Dfr%26lr%3D%26q%3Drv%2Bsql%2Bserver%26btnG%3DRechercher%26meta%3Dgroup%253Dmicrosoft.public.fr.access.

Comme je l'indiquais au moment de ce post, tout retour de connaissances
sera le bienvenu.