Combobox excel avec une colonne d'une table runtime access
15 réponses
Gortex
Bonjour,
je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access
sur une machine sur la quel Access n'est pas installer
j' ai trouver ca
Const c_t_parm As String = "Prevision"
Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset
Set ACapp = New Access.Application
Set db = ACapp.DBEngine.OpenDatabase _
("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx")
Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset)
Do While Not rcontacts.EOF
ComboBox1.AddItem rcontacts![Societes intervenantes]
rcontacts.MoveNext
Loop
End Sub
Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access
vous avez une solution pour venir au secoure d'un débutant merci
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access
Normal le runtime ne permet pas de créer l'objet Access.Application.
vous avez une solution pour venir au secoure d'un débutant merci
Il va falloir utiliser un Recordset. J'ai pas trop le temps actuellement, télétravail oblige.
Bonjour,
Le 24/03/2020 à 05:50, Gortex a écrit :
Bonjour,
je souhaite charger une combobox dans userform excel avec une colonne d'une
table runtime Access
sur une machine sur la quel Access n'est pas installer
j' ai trouver ca
Const c_t_parm As String = "Prevision"
Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset
Set ACapp = New Access.Application
Set db = ACapp.DBEngine.OpenDatabase _
("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx")
Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset)
Do While Not rcontacts.EOF
ComboBox1.AddItem rcontacts![Societes intervenantes]
rcontacts.MoveNext
Loop
End Sub
Ca fonctionne très bien quant Access est installer mais pas avec le runtime
Access
Normal le runtime ne permet pas de créer l'objet Access.Application.
vous avez une solution pour venir au secoure d'un débutant merci
Il va falloir utiliser un Recordset.
J'ai pas trop le temps actuellement, télétravail oblige.
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access
Normal le runtime ne permet pas de créer l'objet Access.Application.
vous avez une solution pour venir au secoure d'un débutant merci
Il va falloir utiliser un Recordset. J'ai pas trop le temps actuellement, télétravail oblige.
gortex
Le mardi 24 Mars 2020 à 05:50 par Gortex :
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Bonjour ok merci j' attend votre retour quant vous pourrez m'accorder du temps car je souhaite me servir de cette combo box comme critère pour faire une sorte de rechercheV dans ma table access et récupérer la ligne trouver dans mes textbox de mon userform excel. Cordialement
Le mardi 24 Mars 2020 à 05:50 par Gortex :
> Bonjour,
> je souhaite charger une combobox dans userform excel avec une colonne d'une
> table runtime Access
> sur une machine sur la quel Access n'est pas installer
> j' ai trouver ca
>
> Const c_t_parm As String = "Prevision"
> Dim ACapp As Access.Application, db As DAO.Database, rcontacts As
> DAO.Recordset
> Set ACapp = New Access.Application
> Set db = ACapp.DBEngine.OpenDatabase _
> ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False,
> ";pwd=xxxx")
> Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset)
> Do While Not rcontacts.EOF
> ComboBox1.AddItem rcontacts![Societes intervenantes]
> rcontacts.MoveNext
> Loop
> End Sub
>
> Ca fonctionne très bien quant Access est installer mais pas avec le
> runtime Access
> vous avez une solution pour venir au secoure d'un débutant merci
Bonjour
ok merci j' attend votre retour quant vous pourrez m'accorder du temps
car je souhaite me servir de cette combo box comme critère pour
faire une sorte de rechercheV dans ma table access et récupérer la ligne trouver
dans mes textbox de mon userform excel.
Cordialement
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Bonjour ok merci j' attend votre retour quant vous pourrez m'accorder du temps car je souhaite me servir de cette combo box comme critère pour faire une sorte de rechercheV dans ma table access et récupérer la ligne trouver dans mes textbox de mon userform excel. Cordialement
MichD
Bonjour, Un exemple de code non testé : '----------------------------------------------- Sub Test() 'Tu dois ajouter la référence suivante au 'projetVBA de ton fichier Excel 'Fenêtre de l'éditeur de code 'Barre des menus / Outils / Références / 'Microsoft ActiveX Data Objects 2.8 Library Dim Conn As ADODB.Connection Dim Rst As New ADODB.Recordset Dim Source As String, Requete As String 'Chemin et nom du fichier access Source = "E:AccessNomFichier.accdb" Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.ACE.OLEDB.8.0;" & _ "Data Source=" & Source & ";" & _ "Extended Properties=""Excel 12.0;HDR=Yes"";" 'adapte la requête et le nom de la table "client" Requete = "SELECT * FROM Client ORDER BY nom_client" Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic If Rst.RecordCount > 0 Then 'Adapte le nom de la feuille de calcul où est le 'combobox 'Le combobox est un contrôle émanant de la barre 'outils "Contrôle Activex" et non-formulaire With Worksheets("Feuil1").ComboBox1 .ColumnCount = 1 .ColumnWidths = "100" .List = Application.Transpose(Rst.GetRows) End With Else Msgbox "Aucune donnée trouvée." End If End Sub '----------------------------------------------- MichD
Bonjour,
Un exemple de code non testé :
'-----------------------------------------------
Sub Test()
'Tu dois ajouter la référence suivante au
'projetVBA de ton fichier Excel
'Fenêtre de l'éditeur de code
'Barre des menus / Outils / Références /
'Microsoft ActiveX Data Objects 2.8 Library
Dim Conn As ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Source As String, Requete As String
'Chemin et nom du fichier access
Source = "E:AccessNomFichier.accdb"
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.ACE.OLEDB.8.0;" & _
"Data Source=" & Source & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes"";"
'adapte la requête et le nom de la table "client"
Requete = "SELECT * FROM Client ORDER BY nom_client"
Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
If Rst.RecordCount > 0 Then
'Adapte le nom de la feuille de calcul où est le
'combobox
'Le combobox est un contrôle émanant de la barre
'outils "Contrôle Activex" et non-formulaire
With Worksheets("Feuil1").ComboBox1
.ColumnCount = 1
.ColumnWidths = "100"
.List = Application.Transpose(Rst.GetRows)
End With
Else
Msgbox "Aucune donnée trouvée."
End If
End Sub
'-----------------------------------------------
Bonjour, Un exemple de code non testé : '----------------------------------------------- Sub Test() 'Tu dois ajouter la référence suivante au 'projetVBA de ton fichier Excel 'Fenêtre de l'éditeur de code 'Barre des menus / Outils / Références / 'Microsoft ActiveX Data Objects 2.8 Library Dim Conn As ADODB.Connection Dim Rst As New ADODB.Recordset Dim Source As String, Requete As String 'Chemin et nom du fichier access Source = "E:AccessNomFichier.accdb" Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.ACE.OLEDB.8.0;" & _ "Data Source=" & Source & ";" & _ "Extended Properties=""Excel 12.0;HDR=Yes"";" 'adapte la requête et le nom de la table "client" Requete = "SELECT * FROM Client ORDER BY nom_client" Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic If Rst.RecordCount > 0 Then 'Adapte le nom de la feuille de calcul où est le 'combobox 'Le combobox est un contrôle émanant de la barre 'outils "Contrôle Activex" et non-formulaire With Worksheets("Feuil1").ComboBox1 .ColumnCount = 1 .ColumnWidths = "100" .List = Application.Transpose(Rst.GetRows) End With Else Msgbox "Aucune donnée trouvée." End If End Sub '----------------------------------------------- MichD
gortex
Le mardi 24 Mars 2020 à 05:50 par Gortex :
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne et comment je peux récupéré les valeurs de la ligne du critere de la combobox dans mes textbox
Le mardi 24 Mars 2020 à 05:50 par Gortex :
> Bonjour,
> je souhaite charger une combobox dans userform excel avec une colonne d'une
> table runtime Access
> sur une machine sur la quel Access n'est pas installer
> j' ai trouver ca
>
> Const c_t_parm As String = "Prevision"
> Dim ACapp As Access.Application, db As DAO.Database, rcontacts As
> DAO.Recordset
> Set ACapp = New Access.Application
> Set db = ACapp.DBEngine.OpenDatabase _
> ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False,
> ";pwd=xxxx")
> Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset)
> Do While Not rcontacts.EOF
> ComboBox1.AddItem rcontacts![Societes intervenantes]
> rcontacts.MoveNext
> Loop
> End Sub
>
> Ca fonctionne très bien quant Access est installer mais pas avec le
> runtime Access
> vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne
et comment je peux récupéré les valeurs de la ligne du critere de la combobox dans mes textbox
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne et comment je peux récupéré les valeurs de la ligne du critere de la combobox dans mes textbox
MichD
Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne et comment je peux récupéré les valeurs de la ligne du critere de la combobox dans mes textbox
Bonjour, Exemple : Pour récupérer la ligne de la valeur choisit par l'usager Si le combobox est vide, rien ne se passe. Attention, cet exemple s'applique si le contenu du combobox est du texte Si ce combobox contient du numérique, il faut utiliser plutôt ceci : MsgBox Application.Match(clng(.Value), .List, 0) 'Pour les entiers OU MsgBox Application.Match(cdBl(.Value), .List, 0) 'nombre avec décimales '-------------------------------- Private Sub ComboBox1_Click() With Worksheets("Feuil1").ComboBox1 If .ListIndex > -1 Then MsgBox Application.Match(.Value, .List, 0) End If End With End Sub '-------------------------------- MichD
Ca fonctionne très bien quant Access est installer mais pas avec le
runtime Access
vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne
et comment je peux récupéré les valeurs de la ligne du critere de la combobox
dans mes textbox
Bonjour,
Exemple : Pour récupérer la ligne de la valeur choisit par l'usager
Si le combobox est vide, rien ne se passe.
Attention, cet exemple s'applique si le contenu du combobox est du texte
Si ce combobox contient du numérique, il faut utiliser plutôt ceci :
MsgBox Application.Match(clng(.Value), .List, 0) 'Pour les entiers
OU
MsgBox Application.Match(cdBl(.Value), .List, 0) 'nombre avec décimales
'--------------------------------
Private Sub ComboBox1_Click()
With Worksheets("Feuil1").ComboBox1
If .ListIndex > -1 Then
MsgBox Application.Match(.Value, .List, 0)
End If
End With
Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne et comment je peux récupéré les valeurs de la ligne du critere de la combobox dans mes textbox
Bonjour, Exemple : Pour récupérer la ligne de la valeur choisit par l'usager Si le combobox est vide, rien ne se passe. Attention, cet exemple s'applique si le contenu du combobox est du texte Si ce combobox contient du numérique, il faut utiliser plutôt ceci : MsgBox Application.Match(clng(.Value), .List, 0) 'Pour les entiers OU MsgBox Application.Match(cdBl(.Value), .List, 0) 'nombre avec décimales '-------------------------------- Private Sub ComboBox1_Click() With Worksheets("Feuil1").ComboBox1 If .ListIndex > -1 Then MsgBox Application.Match(.Value, .List, 0) End If End With End Sub '-------------------------------- MichD
MichD
Le 25/03/20 à 15:22, MichD a écrit :
Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne et comment je peux récupéré les valeurs de la ligne du critere de la combobox dans mes textbox
Bonjour, Exemple : Pour récupérer la ligne de la valeur choisit par l'usager Si le combobox est vide, rien ne se passe. Attention, cet exemple s'applique si le contenu du combobox est du texte Si ce combobox contient du numérique, il faut utiliser plutôt ceci : MsgBox Application.Match(clng(.Value), .List, 0) 'Pour les entiers OU MsgBox Application.Match(cdBl(.Value), .List, 0) 'nombre avec décimales
J'ai mal lu la question. Pour obtenir la valeur de chaque colonne de la ligne sélectionnée dans le combobox : Exemple : Pour un combobox contenant 3 colonnes, tu peux ajouter d'autres colonnes si nécessaire. '---------------------- Sub test() Dim A As String, B As String, C As String With Worksheets("Feuil1").ComboBox1 A = .List(.ListIndex, 0) B = .List(.ListIndex, 1) C = .List(.ListIndex, 2) End With End Sub '---------------------- MichD
Le 25/03/20 à 15:22, MichD a écrit :
Ca fonctionne très bien quant Access est installer mais pas avec le
runtime Access
vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne
et comment je peux récupéré les valeurs de la ligne du critere de la
combobox
dans mes textbox
Bonjour,
Exemple : Pour récupérer la ligne de la valeur choisit par l'usager
Si le combobox est vide, rien ne se passe.
Attention, cet exemple s'applique si le contenu du combobox est du texte
Si ce combobox contient du numérique, il faut utiliser plutôt ceci :
MsgBox Application.Match(clng(.Value), .List, 0) 'Pour les entiers
OU
MsgBox Application.Match(cdBl(.Value), .List, 0) 'nombre avec décimales
J'ai mal lu la question. Pour obtenir la valeur de chaque colonne de la
ligne sélectionnée dans le combobox :
Exemple : Pour un combobox contenant 3 colonnes, tu peux ajouter
d'autres colonnes si nécessaire.
'----------------------
Sub test()
Dim A As String, B As String, C As String
With Worksheets("Feuil1").ComboBox1
A = .List(.ListIndex, 0)
B = .List(.ListIndex, 1)
C = .List(.ListIndex, 2)
End With
End Sub
'----------------------
Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Ok merci ca fonctionne et comment je peux récupéré les valeurs de la ligne du critere de la combobox dans mes textbox
Bonjour, Exemple : Pour récupérer la ligne de la valeur choisit par l'usager Si le combobox est vide, rien ne se passe. Attention, cet exemple s'applique si le contenu du combobox est du texte Si ce combobox contient du numérique, il faut utiliser plutôt ceci : MsgBox Application.Match(clng(.Value), .List, 0) 'Pour les entiers OU MsgBox Application.Match(cdBl(.Value), .List, 0) 'nombre avec décimales
J'ai mal lu la question. Pour obtenir la valeur de chaque colonne de la ligne sélectionnée dans le combobox : Exemple : Pour un combobox contenant 3 colonnes, tu peux ajouter d'autres colonnes si nécessaire. '---------------------- Sub test() Dim A As String, B As String, C As String With Worksheets("Feuil1").ComboBox1 A = .List(.ListIndex, 0) B = .List(.ListIndex, 1) C = .List(.ListIndex, 2) End With End Sub '---------------------- MichD
gortex
Le mardi 24 Mars 2020 à 05:50 par Gortex :
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
On ne ses pas compris je travail sur un userform avec des textbox dans les quel je souhaite récupéré la ligne dans la table access qui corespond au critere recherché dans la combobox une colonne pour chaque textbox
Le mardi 24 Mars 2020 à 05:50 par Gortex :
> Bonjour,
> je souhaite charger une combobox dans userform excel avec une colonne d'une
> table runtime Access
> sur une machine sur la quel Access n'est pas installer
> j' ai trouver ca
>
> Const c_t_parm As String = "Prevision"
> Dim ACapp As Access.Application, db As DAO.Database, rcontacts As
> DAO.Recordset
> Set ACapp = New Access.Application
> Set db = ACapp.DBEngine.OpenDatabase _
> ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False,
> ";pwd=xxxx")
> Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset)
> Do While Not rcontacts.EOF
> ComboBox1.AddItem rcontacts![Societes intervenantes]
> rcontacts.MoveNext
> Loop
> End Sub
>
> Ca fonctionne très bien quant Access est installer mais pas avec le
> runtime Access
> vous avez une solution pour venir au secoure d'un débutant merci
On ne ses pas compris
je travail sur un userform avec des textbox dans les quel je souhaite récupéré la ligne dans la table access qui corespond au critere recherché dans la combobox
une colonne pour chaque textbox
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
On ne ses pas compris je travail sur un userform avec des textbox dans les quel je souhaite récupéré la ligne dans la table access qui corespond au critere recherché dans la combobox une colonne pour chaque textbox
MichD
Dans la procédure suivante, pour boucler sur tous les enregistrements du recordset et sur tous les champs de chaque recordset Tu ajoutes ceci après cette ligne de code If Rst.RecordCount > 0 Then Tu ajoutes cette variable Dim F As ADODB.Field Si ta requête retourne plusieurs enregistrements, tu dois choisir la méthode .Controls(combobox" & A).AddItem F.Value '---------------------------------------------- With Me While Not Rst.EOF For Each F In Rst.Fields A = A + 1 .Controls(combobox" & A).value = F.Value Next Rst.MoveNext Wend 'ou Loop End With J'ai supposé que toute liste des combobox avait ce préfixe "Combobox" suivi d'un index de 1 à x. '---------------------------------------------- '----------------------------------------------- Sub Test() 'Tu dois ajouter la référence suivante au 'projetVBA de ton fichier Excel 'Fenêtre de l'éditeur de code 'Barre des menus / Outils / Références / 'Microsoft ActiveX Data Objects 2.8 Library Dim Conn As ADODB.Connection Dim Rst As New ADODB.Recordset Dim Source As String, Requete As String 'Chemin et nom du fichier access Source = "E:AccessNomFichier.accdb" Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.ACE.OLEDB.8.0;" & _ "Data Source=" & Source & ";" & _ "Extended Properties=""Excel 12.0;HDR=Yes"";" 'adapte la requête et le nom de la table "client" Requete = "SELECT * FROM Client ORDER BY nom_client" Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic If Rst.RecordCount > 0 Then 'Adapte le nom de la feuille de calcul où est le 'combobox 'Le combobox est un contrôle émanant de la barre 'outils "Contrôle Activex" et non-formulaire With Worksheets("Feuil1").ComboBox1 .ColumnCount = 1 .ColumnWidths = "100" .List = Application.Transpose(Rst.GetRows) End With Else Msgbox "Aucune donnée trouvée." End If End Sub '-----------------------------------------------
Dans la procédure suivante, pour boucler sur tous les enregistrements du
recordset et sur tous les champs de chaque recordset
Tu ajoutes ceci après cette ligne de code
If Rst.RecordCount > 0 Then
Tu ajoutes cette variable
Dim F As ADODB.Field
Si ta requête retourne plusieurs enregistrements, tu dois choisir la
méthode .Controls(combobox" & A).AddItem F.Value
'----------------------------------------------
With Me
While Not Rst.EOF
For Each F In Rst.Fields
A = A + 1
.Controls(combobox" & A).value = F.Value
Next
Rst.MoveNext
Wend 'ou Loop
End With
J'ai supposé que toute liste des combobox avait ce préfixe "Combobox"
suivi d'un index de 1 à x.
'----------------------------------------------
'-----------------------------------------------
Sub Test()
'Tu dois ajouter la référence suivante au
'projetVBA de ton fichier Excel
'Fenêtre de l'éditeur de code
'Barre des menus / Outils / Références /
'Microsoft ActiveX Data Objects 2.8 Library
Dim Conn As ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Source As String, Requete As String
'Chemin et nom du fichier access
Source = "E:AccessNomFichier.accdb"
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.ACE.OLEDB.8.0;" & _
"Data Source=" & Source & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes"";"
'adapte la requête et le nom de la table "client"
Requete = "SELECT * FROM Client ORDER BY nom_client"
Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
If Rst.RecordCount > 0 Then
'Adapte le nom de la feuille de calcul où est le
'combobox
'Le combobox est un contrôle émanant de la barre
'outils "Contrôle Activex" et non-formulaire
With Worksheets("Feuil1").ComboBox1
.ColumnCount = 1
.ColumnWidths = "100"
.List = Application.Transpose(Rst.GetRows)
End With
Else
Msgbox "Aucune donnée trouvée."
End If
End Sub
'-----------------------------------------------
Dans la procédure suivante, pour boucler sur tous les enregistrements du recordset et sur tous les champs de chaque recordset Tu ajoutes ceci après cette ligne de code If Rst.RecordCount > 0 Then Tu ajoutes cette variable Dim F As ADODB.Field Si ta requête retourne plusieurs enregistrements, tu dois choisir la méthode .Controls(combobox" & A).AddItem F.Value '---------------------------------------------- With Me While Not Rst.EOF For Each F In Rst.Fields A = A + 1 .Controls(combobox" & A).value = F.Value Next Rst.MoveNext Wend 'ou Loop End With J'ai supposé que toute liste des combobox avait ce préfixe "Combobox" suivi d'un index de 1 à x. '---------------------------------------------- '----------------------------------------------- Sub Test() 'Tu dois ajouter la référence suivante au 'projetVBA de ton fichier Excel 'Fenêtre de l'éditeur de code 'Barre des menus / Outils / Références / 'Microsoft ActiveX Data Objects 2.8 Library Dim Conn As ADODB.Connection Dim Rst As New ADODB.Recordset Dim Source As String, Requete As String 'Chemin et nom du fichier access Source = "E:AccessNomFichier.accdb" Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.ACE.OLEDB.8.0;" & _ "Data Source=" & Source & ";" & _ "Extended Properties=""Excel 12.0;HDR=Yes"";" 'adapte la requête et le nom de la table "client" Requete = "SELECT * FROM Client ORDER BY nom_client" Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic If Rst.RecordCount > 0 Then 'Adapte le nom de la feuille de calcul où est le 'combobox 'Le combobox est un contrôle émanant de la barre 'outils "Contrôle Activex" et non-formulaire With Worksheets("Feuil1").ComboBox1 .ColumnCount = 1 .ColumnWidths = "100" .List = Application.Transpose(Rst.GetRows) End With Else Msgbox "Aucune donnée trouvée." End If End Sub '-----------------------------------------------
Michel__D
Bonjour, Le 25/03/2020 à 08:56, gortex a écrit :
Le mardi 24 Mars 2020 à 05:50 par Gortex :
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Bonjour ok merci j' attend votre retour quant vous pourrez m'accorder du temps car je souhaite me servir de cette combo box comme critère pour faire une sorte de rechercheV dans ma table access et récupérer la ligne trouver dans mes textbox de mon userform excel. Cordialement
Bon je vois que l'on t'a déjà donné des pistes voici un début de code qu'il faut adapter : Private Sub ComboBox1_Change() Dim oCnn As Object Dim oRst As Object Dim sCnn As String, sDB As String, sTxt As String Dim nEnr As Long If Me.ComboBox1.TextLength > 0 Then sDB = "TEST_.MDB" sCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & sDB & ";" Set oCnn = CreateObject("ADODB.Connection") oCnn.Open sCnn sTxt = "SELECT * FROM UneTable WHERE UnChamp Like '%" & Me.ComboBox1.Text & "%';" Set oRst = CreateObject("ADODB.recordset") oRst.Open sTxt, oCnn, 3, 3 nRet = oRst.RecordCount If nRet > 0 Then oRst.MoveFirst If Me.ComboBox1.Value = oRst.Fields("UnChamp") And nRet = Me.ComboBox1.ListCount Then Me.TextBox1.Value = oRst.Fields("ChampDeux") Me.TextBox2.Value = oRst.Fields("ChampTrois") Else Me.TextBox1.Value = "" Me.TextBox2.Value = "" sTxt = Me.ComboBox1.Value Me.ComboBox1.Clear Do Until oRst.EOF ComboBox1.AddItem oRst.Fields("UnChamp") oRst.MoveNext Loop Me.ComboBox1.Value = sTxt End If End If oRst.Close oCnn.Close End If Set oRst = Nothing Set oCnn = Nothing End Sub
Bonjour,
Le 25/03/2020 à 08:56, gortex a écrit :
Le mardi 24 Mars 2020 à 05:50 par Gortex :
Bonjour,
je souhaite charger une combobox dans userform excel avec une colonne d'une
table runtime Access
sur une machine sur la quel Access n'est pas installer
j' ai trouver ca
Const c_t_parm As String = "Prevision"
Dim ACapp As Access.Application, db As DAO.Database, rcontacts As
DAO.Recordset
Set ACapp = New Access.Application
Set db = ACapp.DBEngine.OpenDatabase _
("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False,
";pwd=xxxx")
Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset)
Do While Not rcontacts.EOF
ComboBox1.AddItem rcontacts![Societes intervenantes]
rcontacts.MoveNext
Loop
End Sub
Ca fonctionne très bien quant Access est installer mais pas avec le
runtime Access
vous avez une solution pour venir au secoure d'un débutant merci
Bonjour
ok merci j' attend votre retour quant vous pourrez m'accorder du temps
car je souhaite me servir de cette combo box comme critère pour
faire une sorte de rechercheV dans ma table access et récupérer la ligne trouver
dans mes textbox de mon userform excel.
Cordialement
Bon je vois que l'on t'a déjà donné des pistes voici un début de code qu'il faut adapter :
Private Sub ComboBox1_Change()
Dim oCnn As Object
Dim oRst As Object
Dim sCnn As String, sDB As String, sTxt As String
Dim nEnr As Long
If Me.ComboBox1.TextLength > 0 Then
sDB = "TEST_.MDB"
sCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & sDB & ";"
Set oCnn = CreateObject("ADODB.Connection")
oCnn.Open sCnn
sTxt = "SELECT * FROM UneTable WHERE UnChamp Like '%" & Me.ComboBox1.Text & "%';"
Set oRst = CreateObject("ADODB.recordset")
oRst.Open sTxt, oCnn, 3, 3
nRet = oRst.RecordCount
If nRet > 0 Then
oRst.MoveFirst
If Me.ComboBox1.Value = oRst.Fields("UnChamp") And nRet = Me.ComboBox1.ListCount Then
Me.TextBox1.Value = oRst.Fields("ChampDeux")
Me.TextBox2.Value = oRst.Fields("ChampTrois")
Else
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
sTxt = Me.ComboBox1.Value
Me.ComboBox1.Clear
Do Until oRst.EOF
ComboBox1.AddItem oRst.Fields("UnChamp")
oRst.MoveNext
Loop
Me.ComboBox1.Value = sTxt
End If
End If
oRst.Close
oCnn.Close
End If
Set oRst = Nothing
Set oCnn = Nothing
End Sub
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Bonjour ok merci j' attend votre retour quant vous pourrez m'accorder du temps car je souhaite me servir de cette combo box comme critère pour faire une sorte de rechercheV dans ma table access et récupérer la ligne trouver dans mes textbox de mon userform excel. Cordialement
Bon je vois que l'on t'a déjà donné des pistes voici un début de code qu'il faut adapter : Private Sub ComboBox1_Change() Dim oCnn As Object Dim oRst As Object Dim sCnn As String, sDB As String, sTxt As String Dim nEnr As Long If Me.ComboBox1.TextLength > 0 Then sDB = "TEST_.MDB" sCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & sDB & ";" Set oCnn = CreateObject("ADODB.Connection") oCnn.Open sCnn sTxt = "SELECT * FROM UneTable WHERE UnChamp Like '%" & Me.ComboBox1.Text & "%';" Set oRst = CreateObject("ADODB.recordset") oRst.Open sTxt, oCnn, 3, 3 nRet = oRst.RecordCount If nRet > 0 Then oRst.MoveFirst If Me.ComboBox1.Value = oRst.Fields("UnChamp") And nRet = Me.ComboBox1.ListCount Then Me.TextBox1.Value = oRst.Fields("ChampDeux") Me.TextBox2.Value = oRst.Fields("ChampTrois") Else Me.TextBox1.Value = "" Me.TextBox2.Value = "" sTxt = Me.ComboBox1.Value Me.ComboBox1.Clear Do Until oRst.EOF ComboBox1.AddItem oRst.Fields("UnChamp") oRst.MoveNext Loop Me.ComboBox1.Value = sTxt End If End If oRst.Close oCnn.Close End If Set oRst = Nothing Set oCnn = Nothing End Sub
gortex
Le mardi 24 Mars 2020 à 05:50 par Gortex :
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Bonjour merci ca ne fonctionne pas la combobox ne se charge pas et et j'ai une erreur sur cette ligne oCnn.Open sCnn Cordialement
Le mardi 24 Mars 2020 à 05:50 par Gortex :
> Bonjour,
> je souhaite charger une combobox dans userform excel avec une colonne d'une
> table runtime Access
> sur une machine sur la quel Access n'est pas installer
> j' ai trouver ca
>
> Const c_t_parm As String = "Prevision"
> Dim ACapp As Access.Application, db As DAO.Database, rcontacts As
> DAO.Recordset
> Set ACapp = New Access.Application
> Set db = ACapp.DBEngine.OpenDatabase _
> ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False,
> ";pwd=xxxx")
> Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset)
> Do While Not rcontacts.EOF
> ComboBox1.AddItem rcontacts![Societes intervenantes]
> rcontacts.MoveNext
> Loop
> End Sub
>
> Ca fonctionne très bien quant Access est installer mais pas avec le
> runtime Access
> vous avez une solution pour venir au secoure d'un débutant merci
Bonjour merci
ca ne fonctionne pas la combobox ne se charge pas
et et j'ai une erreur sur cette ligne oCnn.Open sCnn
Cordialement
Bonjour, je souhaite charger une combobox dans userform excel avec une colonne d'une table runtime Access sur une machine sur la quel Access n'est pas installer j' ai trouver ca Const c_t_parm As String = "Prevision" Dim ACapp As Access.Application, db As DAO.Database, rcontacts As DAO.Recordset Set ACapp = New Access.Application Set db = ACapp.DBEngine.OpenDatabase _ ("C:UsersxxxxxDocumentsExcel_Tabletable.accdb", False, False, ";pwd=xxxx") Set rcontacts = db.OpenRecordset(c_t_parm, dbOpenDynaset) Do While Not rcontacts.EOF ComboBox1.AddItem rcontacts![Societes intervenantes] rcontacts.MoveNext Loop End Sub Ca fonctionne très bien quant Access est installer mais pas avec le runtime Access vous avez une solution pour venir au secoure d'un débutant merci
Bonjour merci ca ne fonctionne pas la combobox ne se charge pas et et j'ai une erreur sur cette ligne oCnn.Open sCnn Cordialement