Bonjour a tous
Dans l' userform 1 j' ai une listview qui colore sus condition les lignes et champ de recherche multicritère matérialiser par la textbox1
et des textbox qui récupéré la ligne sélectionner dans la listview aussi des bouton ajouter,modifier,suprimer
donc voici mon souci je souhait liée l' userform 1 avec une table access a fin de pouvoir traiter un grand volume de donner
si vous avez une solution je vous joint les deux fichier a liée merci d'avance
Cordialement
Fichier Excel
https://www.cjoint.com/c/HDxkYumAidQ
Fichier Access
https://www.cjoint.com/c/HDxkWQbXqxQ
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
Michd
Bonjour, Voici un EXEMPLE de code. Ne fais pas un copier-coller en pensant que cela va fonctionner, ça ne marchera pas. Le code est commenté et tu devrais faire un effort pour comprendre ce qui se passe à chacune des étapes. Exemple : 'La chaîne de connexion à une base de données Access dans la procédure utilise un truc qui date d'Excel 2003 et plus ancien. Pour avoir la bonne chaîne de connexion avec les versions plus récentes d'Office, va à cette adresse : https://www.connectionstrings.com/access/ et choisis celle qui correspond à ton environnement. En fait, tu n'as pas nécessairement à écrire les données d'Access dans une feuille de calcul. Tu peux utiliser directement une boucle à partir du recordset pour meubler la listview. Tu as besoin de charger dans ton classeur Excel, fenêtre VBA - barre de menus / outils / références / cette bibliothèque : "Microsoft activex data objects 2.8 library" '--------------------------------------- Sub GetDataWithADO() 'Ajouter la bibliothèque suivante : 'Microsoft activex data objects 2.8 librairy Dim A As Long, B As Long, C As Long Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim MyRange As Range Dim Arr() 'détermine la cellule supérieur gauche où 'le recordset va être copié, si tu importes les 'données dans Excel With Worksheets("Feuil1") Set MyRange = .Range("g4") 'A définir End With 'La chaîne de connexion à une base de données Access cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:Mes Documentsbd2.mdb;" 'Requête déterminant la valeur du recordset 'Edudiant : c'est la table dans Excel rst.Open "Select * From Etudiant", cnt, adOpenStatic 'pour récupérer le recordset dans une variable Tableau(array) 'plus facilement maniable dans excel. Cela ne s'applique pas 'nécessairement à toi. ReDim Arr(1 To rst.RecordCount, 1 To rst.Fields.Count) rst.MoveFirst Do While Not rst.EOF For A = 1 To rst.RecordCount 'lignes For B = 0 To rst.Fields.Count - 1 'colonnes Arr(A, B + 1) = rst.Fields(B).Value Next rst.MoveNext Next Loop 'Le tableau contient tous les données du recordset mais 'pas le nom des champs du recordset 'Pour un petit test, pour visualiser toutes les valeurs 'contenues dans le tableau...Attention si tu as un 'grand tableau... ça risque d'être long ...!!! 'à faire seulement sur un petit échantillon. For A = 1 To UBound(Arr, 1) For B = 1 To UBound(Arr, 2) MsgBox Arr(A, B) Next Next 'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit : Do MyRange.Offset(, C) = rst.Fields(C).Name C = C + 1 x = x + 1 Loop Until x = rst.Fields.Count 'Cette ligne de code copie tous les enregistrements du recordset 'vers ta plage de cellule définie au début de la procédure. 'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000 'La méthode version 97 fonctionne un peu différemment. MyRange.Offset(1, 0).CopyFromRecordset rst 'libérer l'espace mémoire des objets utilisés dans la procédure: Set MyRange = Nothing: Set rst = Nothing Erase Arr End Sub '--------------------------------------- MichD
Bonjour,
Voici un EXEMPLE de code. Ne fais pas un copier-coller en pensant que cela
va fonctionner, ça ne marchera pas. Le code est commenté et tu devrais faire
un effort pour comprendre ce qui se passe à chacune des étapes.
Exemple : 'La chaîne de connexion à une base de données Access dans la
procédure utilise un truc qui date d'Excel 2003 et plus ancien. Pour avoir
la bonne chaîne de connexion avec les versions plus récentes d'Office, va à
cette adresse : https://www.connectionstrings.com/access/ et choisis celle
qui correspond à ton environnement.
En fait, tu n'as pas nécessairement à écrire les données d'Access dans une
feuille de calcul. Tu peux utiliser directement une boucle à partir du
recordset pour meubler la listview.
Tu as besoin de charger dans ton classeur Excel, fenêtre VBA - barre de
menus / outils / références / cette bibliothèque : "Microsoft activex data
objects 2.8 library"
'---------------------------------------
Sub GetDataWithADO()
'Ajouter la bibliothèque suivante :
'Microsoft activex data objects 2.8 librairy
Dim A As Long, B As Long, C As Long
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim MyRange As Range
Dim Arr()
'détermine la cellule supérieur gauche où
'le recordset va être copié, si tu importes les
'données dans Excel
With Worksheets("Feuil1")
Set MyRange = .Range("g4") 'A définir
End With
'La chaîne de connexion à une base de données Access
cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:Mes Documentsbd2.mdb;"
'Requête déterminant la valeur du recordset
'Edudiant : c'est la table dans Excel
rst.Open "Select * From Etudiant", cnt, adOpenStatic
'pour récupérer le recordset dans une variable Tableau(array)
'plus facilement maniable dans excel. Cela ne s'applique pas
'nécessairement à toi.
ReDim Arr(1 To rst.RecordCount, 1 To rst.Fields.Count)
rst.MoveFirst
Do While Not rst.EOF
For A = 1 To rst.RecordCount 'lignes
For B = 0 To rst.Fields.Count - 1 'colonnes
Arr(A, B + 1) = rst.Fields(B).Value
Next
rst.MoveNext
Next
Loop
'Le tableau contient tous les données du recordset mais
'pas le nom des champs du recordset
'Pour un petit test, pour visualiser toutes les valeurs
'contenues dans le tableau...Attention si tu as un
'grand tableau... ça risque d'être long ...!!!
'à faire seulement sur un petit échantillon.
For A = 1 To UBound(Arr, 1)
For B = 1 To UBound(Arr, 2)
MsgBox Arr(A, B)
Next
Next
'Si tu es intéressé de récupérer directement les noms
'des champs de ton recordset, tu peux utiliser ce
'qui suit :
Do
MyRange.Offset(, C) = rst.Fields(C).Name
C = C + 1
x = x + 1
Loop Until x = rst.Fields.Count
'Cette ligne de code copie tous les enregistrements du recordset
'vers ta plage de cellule définie au début de la procédure.
'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000
'La méthode version 97 fonctionne un peu différemment.
MyRange.Offset(1, 0).CopyFromRecordset rst
'libérer l'espace mémoire des objets utilisés dans la procédure:
Set MyRange = Nothing: Set rst = Nothing
Erase Arr
Bonjour, Voici un EXEMPLE de code. Ne fais pas un copier-coller en pensant que cela va fonctionner, ça ne marchera pas. Le code est commenté et tu devrais faire un effort pour comprendre ce qui se passe à chacune des étapes. Exemple : 'La chaîne de connexion à une base de données Access dans la procédure utilise un truc qui date d'Excel 2003 et plus ancien. Pour avoir la bonne chaîne de connexion avec les versions plus récentes d'Office, va à cette adresse : https://www.connectionstrings.com/access/ et choisis celle qui correspond à ton environnement. En fait, tu n'as pas nécessairement à écrire les données d'Access dans une feuille de calcul. Tu peux utiliser directement une boucle à partir du recordset pour meubler la listview. Tu as besoin de charger dans ton classeur Excel, fenêtre VBA - barre de menus / outils / références / cette bibliothèque : "Microsoft activex data objects 2.8 library" '--------------------------------------- Sub GetDataWithADO() 'Ajouter la bibliothèque suivante : 'Microsoft activex data objects 2.8 librairy Dim A As Long, B As Long, C As Long Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim MyRange As Range Dim Arr() 'détermine la cellule supérieur gauche où 'le recordset va être copié, si tu importes les 'données dans Excel With Worksheets("Feuil1") Set MyRange = .Range("g4") 'A définir End With 'La chaîne de connexion à une base de données Access cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:Mes Documentsbd2.mdb;" 'Requête déterminant la valeur du recordset 'Edudiant : c'est la table dans Excel rst.Open "Select * From Etudiant", cnt, adOpenStatic 'pour récupérer le recordset dans une variable Tableau(array) 'plus facilement maniable dans excel. Cela ne s'applique pas 'nécessairement à toi. ReDim Arr(1 To rst.RecordCount, 1 To rst.Fields.Count) rst.MoveFirst Do While Not rst.EOF For A = 1 To rst.RecordCount 'lignes For B = 0 To rst.Fields.Count - 1 'colonnes Arr(A, B + 1) = rst.Fields(B).Value Next rst.MoveNext Next Loop 'Le tableau contient tous les données du recordset mais 'pas le nom des champs du recordset 'Pour un petit test, pour visualiser toutes les valeurs 'contenues dans le tableau...Attention si tu as un 'grand tableau... ça risque d'être long ...!!! 'à faire seulement sur un petit échantillon. For A = 1 To UBound(Arr, 1) For B = 1 To UBound(Arr, 2) MsgBox Arr(A, B) Next Next 'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit : Do MyRange.Offset(, C) = rst.Fields(C).Name C = C + 1 x = x + 1 Loop Until x = rst.Fields.Count 'Cette ligne de code copie tous les enregistrements du recordset 'vers ta plage de cellule définie au début de la procédure. 'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000 'La méthode version 97 fonctionne un peu différemment. MyRange.Offset(1, 0).CopyFromRecordset rst 'libérer l'espace mémoire des objets utilisés dans la procédure: Set MyRange = Nothing: Set rst = Nothing Erase Arr End Sub '--------------------------------------- MichD
gortex
Le mardi 24 Avril 2018 à 14:55 par Michd :
Bonjour, Voici un EXEMPLE de code. Ne fais pas un copier-coller en pensant que cela va fonctionner, ça ne marchera pas. Le code est commenté et tu devrais faire un effort pour comprendre ce qui se passe à chacune des étapes. Exemple : 'La chaîne de connexion à une base de données Access dans la procédure utilise un truc qui date d'Excel 2003 et plus ancien. Pour avoir la bonne chaîne de connexion avec les versions plus récentes d'Office, va à cette adresse : https://www.connectionstrings.com/access/ et choisis celle qui correspond à ton environnement. En fait, tu n'as pas nécessairement à écrire les données d'Access dans une feuille de calcul. Tu peux utiliser directement une boucle à partir du recordset pour meubler la listview. Tu as besoin de charger dans ton classeur Excel, fenêtre VBA - barre de menus / outils / références / cette bibliothèque : "Microsoft activex data objects 2.8 library" '--------------------------------------- Sub GetDataWithADO() 'Ajouter la bibliothèque suivante : 'Microsoft activex data objects 2.8 librairy Dim A As Long, B As Long, C As Long Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim MyRange As Range Dim Arr() 'détermine la cellule supérieur gauche où 'le recordset va être copié, si tu importes les 'données dans Excel With Worksheets("Feuil1") Set MyRange = .Range("g4") 'A définir End With 'La chaîne de connexion à une base de données Access cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:Mes Documentsbd2.mdb;" 'Requête déterminant la valeur du recordset 'Edudiant : c'est la table dans Excel rst.Open "Select * From Etudiant", cnt, adOpenStatic 'pour récupérer le recordset dans une variable Tableau(array) 'plus facilement maniable dans excel. Cela ne s'applique pas 'nécessairement à toi. ReDim Arr(1 To rst.RecordCount, 1 To rst.Fields.Count) rst.MoveFirst Do While Not rst.EOF For A = 1 To rst.RecordCount 'lignes For B = 0 To rst.Fields.Count - 1 'colonnes Arr(A, B + 1) = rst.Fields(B).Value Next rst.MoveNext Next Loop 'Le tableau contient tous les données du recordset mais 'pas le nom des champs du recordset 'Pour un petit test, pour visualiser toutes les valeurs 'contenues dans le tableau...Attention si tu as un 'grand tableau... ça risque d'être long ...!!! 'à faire seulement sur un petit échantillon. For A = 1 To UBound(Arr, 1) For B = 1 To UBound(Arr, 2) MsgBox Arr(A, B) Next Next 'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit : Do MyRange.Offset(, C) = rst.Fields(C).Name C = C + 1 x = x + 1 Loop Until x = rst.Fields.Count 'Cette ligne de code copie tous les enregistrements du recordset 'vers ta plage de cellule définie au début de la procédure. 'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000 'La méthode version 97 fonctionne un peu différemment. MyRange.Offset(1, 0).CopyFromRecordset rst 'libérer l'espace mémoire des objets utilisés dans la procédure: Set MyRange = Nothing: Set rst = Nothing Erase Arr End Sub '--------------------------------------- MichD
Re merci je patauge
Le mardi 24 Avril 2018 à 14:55 par Michd :
> Bonjour,
>
> Voici un EXEMPLE de code. Ne fais pas un copier-coller en pensant que cela
> va fonctionner, ça ne marchera pas. Le code est commenté et tu
> devrais faire
> un effort pour comprendre ce qui se passe à chacune des étapes.
>
> Exemple : 'La chaîne de connexion à une base de données
> Access dans la
> procédure utilise un truc qui date d'Excel 2003 et plus ancien. Pour
> avoir
> la bonne chaîne de connexion avec les versions plus récentes
> d'Office, va à
> cette adresse : https://www.connectionstrings.com/access/ et choisis celle
> qui correspond à ton environnement.
>
> En fait, tu n'as pas nécessairement à écrire les
> données d'Access dans une
> feuille de calcul. Tu peux utiliser directement une boucle à partir du
> recordset pour meubler la listview.
>
> Tu as besoin de charger dans ton classeur Excel, fenêtre VBA - barre de
> menus / outils / références / cette bibliothèque :
> "Microsoft activex data
> objects 2.8 library"
>
> '---------------------------------------
> Sub GetDataWithADO()
>
> 'Ajouter la bibliothèque suivante :
> 'Microsoft activex data objects 2.8 librairy
>
>
> Dim A As Long, B As Long, C As Long
> Dim cnt As New ADODB.Connection
> Dim rst As New ADODB.Recordset
> Dim MyRange As Range
> Dim Arr()
>
> 'détermine la cellule supérieur gauche où
> 'le recordset va être copié, si tu importes les
> 'données dans Excel
>
> With Worksheets("Feuil1")
> Set MyRange = .Range("g4") 'A définir
> End With
>
> 'La chaîne de connexion à une base de données Access
> cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=C:Mes Documentsbd2.mdb;"
>
> 'Requête déterminant la valeur du recordset
> 'Edudiant : c'est la table dans Excel
> rst.Open "Select * From Etudiant", cnt, adOpenStatic
>
> 'pour récupérer le recordset dans une variable Tableau(array)
> 'plus facilement maniable dans excel. Cela ne s'applique pas
> 'nécessairement à toi.
>
> ReDim Arr(1 To rst.RecordCount, 1 To rst.Fields.Count)
> rst.MoveFirst
> Do While Not rst.EOF
> For A = 1 To rst.RecordCount 'lignes
> For B = 0 To rst.Fields.Count - 1 'colonnes
> Arr(A, B + 1) = rst.Fields(B).Value
> Next
> rst.MoveNext
> Next
> Loop
>
> 'Le tableau contient tous les données du recordset mais
> 'pas le nom des champs du recordset
>
> 'Pour un petit test, pour visualiser toutes les valeurs
> 'contenues dans le tableau...Attention si tu as un
> 'grand tableau... ça risque d'être long ...!!!
> 'à faire seulement sur un petit échantillon.
>
> For A = 1 To UBound(Arr, 1)
> For B = 1 To UBound(Arr, 2)
> MsgBox Arr(A, B)
> Next
> Next
>
>
> 'Si tu es intéressé de récupérer directement les
> noms
> 'des champs de ton recordset, tu peux utiliser ce
> 'qui suit :
>
> Do
> MyRange.Offset(, C) = rst.Fields(C).Name
> C = C + 1
> x = x + 1
> Loop Until x = rst.Fields.Count
>
>
> 'Cette ligne de code copie tous les enregistrements du recordset
> 'vers ta plage de cellule définie au début de la
> procédure.
> 'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000
> 'La méthode version 97 fonctionne un peu différemment.
> MyRange.Offset(1, 0).CopyFromRecordset rst
>
> 'libérer l'espace mémoire des objets utilisés dans la
> procédure:
>
> Set MyRange = Nothing: Set rst = Nothing
> Erase Arr
>
> End Sub
> '---------------------------------------
>
> MichD
Re merci
je patauge
Bonjour, Voici un EXEMPLE de code. Ne fais pas un copier-coller en pensant que cela va fonctionner, ça ne marchera pas. Le code est commenté et tu devrais faire un effort pour comprendre ce qui se passe à chacune des étapes. Exemple : 'La chaîne de connexion à une base de données Access dans la procédure utilise un truc qui date d'Excel 2003 et plus ancien. Pour avoir la bonne chaîne de connexion avec les versions plus récentes d'Office, va à cette adresse : https://www.connectionstrings.com/access/ et choisis celle qui correspond à ton environnement. En fait, tu n'as pas nécessairement à écrire les données d'Access dans une feuille de calcul. Tu peux utiliser directement une boucle à partir du recordset pour meubler la listview. Tu as besoin de charger dans ton classeur Excel, fenêtre VBA - barre de menus / outils / références / cette bibliothèque : "Microsoft activex data objects 2.8 library" '--------------------------------------- Sub GetDataWithADO() 'Ajouter la bibliothèque suivante : 'Microsoft activex data objects 2.8 librairy Dim A As Long, B As Long, C As Long Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset Dim MyRange As Range Dim Arr() 'détermine la cellule supérieur gauche où 'le recordset va être copié, si tu importes les 'données dans Excel With Worksheets("Feuil1") Set MyRange = .Range("g4") 'A définir End With 'La chaîne de connexion à une base de données Access cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:Mes Documentsbd2.mdb;" 'Requête déterminant la valeur du recordset 'Edudiant : c'est la table dans Excel rst.Open "Select * From Etudiant", cnt, adOpenStatic 'pour récupérer le recordset dans une variable Tableau(array) 'plus facilement maniable dans excel. Cela ne s'applique pas 'nécessairement à toi. ReDim Arr(1 To rst.RecordCount, 1 To rst.Fields.Count) rst.MoveFirst Do While Not rst.EOF For A = 1 To rst.RecordCount 'lignes For B = 0 To rst.Fields.Count - 1 'colonnes Arr(A, B + 1) = rst.Fields(B).Value Next rst.MoveNext Next Loop 'Le tableau contient tous les données du recordset mais 'pas le nom des champs du recordset 'Pour un petit test, pour visualiser toutes les valeurs 'contenues dans le tableau...Attention si tu as un 'grand tableau... ça risque d'être long ...!!! 'à faire seulement sur un petit échantillon. For A = 1 To UBound(Arr, 1) For B = 1 To UBound(Arr, 2) MsgBox Arr(A, B) Next Next 'Si tu es intéressé de récupérer directement les noms 'des champs de ton recordset, tu peux utiliser ce 'qui suit : Do MyRange.Offset(, C) = rst.Fields(C).Name C = C + 1 x = x + 1 Loop Until x = rst.Fields.Count 'Cette ligne de code copie tous les enregistrements du recordset 'vers ta plage de cellule définie au début de la procédure. 'Cette ligne n'est pas valide pour une version plus agée qu'excel 2000 'La méthode version 97 fonctionne un peu différemment. MyRange.Offset(1, 0).CopyFromRecordset rst 'libérer l'espace mémoire des objets utilisés dans la procédure: Set MyRange = Nothing: Set rst = Nothing Erase Arr End Sub '--------------------------------------- MichD
Re merci je patauge
gortex
Le mardi 24 Avril 2018 à 00:00 par Gortex :
Bonjour, Bonjour a tous Dans l' userform 1 j' ai une listview qui colore sus condition les lignes et champ de recherche multicritère matérialiser par la textbox1 et des textbox qui récupéré la ligne sélectionner dans la listview aussi des bouton ajouter,modifier,suprimer donc voici mon souci je souhait liée l' userform 1 avec une table access a fin de pouvoir traiter un grand volume de donner si vous avez une solution je vous joint les deux fichier a liée merci d'avance Cordialement Fichier Excel https://www.cjoint.com/c/HDxkYumAidQ Fichier Access https://www.cjoint.com/c/HDxkWQbXqxQ
Bonjour a tous je me connecte a une base access avec le bout de code qui fonctionne tres bien je voudrai proteger mon fichier access avec un mot de passe "PAPA" donc comment adapter ce code pour que excel se connecte si vous aviez une solution merci Cordialement 'connection base Sub Connecte_base_Access() Dim rs As Object Dim Nom_Base, Chemin_Base, SQL ', connstring Set conn = CreateObject("ADODB.Connection") Nom_Base = "les-association-table-access.accdb" Chemin_Base = ThisWorkbook.Path & "" & Nom_Base 'chaine de connexion connstring = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & Chemin_Base 'Connexion a la base conn.Open connstring End Sub
Le mardi 24 Avril 2018 à 00:00 par Gortex :
> Bonjour,
>
> Bonjour a tous
> Dans l' userform 1 j' ai une listview qui colore sus condition les lignes et
> champ de recherche multicritère matérialiser par la textbox1
> et des textbox qui récupéré la ligne sélectionner
> dans la listview aussi des bouton ajouter,modifier,suprimer
> donc voici mon souci je souhait liée l' userform 1 avec une table access
> a fin de pouvoir traiter un grand volume de donner
> si vous avez une solution je vous joint les deux fichier a liée merci
> d'avance
> Cordialement
> Fichier Excel
> https://www.cjoint.com/c/HDxkYumAidQ
> Fichier Access
> https://www.cjoint.com/c/HDxkWQbXqxQ
Bonjour a tous
je me connecte a une base access avec le bout de code qui fonctionne tres bien
je voudrai proteger mon fichier access avec un mot de passe "PAPA"
donc comment adapter ce code pour que excel se connecte
si vous aviez une solution merci
Cordialement
'connection base
Sub Connecte_base_Access()
Dim rs As Object
Dim Nom_Base, Chemin_Base, SQL ', connstring
Set conn = CreateObject("ADODB.Connection")
Nom_Base = "les-association-table-access.accdb"
Chemin_Base = ThisWorkbook.Path & "" & Nom_Base
'chaine de connexion
connstring = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & Chemin_Base
'Connexion a la base
conn.Open connstring
End Sub
Bonjour, Bonjour a tous Dans l' userform 1 j' ai une listview qui colore sus condition les lignes et champ de recherche multicritère matérialiser par la textbox1 et des textbox qui récupéré la ligne sélectionner dans la listview aussi des bouton ajouter,modifier,suprimer donc voici mon souci je souhait liée l' userform 1 avec une table access a fin de pouvoir traiter un grand volume de donner si vous avez une solution je vous joint les deux fichier a liée merci d'avance Cordialement Fichier Excel https://www.cjoint.com/c/HDxkYumAidQ Fichier Access https://www.cjoint.com/c/HDxkWQbXqxQ
Bonjour a tous je me connecte a une base access avec le bout de code qui fonctionne tres bien je voudrai proteger mon fichier access avec un mot de passe "PAPA" donc comment adapter ce code pour que excel se connecte si vous aviez une solution merci Cordialement 'connection base Sub Connecte_base_Access() Dim rs As Object Dim Nom_Base, Chemin_Base, SQL ', connstring Set conn = CreateObject("ADODB.Connection") Nom_Base = "les-association-table-access.accdb" Chemin_Base = ThisWorkbook.Path & "" & Nom_Base 'chaine de connexion connstring = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & Chemin_Base 'Connexion a la base conn.Open connstring End Sub