Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation de données d'un Recordset pour un formulaire non lié

5 réponses
Avatar
franco
Bonjour,
Je voulais savoir s'il existe un moyen de "remplir" un formulaire continu
(non lié) avec des données issues d'un Recordset.
J'arrive à remplir une liste, mais pas un formulaire. Dans mon formulaire,
en utilisant p.ex. Me.ID = RS("ID") il me remplit certes le champ ID, mais
uniquement le premier record. Comment faire pour passer toutes les données du
Recordset dans mon formulaire.

Merci d'avance

5 réponses

Avatar
3stone
Salut,

"franco"
| Je voulais savoir s'il existe un moyen de "remplir" un formulaire continu
| (non lié) avec des données issues d'un Recordset.
| J'arrive à remplir une liste, mais pas un formulaire. Dans mon formulaire,
| en utilisant p.ex. Me.ID = RS("ID") il me remplit certes le champ ID, mais
| uniquement le premier record. Comment faire pour passer toutes les données du
| Recordset dans mon formulaire.


Ton recordset, il suffit que tu l'attribue à la source de ton formulaire en mode continu.

Le problème, c'est que si le formulaire n'est pas "préparé", les zonnes de texte
n'aurons pas la source qui convient.
Il faudrait alors boucler sur les champs du recordset et attribuer chaque champ
à une zone de texte !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
franco
Bonjour et merci,

effectivement si le formulaire est "préparé", ça fonctionne, mais comment
faire si les champs dans les formulaires sont "unbound" ?

Merci d'avance


Salut,

"franco"
| Je voulais savoir s'il existe un moyen de "remplir" un formulaire continu
| (non lié) avec des données issues d'un Recordset.
| J'arrive à remplir une liste, mais pas un formulaire. Dans mon formulaire,
| en utilisant p.ex. Me.ID = RS("ID") il me remplit certes le champ ID, mais
| uniquement le premier record. Comment faire pour passer toutes les données du
| Recordset dans mon formulaire.


Ton recordset, il suffit que tu l'attribue à la source de ton formulaire en mode continu.

Le problème, c'est que si le formulaire n'est pas "préparé", les zonnes de texte
n'aurons pas la source qui convient.
Il faudrait alors boucler sur les champs du recordset et attribuer chaque champ
à une zone de texte !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
Salut,

"franco"
| effectivement si le formulaire est "préparé", ça fonctionne, mais comment
| faire si les champs dans les formulaires sont "unbound" ?


Disons que ton recordset soit déclaré par :

Set rst = CurrentDb.OpenRecordset("Select ....", dbOpenDynaset)

et que tes zones de texte indépendante soit nommée T0, T1, T2.... Tn
alors tu fait sur chargement :

Dim intIndex as interger

With rst
For intIndex = 0 To .Fields.Count - 1
Me.Controls("T" & intIndex ).ControlSource = .Fields(intIndex).Name
Next
End With

avant cela tu aura assigné ton recordset comme source du formulaire

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
franco
Bonjour et merci...

Ca fonctionne, sauf que je ne peux "rappatrier", c'est-à-dire n'afficher
qu'un seule ligne. Comment faire pour afficher tous les records ?

Merci d'avance


Salut,

"franco"
| effectivement si le formulaire est "préparé", ça fonctionne, mais comment
| faire si les champs dans les formulaires sont "unbound" ?


Disons que ton recordset soit déclaré par :

Set rst = CurrentDb.OpenRecordset("Select ....", dbOpenDynaset)

et que tes zones de texte indépendante soit nommée T0, T1, T2.... Tn
alors tu fait sur chargement :

Dim intIndex as interger

With rst
For intIndex = 0 To .Fields.Count - 1
Me.Controls("T" & intIndex ).ControlSource = .Fields(intIndex).Name
Next
End With

avant cela tu aura assigné ton recordset comme source du formulaire

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/





Avatar
3stone
Salut,

"franco"
| Ca fonctionne, sauf que je ne peux "rappatrier", c'est-à-dire n'afficher
| qu'un seule ligne. Comment faire pour afficher tous les records ?


Tu n'aurais pas oublié de mettre ton formulaire en mode continu ?

;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/