Quels solutions avec access et excel ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

therafou

XLDnaute Junior
Salut,

voilà actuellement, je me trouve face à une problème enfin plutôt une hésitation.
J'ai une base de donnée avec de valeurs présaisie qui se nomme "autocom.mdb" et une fichier excel "data.xls".

Je voudrai que la table de la base autocom soit afficher dans le fichier data Excel sur une feuille et que la personne qui consulte puisse saisir dans donner et lors de la fermeture que les données soit automatiquement enregister dans la base à la suite.

Puis dans une deuxième temps, un fichier Excel qui lui est nommé "graphique.xls" ira récuperer de manière automatique à l'ouverture les résultats des requettes access pour les mettre dans deux feuilles séparer pour ensuite faire des graphiques.

La bas existe déjà ainsi que les requettes. je cherche donc une moyen de extraire et inserer à partir de excel pour le fichier "data.xls" et consulter les requettes pour le fichier "graphique.xls".

Si vous avez des exemples n'hésitez pas merci
 
Re : Quels solutions avec access et excel ?

bonjour,

Ci dessous macro pour importer une table ou une requete access dans Excel; exemple à adapter

Sub importer_access()

Dim source As ADODB.Connection
Dim t_list As ADODB.Recordset
Dim chemin As String, texte_SQL As String

chemin = ActiveWorkbook.Path
' ouvre la base de données Access (microsoft jet)
Set source = New ADODB.Connection
source.Provider = "Microsoft.Jet.OLEDB.4.0;"
source.Open chemin & "\demoado.mdb"

Set t_list = New ADODB.Recordset
'requete SQL dans t_demo de tous les champs
texte_SQL = "SELECT * FROM T_demo"
Set t_list = source.Execute(texte_SQL)

'reporte dans home.xls
Application.ScreenUpdating = False
Range("A2").CopyFromRecordset t_list

'ferme la requête et demoado.mdb
t_list.Close
source.Close

End Sub
------------------------------------------
En ce qui concerne l'enregistrement des modifs dans Excel vers Access, il faudrait que tu fasse une variable tablo avec ces modifs (ou toutes les données...) qui serait reportée dans access. Exemple:


' ouverture de la database
fichier = ActiveWorkbook.Path & "\demoado.mdb"
Set mère = New ADODB.Connection
mère.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";"

'ouverture de t_demo
Set import = New ADODB.Recordset
import.Open "t_demo", mère, adOpenKeyset, adLockOptimistic

' écrit les valeurs du tableau dans les champs des enregistrements
With import
.MoveFirst
lig = 0
col = 0
Do While lig < nbre
' recherche le "num" de t_demo
.Find "num = " & tablo(lig, col)
'si num inconnu
If .EOF Then
'signale des numéros inconnus
MsgBox "valeur " & tablo(lig, col) & " et suivantes inconnues dans la base de données "
' voir ici pour créer un nouvel enregistrement avec addnew
Exit Do
End If
' on aurait pu boucler pour remplir les champs mais...
import.Fields("nom") = tablo(lig, col + 1)
import.Fields("origine") = tablo(lig, col + 2)
import.Fields("grp") = tablo(lig, col + 3)
.Update
' incrémente
.MoveNext
lig = lig + 1
Loop
End With

'fin d'écriture access
import.Close
mère.Close

MsgBox "opération terminée"

End Sub


A+ et bon courage !
Michel_M
 
Re : Quels solutions avec access et excel ?

Voilà j'ai mis en place le script pour mettre à jours:

Code:
Sub exporter_access()

' ouverture de la database
fichier = ActiveWorkbook.Path & "\autocom.mdb"
Set mère = New ADODB.Connection
mère.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fichier & ";"

'ouverture de t_demo
Set Import = New ADODB.Recordset
Import.Open "brut", mère, adOpenKeyset, adLockOptimistic

' écrit les valeurs du tableau dans les champs des enregistrements
With Import
.MoveFirst
lig = 0
col = 0
Do While lig < nbre
' recherche le "num" de t_demo
.Find "num = " & tablo(lig, col)
'si num inconnu
If .EOF Then
'signale des numéros inconnus
MsgBox "valeur " & tablo(lig, col) & " et suivantes inconnues dans la base de données "
' voir ici pour créer un nouvel enregistrement avec addnew
Exit Do
End If
' on aurait pu boucler pour remplir les champs mais...
Import.Fields("date") = tablo(lig, col + 1)
Import.Fields("connexion_svi") = tablo(lig, col + 2)
Import.Fields("serv_op") = tablo(lig, col + 3)
Import.Fields("adandons_dissuades") = tablo(lig, col + 4)
Import.Fields("qlt_serv_pris30s") = tablo(lig, col + 5)
Import.Fields("qlt_serv_traite_op") = tablo(lig, col + 6)
Import.Fields("tps_attente_max") = tablo(lig, col + 7)
Import.Fields("appel_informati") = tablo(lig, col + 8)
Import.Fields("perdu") = tablo(lig, col + 9)
Import.Fields("nb_agent") = tablo(lig, col + 10)
.Update
' incrémente
.MoveNext
lig = lig + 1
Loop
End With

'fin d'écriture access
Import.Close
mère.Close

MsgBox "opération terminée"

End Sub

Mais il me met un erreur, il me sourligne tablo(lig, col) est me dit valeur ou fonction non déclarer.

Savez vous d'ou sa peut venir ?


base de donnée
Lien supprimé

fichier excel
Lien supprimé
 
Re : Quels solutions avec access et excel ?

Re,

Avant d'effectuer la connection avec Access, il faut que tu remplisses ton tableau (tablo) avec une boucle dans la feuille Excel: ce sont ces valeurs qui seront mis à jour (update) dans la base de données Access; fais attention de ne pas exporter les étiquettes de la "base" excel...

D'autre part, n'oublie pas les déclarations

Enfin, tu as recopié "num" qui correspond dans ma base (demoado.mdb) au numéro en clé primaire: as tu ce même champ ?

J'essayes de joindre ma base access si cela peut t'aider

A+
Michel_M
 
Dernière édition:
Re : Quels solutions avec access et excel ?

Bonjour,

Te fournir la feuille Excel ne te servirait à rien car il s'agissait de montrer comment reporter des données dans Access en provenance d'un classeur fermé...

Dans ta feuille Excel, il suffit de créer un tableau avec 2 boucles (horizontale et verticale). Si tu es géné avec le "comment faire" un tableau (on ne peut pas tout savoir), je te conseille le site "info-3000" très pédagogique où j'y ai appris des tas de choses: Les tableaux.
Tu as aussi le WIKI de MichelXLD sur le sujet.

A+
Michel_M
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
135
Réponses
3
Affichages
334
Réponses
33
Affichages
964
Réponses
10
Affichages
937
Retour