Access download excel ?
Fermé
Thibal_jam
Messages postés
50
Date d'inscription
mardi 14 septembre 2004
Statut
Membre
Dernière intervention
18 mai 2005
-
22 déc. 2004 à 15:34
Thibal_jam Messages postés 50 Date d'inscription mardi 14 septembre 2004 Statut Membre Dernière intervention 18 mai 2005 - 29 déc. 2004 à 14:47
Thibal_jam Messages postés 50 Date d'inscription mardi 14 septembre 2004 Statut Membre Dernière intervention 18 mai 2005 - 29 déc. 2004 à 14:47
A voir également:
- Access download excel ?
- Liste déroulante excel - Guide
- Si et excel - Guide
- Extreme download - Accueil - Outils
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
8 réponses
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
22 déc. 2004 à 16:56
22 déc. 2004 à 16:56
salut Thibal_jam,
ça va peut-être t'aider (si j'ai bien compris ton pb) :
Dim objConn As Connection
Dim objRS As Recordset
Dim wbkClasseur As Workbook
Dim strSQL As String, strFCR As String
Dim lngLigne As Long, lngIndex As Long, lngNbFields As Long, lngCount As Long
Dim intCell As Integer
On Error GoTo Err_
' definition de la chaine de connexion
Application.StatusBar = "Connection à la base..."
Set objConn = New Connection
objConn.ConnectionString = CONST_BDOTC_PROD
' ouverture de la connexion
objConn.Open
Set wbkClasseur = Workbooks.Add
' détruire les feuilles inutiles
Do Until wbkClasseur.Sheets.Count = 1
wbkClasseur.Sheets(wbkClasseur.Sheets.Count).Delete
Loop
strSQL = "SELECT * FROM tfcrcrm ORDER BY nomfcr"
Set objRS = New Recordset
Application.StatusBar = "Lancer la requête..."
objRS.Open strSQL, objConn
lngLigne = 1
lngNbFields = objRS.Fields.Count - 1
' écriture les noms des champs renvoyés dans la requête
For lngIndex = 0 To lngNbFields
Cells(1, lngIndex + 1).Value = objRS.Fields(lngIndex).Name
Next
lngLigne = lngLigne + 1
' écriture du recordset dans la feuille
Do While Not objRS.EOF
Application.StatusBar = "Ecriture du recordset... (enr #" & lngLigne & ")"
For lngIndex = 0 To lngNbFields
Cells(lngLigne, lngIndex + 1).Value = objRS(lngIndex).Value
Next
lngLigne = lngLigne + 1
objRS.MoveNext
Loop
lngCount = objRS.RecordCount
objRS.Close
Set objRS = Nothing: Set objConn = Nothing: Set wbkClasseur = Nothing
A+,
Kobaya.
ça va peut-être t'aider (si j'ai bien compris ton pb) :
Dim objConn As Connection
Dim objRS As Recordset
Dim wbkClasseur As Workbook
Dim strSQL As String, strFCR As String
Dim lngLigne As Long, lngIndex As Long, lngNbFields As Long, lngCount As Long
Dim intCell As Integer
On Error GoTo Err_
' definition de la chaine de connexion
Application.StatusBar = "Connection à la base..."
Set objConn = New Connection
objConn.ConnectionString = CONST_BDOTC_PROD
' ouverture de la connexion
objConn.Open
Set wbkClasseur = Workbooks.Add
' détruire les feuilles inutiles
Do Until wbkClasseur.Sheets.Count = 1
wbkClasseur.Sheets(wbkClasseur.Sheets.Count).Delete
Loop
strSQL = "SELECT * FROM tfcrcrm ORDER BY nomfcr"
Set objRS = New Recordset
Application.StatusBar = "Lancer la requête..."
objRS.Open strSQL, objConn
lngLigne = 1
lngNbFields = objRS.Fields.Count - 1
' écriture les noms des champs renvoyés dans la requête
For lngIndex = 0 To lngNbFields
Cells(1, lngIndex + 1).Value = objRS.Fields(lngIndex).Name
Next
lngLigne = lngLigne + 1
' écriture du recordset dans la feuille
Do While Not objRS.EOF
Application.StatusBar = "Ecriture du recordset... (enr #" & lngLigne & ")"
For lngIndex = 0 To lngNbFields
Cells(lngLigne, lngIndex + 1).Value = objRS(lngIndex).Value
Next
lngLigne = lngLigne + 1
objRS.MoveNext
Loop
lngCount = objRS.RecordCount
objRS.Close
Set objRS = Nothing: Set objConn = Nothing: Set wbkClasseur = Nothing
A+,
Kobaya.
Thibal_jam
Messages postés
50
Date d'inscription
mardi 14 septembre 2004
Statut
Membre
Dernière intervention
18 mai 2005
3
23 déc. 2004 à 10:59
23 déc. 2004 à 10:59
yes merci Kobaya,
Mais en faite j'ai déja fait une grande partie du boulo:
stDocName = "R_reports"
DoCmd.OpenReport stDocName, acViewPreview, , mareq
mareq me permet de poser une clause where a mon report.
ensuite je fais le download excel
DoCmd.OutputTo acReport, stDocName, acFormatXLS
et je ferme le report Excel
DoCmd.Close
je sais k'on peut travailler avec un template
DoCmd.OutputTo acReport, stDocName, acFormatXLS,,, "nom template.xls"
mais il l'ecrase et le remplace je sais pas pourquoi.peut tu m'aider?
ou m'expliquer comment utiliser ton code si c'est ça la solution
encore merci
Thibal
Mais en faite j'ai déja fait une grande partie du boulo:
stDocName = "R_reports"
DoCmd.OpenReport stDocName, acViewPreview, , mareq
mareq me permet de poser une clause where a mon report.
ensuite je fais le download excel
DoCmd.OutputTo acReport, stDocName, acFormatXLS
et je ferme le report Excel
DoCmd.Close
je sais k'on peut travailler avec un template
DoCmd.OutputTo acReport, stDocName, acFormatXLS,,, "nom template.xls"
mais il l'ecrase et le remplace je sais pas pourquoi.peut tu m'aider?
ou m'expliquer comment utiliser ton code si c'est ça la solution
encore merci
Thibal
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
29 déc. 2004 à 14:31
29 déc. 2004 à 14:31
salut Thibal,
je reviens sur ce post : si le format des colonnes de ton fichier Excel ne change pas, je pense qu'il vaut mieux que tu utilises la fonction d'importation du format Excel dans Access. Si je me rappelle bien, ça doit donner quelquechose comme DocCmd.ImportExcelFile arg1,arg2,etc...
il faudrait que je trouve un peu de temps quand je suis à la maison, le soir, pour te donner le code VBA exact dans ACCESS...
A+,
Kobaya.
je reviens sur ce post : si le format des colonnes de ton fichier Excel ne change pas, je pense qu'il vaut mieux que tu utilises la fonction d'importation du format Excel dans Access. Si je me rappelle bien, ça doit donner quelquechose comme DocCmd.ImportExcelFile arg1,arg2,etc...
il faudrait que je trouve un peu de temps quand je suis à la maison, le soir, pour te donner le code VBA exact dans ACCESS...
A+,
Kobaya.
Thibal_jam
Messages postés
50
Date d'inscription
mardi 14 septembre 2004
Statut
Membre
Dernière intervention
18 mai 2005
3
23 déc. 2004 à 11:28
23 déc. 2004 à 11:28
rebonjour
je suis désolé mais j'aurais une deuxième question :
comment loader automatiquement un fichier Excel qui n'aura pas tjs le meme nb de ligne mais qui aura tjs les memes colonnes
merci d'avance pour vos réponses
Thibal
je suis désolé mais j'aurais une deuxième question :
comment loader automatiquement un fichier Excel qui n'aura pas tjs le meme nb de ligne mais qui aura tjs les memes colonnes
merci d'avance pour vos réponses
Thibal
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
23 déc. 2004 à 12:20
23 déc. 2004 à 12:20
je n'ai plus Access sur mon poste... Peut-être y-a-t-il une commande Access qui te permettra de charger une feuille Excel dans une table, quel que soit le nombre de lignes. Sinon, il faut faire une boucle du style :
Do
' ici tu fais ton traitement
' ligne suivante
Activecell.Offset(1, 0).Select
Loop Until Activecell.Value = ""
A+,
Kobaya.
Do
' ici tu fais ton traitement
' ligne suivante
Activecell.Offset(1, 0).Select
Loop Until Activecell.Value = ""
A+,
Kobaya.
Thibal_jam
Messages postés
50
Date d'inscription
mardi 14 septembre 2004
Statut
Membre
Dernière intervention
18 mai 2005
3
23 déc. 2004 à 13:59
23 déc. 2004 à 13:59
merci bien
ok je vais essayer ça
par traitement tu entends juste copier les cellules et les coller dans excel.
ou plutot utiliser un insert qui va rechercher les valeurs dans les cellules.
je sais pas quelle solution choisir et surtout laquelle est réalisable.
merci
Thibal
ok je vais essayer ça
par traitement tu entends juste copier les cellules et les coller dans excel.
ou plutot utiliser un insert qui va rechercher les valeurs dans les cellules.
je sais pas quelle solution choisir et surtout laquelle est réalisable.
merci
Thibal
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
23 déc. 2004 à 14:33
23 déc. 2004 à 14:33
je pensais plutot à utiliser un insert qui va rechercher les valeurs dans les cellules
A+,
Kobaya.
A+,
Kobaya.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Thibal_jam
Messages postés
50
Date d'inscription
mardi 14 septembre 2004
Statut
Membre
Dernière intervention
18 mai 2005
3
23 déc. 2004 à 16:09
23 déc. 2004 à 16:09
ok je pense aussi
mais je connais pas du tout les commandes vba lié a excel et mon aide est en anglais je capte que dalle.
mais je pense que comme ça ça devrait passer:
rien a voir le code c'est just une idée générale et en plus je sais pas comment nommer les cellules ni ou mettre des guimets , des &,...
while indice colonne A <> ""
moncode = "insert into table1 (1,2,3,4,5,...) values (indice colonne(A), indice colonne (B),indice colonne(B),...)"
docmd.runsql moncode
indice = indice+1
end while
si ça t'inspire un peu et que tu sais remplacer ce code par les vrai nom de colonne et tous le ratata qui va avec n'ésite pas
sinon j'essayerai de me débroullier mais comme tu vois jsuis pas près d'y arriver.
merci encore
mais je connais pas du tout les commandes vba lié a excel et mon aide est en anglais je capte que dalle.
mais je pense que comme ça ça devrait passer:
rien a voir le code c'est just une idée générale et en plus je sais pas comment nommer les cellules ni ou mettre des guimets , des &,...
while indice colonne A <> ""
moncode = "insert into table1 (1,2,3,4,5,...) values (indice colonne(A), indice colonne (B),indice colonne(B),...)"
docmd.runsql moncode
indice = indice+1
end while
si ça t'inspire un peu et que tu sais remplacer ce code par les vrai nom de colonne et tous le ratata qui va avec n'ésite pas
sinon j'essayerai de me débroullier mais comme tu vois jsuis pas près d'y arriver.
merci encore
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
23 déc. 2004 à 16:21
23 déc. 2004 à 16:21
peux-tu me donner les différents champs de la table où tu veux insérer les valeurs d'Excel, avec leur format (texte, entier, simple, double, etc...)?
A+,
Kobaya.
A+,
Kobaya.
Thibal_jam
Messages postés
50
Date d'inscription
mardi 14 septembre 2004
Statut
Membre
Dernière intervention
18 mai 2005
3
29 déc. 2004 à 10:50
29 déc. 2004 à 10:50
hello dsl de n 'avoir pas répondu avant j'ai pris 3 jours de vacances.
merci de ta réponse voici les champs et leur format:
Table T_product :
Product_type number
supplier_code number
Sap description text
Size number
pcb number
production_line text
comment¬es memo
active_supplier yes/no
formula number
shelf number
minimum number
Product_type, size et pcb sont des clés étrangères en fait il va falloir utiliser une table tampon en prenant des champs textes pour ces trois clés.
merci bcp
Thibal
merci de ta réponse voici les champs et leur format:
Table T_product :
Product_type number
supplier_code number
Sap description text
Size number
pcb number
production_line text
comment¬es memo
active_supplier yes/no
formula number
shelf number
minimum number
Product_type, size et pcb sont des clés étrangères en fait il va falloir utiliser une table tampon en prenant des champs textes pour ces trois clés.
merci bcp
Thibal
Thibal_jam
Messages postés
50
Date d'inscription
mardi 14 septembre 2004
Statut
Membre
Dernière intervention
18 mai 2005
3
29 déc. 2004 à 14:47
29 déc. 2004 à 14:47
hello kobaya merci de ton attention
et pour l'upload de excel dans Access t'as des news ?
merci
Thibal
et pour l'upload de excel dans Access t'as des news ?
merci
Thibal