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

Remplir un formulaire lors de son ouverture

9 réponses
Avatar
nunurs
Bonjour,
je souhaite remplir un formulaires lors de son ouverture avec des données
présentes dans ma bd. Je n'arrive pas à trouver le bon évènement pour cela.
J'ai testé les évènements Load, Open mais sans succès...

9 réponses

Avatar
Patrice
bonjour,

Pourquoi ne pas baser ton formumaire sur une requête qui prends les champs
dont tu as besoin ?


Bonjour,
je souhaite remplir un formulaires lors de son ouverture avec des données
présentes dans ma bd. Je n'arrive pas à trouver le bon évènement pour cela.
J'ai testé les évènements Load, Open mais sans succès...


Avatar
nunurs
sachant que j'ai besoin de quasiment tous les champs de ma BD (il s'agit d'un
formulaire de modification de données), je ne pense pas que faire une méga
requête avec des méga jointures soit le plus approprié en fait...


bonjour,

Pourquoi ne pas baser ton formumaire sur une requête qui prends les champs
dont tu as besoin ?


Bonjour,
je souhaite remplir un formulaires lors de son ouverture avec des données
présentes dans ma bd. Je n'arrive pas à trouver le bon évènement pour cela.
J'ai testé les évènements Load, Open mais sans succès...




Avatar
nunurs
Voici un petit bout de code:

Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst_rempli As New ADODB.Recordset

cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "blabla"
cnx.Open

init_id_produit 'Fonction de récup id_produit

SQL = "SELECT * FROM Produit WHERE id_produit = " & id_produit & ";"
Set rst = Nothing
rst.Open SQL, cnx

Me.txt_produit = rst("nom_produit")
Me.txt_MFG = rst("code_MFG")
Me.txt_fds = rst("feuille_secu")

Cependant rien ne s'affiche dans mes contrôles pourtant le recordset n'est
pas vide alors je me demande si j'utilise bien le bon évènement.
Avatar
Eric
Bonjour,

Le 'Set rst = Nothing' ne serait-il pas mal positionné ?
Personnellement, je le mettrai à la fin. Puis il faudrait le parcourir
pour pouvoir renseigner les champs.

Voici un petit bout de code:

Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst_rempli As New ADODB.Recordset

cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "blabla"
cnx.Open

init_id_produit 'Fonction de récup id_produit

SQL = "SELECT * FROM Produit WHERE id_produit = " & id_produit & ";"
Set rst = Nothing
rst.Open SQL, cnx

Me.txt_produit = rst("nom_produit")
Me.txt_MFG = rst("code_MFG")
Me.txt_fds = rst("feuille_secu")

Cependant rien ne s'affiche dans mes contrôles pourtant le recordset n'est
pas vide alors je me demande si j'utilise bien le bon évènement.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
.../...
Puis il faudrait le parcourir pour pouvoir renseigner les champs.
Inutile, je n'avais pas lu la clause Where du SQL.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
nunurs
Le 'Set rst = Nothing' ne serait-il pas mal positionné ?
Peu importe à ce niveau là, vu que je fais mon Open juste derrière.

C'est juste une habitude que j'ai prise de toujours faire un set nothing
avant tout Open sur un recorset :o)

J'ai essayé avec les évènements : sur ouverture, sur chargement, sur
activation.
Rien ne s'affiche pourtant mon recorset n'est pas vide.


Bonjour,

Le 'Set rst = Nothing' ne serait-il pas mal positionné ?
Personnellement, je le mettrai à la fin. Puis il faudrait le parcourir
pour pouvoir renseigner les champs.

Voici un petit bout de code:

Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rst_rempli As New ADODB.Recordset

cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "blabla"
cnx.Open

init_id_produit 'Fonction de récup id_produit

SQL = "SELECT * FROM Produit WHERE id_produit = " & id_produit & ";"
Set rst = Nothing
rst.Open SQL, cnx

Me.txt_produit = rst("nom_produit")
Me.txt_MFG = rst("code_MFG")
Me.txt_fds = rst("feuille_secu")

Cependant rien ne s'affiche dans mes contrôles pourtant le recordset n'est
pas vide alors je me demande si j'utilise bien le bon évènement.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
nunurs
Je peux toujours grugé avec l'évènement Sur activé... mais cela remplira les
champs à chaque fois que le focus sera sur le formulaire....
Avec Sur Activé les champs se remplissent bien, mais le fonctionnement n'est
pas très satisfaisant.
Avatar
Eric
re,

Avec un formulaire indépendant contenant 2 zones de texte Texte0 et
Texte2, ce code me renseigne bien les 2 contrôles.

Private Sub Form_Load()
Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
cnx.Provider = "Microsoft.Jet.OLEDB.4.0"
cnx.ConnectionString = ";Data Source=" & CurrentProject.FullName
cnx.Open
strSQL = "select * from tclient where numclient=1"
rst.Open strSQL, cnx
Me.Texte0 = rst(1)
Me.Texte2 = rst(2)
Set rst = Nothing
cnx.Close
Set cnx = Nothing
End Sub

Le 'Set rst = Nothing' ne serait-il pas mal positionné ?
Peu importe à ce niveau là, vu que je fais mon Open juste derrière.

C'est juste une habitude que j'ai prise de toujours faire un set nothing
avant tout Open sur un recorset :o)

J'ai essayé avec les évènements : sur ouverture, sur chargement, sur
activation.
Rien ne s'affiche pourtant mon recorset n'est pas vide.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
nunurs
hmmm pas très différent de ce que je propose xD
Enfin je vais essayer de me dépatouiller...
Merci :-D


re,

Avec un formulaire indépendant contenant 2 zones de texte Texte0 et
Texte2, ce code me renseigne bien les 2 contrôles.

Private Sub Form_Load()
Dim cnx As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
cnx.Provider = "Microsoft.Jet.OLEDB.4.0"
cnx.ConnectionString = ";Data Source=" & CurrentProject.FullName
cnx.Open
strSQL = "select * from tclient where numclient=1"
rst.Open strSQL, cnx
Me.Texte0 = rst(1)
Me.Texte2 = rst(2)
Set rst = Nothing
cnx.Close
Set cnx = Nothing
End Sub

Le 'Set rst = Nothing' ne serait-il pas mal positionné ?
Peu importe à ce niveau là, vu que je fais mon Open juste derrière.

C'est juste une habitude que j'ai prise de toujours faire un set nothing
avant tout Open sur un recorset :o)

J'ai essayé avec les évènements : sur ouverture, sur chargement, sur
activation.
Rien ne s'affiche pourtant mon recorset n'est pas vide.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr