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") "
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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") "
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
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
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") "
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.
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
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") "
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
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") "
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
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$1@biggoron.nerim.net...
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") "
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.
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") "
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
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") "
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
Merci "michdenis" et eric j'utilise en effet un odbc et vais donc passer
par une feuille de calcul intermédiaire
Serge
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uf13pue4EHA.3236@TK2MSFTNGP15.phx.gbl...
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$1@biggoron.nerim.net...
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") "
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") "