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

Remplir un formulaire

3 réponses
Avatar
Serge
Bonjour,

J'ai réalisé un formulaire (UserForm) Fiche Client avec des champs TexBox.
Mes données sont dans une base SQL Serveur.
Je souhaite remplir les champs nom, prénom, adresses, .... de mon
formulaire à l'aide
d'1 requête SQL

Sub RemplirFormulaire()
ReqFicheClient = "SELECT Client.Id, Client.RaisonSociale, .... FROM Client
INNER JOIN .... WHERE Client.Id = "Toto") "

connstring = "ODBC;DSN=odbc_base;UID=xxxxx;PWD=yyy;Database=VENTE"

A partir de là je sèche ..............
Comment remplir le champs NOM de mon formulaire avec le champs Client.Id par
exemple ?
Mon problème est le passage de l'exécution de la requête vers l'affichage
dans un formulaire.

Merci de votre aide

3 réponses

Avatar
Eric
Bonjour Serge,

En DAO, je ferai comme suit, si les TextBox sont nommées TextBox1,
TextBox2, TextBox3 et en supposant que le recordset n'a qu'un seul
enregistrement :

Private Sub CommandButton1_Click()
Call RemplirForm
End Sub

Sub RemplirForm()
Dim bd As DAO.Database, strSQL As String, rst As DAO.Recordset
Set bd = OpenDatabase("c:bd1.mdb")
' SQL pour l'exemple
strSQL = "Select Societe_client, contact_client, ville_client from
tclient where IDClient=1;"
Set rst = bd.OpenRecordset(strSQL)
For i = 0 To 2 ' 3 champs dans le recordset
Controls("textbox" & i + 1) = rst(i)
Next i
rst.Close
Set rst = Nothing
Set bd = Nothing
End Sub

Je suppose que tu dois passer par ADO, donc déclarer un ADODB.Recordset

A+
Eric

"Serge" <serge.g8[NO-SPAM]@laposte.net> écrivait
news:cpmnd8$1iq3$:

Bonjour,

J'ai réalisé un formulaire (UserForm) Fiche Client avec des champs
TexBox. Mes données sont dans une base SQL Serveur.
Je souhaite remplir les champs nom, prénom, adresses, .... de mon
formulaire à l'aide
d'1 requête SQL

Sub RemplirFormulaire()
ReqFicheClient = "SELECT Client.Id, Client.RaisonSociale, .... FROM
Client INNER JOIN .... WHERE Client.Id = "Toto") "

connstring = "ODBC;DSN=odbc_base;UID=xxxxx;PWD=yyy;Database=VENTE"

A partir de là je sèche ..............
Comment remplir le champs NOM de mon formulaire avec le champs
Client.Id par exemple ?
Mon problème est le passage de l'exécution de la requête vers
l'affichage dans un formulaire.

Merci de votre aide






Avatar
michdenis
Bonjour Serge,

Si tu utilises un lien ODBC, je ne vois pas comment tu peux faire si tu ne passes pas par la réception du résultat de ta
requête dans une plage de cellules. De là, Tu ajoutes quelques lignes de code à la fin de l'exécution du code pour
transférer les données reçues dans la plage de cellules de la feuille de calcul vers les champs de ton formulaire.

Si c'est possible de passer une requête pour définir les valeurs retournées, je ne crois pas que l'on puisse manier "un
recordset" sans passer par l'intermédiaire d'une feuille de calcul. Avec ADO ou DAO, il est possible de créer un
recordset et à partir de celui-ci extraire les valeurs désirées.

Voici un exemple avec ODBC :
'----------------------------------
Sub ImportAccessFromExcel()

'Pour obtenir une connexion avec une base de donnée
'Excel, Access ou .... avec ODBC

'Établir la connexion via le panneau de configuration.

Dim connstring As String
Dim sqlstr As String

sqlstr = "SELECT Client.Id, Client.RaisonSociale, .... FROM Client
INNER JOIN .... WHERE Client.Id = "Toto") "

'chaine de connection
connstring = _
"ODBC;DSN=odbc_base;UID=xxxxx;PWD=yyy;Database=VENTE"

With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:¬tiveCell, Sql:=sqlstr)
.FieldNames = False
'les noms de champ de la source de données
'n'apparaissent pas en en-tête de colonnes
.BackgroundQuery = False 'La macro attend la fin du transfert.
.Refresh
End With

'Et tu peux ajouter quelques lignes pour transférer le résultat
'vers tes textbox.
Userform1.textbox1 = range("A1")
' etc...
End Sub
'----------------------------------


Salutations!




"Serge" <serge.g8[NO-SPAM]@laposte.net> a écrit dans le message de news: cpmnd8$1iq3$
Bonjour,

J'ai réalisé un formulaire (UserForm) Fiche Client avec des champs TexBox.
Mes données sont dans une base SQL Serveur.
Je souhaite remplir les champs nom, prénom, adresses, .... de mon
formulaire à l'aide
d'1 requête SQL

Sub RemplirFormulaire()
ReqFicheClient = "SELECT Client.Id, Client.RaisonSociale, .... FROM Client
INNER JOIN .... WHERE Client.Id = "Toto") "

connstring = "ODBC;DSN=odbc_base;UID=xxxxx;PWD=yyy;Database=VENTE"

A partir de là je sèche ..............
Comment remplir le champs NOM de mon formulaire avec le champs Client.Id par
exemple ?
Mon problème est le passage de l'exécution de la requête vers l'affichage
dans un formulaire.

Merci de votre aide
Avatar
Serge
Merci "michdenis" et eric j'utilise en effet un odbc et vais donc passer
par une feuille de calcul intermédiaire

Serge


"michdenis" a écrit dans le message de
news:
Bonjour Serge,

Si tu utilises un lien ODBC, je ne vois pas comment tu peux faire si tu ne
passes pas par la réception du résultat de ta

requête dans une plage de cellules. De là, Tu ajoutes quelques lignes de
code à la fin de l'exécution du code pour

transférer les données reçues dans la plage de cellules de la feuille de
calcul vers les champs de ton formulaire.


Si c'est possible de passer une requête pour définir les valeurs
retournées, je ne crois pas que l'on puisse manier "un

recordset" sans passer par l'intermédiaire d'une feuille de calcul. Avec
ADO ou DAO, il est possible de créer un

recordset et à partir de celui-ci extraire les valeurs désirées.

Voici un exemple avec ODBC :
'----------------------------------
Sub ImportAccessFromExcel()

'Pour obtenir une connexion avec une base de donnée
'Excel, Access ou .... avec ODBC

'Établir la connexion via le panneau de configuration.

Dim connstring As String
Dim sqlstr As String

sqlstr = "SELECT Client.Id, Client.RaisonSociale, .... FROM Client
INNER JOIN .... WHERE Client.Id = "Toto") "

'chaine de connection
connstring = _
"ODBC;DSN=odbc_base;UID=xxxxx;PWD=yyy;Database=VENTE"

With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:¬tiveCell, Sql:=sqlstr)
.FieldNames = False
'les noms de champ de la source de données
'n'apparaissent pas en en-tête de colonnes
.BackgroundQuery = False 'La macro attend la fin du transfert.
.Refresh
End With

'Et tu peux ajouter quelques lignes pour transférer le résultat
'vers tes textbox.
Userform1.textbox1 = range("A1")
' etc...
End Sub
'----------------------------------


Salutations!




"Serge" <serge.g8[NO-SPAM]@laposte.net> a écrit dans le message de news:
cpmnd8$1iq3$

Bonjour,

J'ai réalisé un formulaire (UserForm) Fiche Client avec des champs
TexBox.

Mes données sont dans une base SQL Serveur.
Je souhaite remplir les champs nom, prénom, adresses, .... de mon
formulaire à l'aide
d'1 requête SQL

Sub RemplirFormulaire()
ReqFicheClient = "SELECT Client.Id, Client.RaisonSociale, .... FROM Client
INNER JOIN .... WHERE Client.Id = "Toto") "

connstring = "ODBC;DSN=odbc_base;UID=xxxxx;PWD=yyy;Database=VENTE"

A partir de là je sèche ..............
Comment remplir le champs NOM de mon formulaire avec le champs Client.Id
par

exemple ?
Mon problème est le passage de l'exécution de la requête vers l'affichage
dans un formulaire.

Merci de votre aide