Je suis stagiaire débutante en informatique et je voudrais transférer les résultats d'une requête sélection réaliser sous Access2000, dans une feuille Excel. J'obtient les résultats de la requête Access dans un formulaire auquel j'ai intégré un bouton associé à ce code, et censé réaliser l'automation.J'ai notamment des prob aux nivaux des paramètres (too few parameters. expected 2 !!)
Merci d'avance, c'est assez urgent
Voici le source:
Option Compare Database
Private Sub Commande22_Click()
On Error GoTo Err_Commande22_Click
Dim Champ1 As String
Dim Champ2 As String
Dim Champ3 As String
Dim Champ4 As String
Dim Champ5 As Integer
Dim Champ6 As Integer
Dim Champ7 As Integer
Dim Champ8 As Long
Dim Champ9 As Integer
Dim Champ10 As Long
Dim MonFichier As String
Dim db As Database
Dim Enreg As Recordset
Dim qry As QueryDef
'Attribue un nom à aux différents champs (remplit dans le formulaire)
Champ1 = [nom_oper]
Champ2 = [nom_outil]
Champ3 = [no_carte_outil]
Champ4 = [nom_access]
Champ5 = [qte]
Champ6 = [Vc]
Champ7 = [n]
Champ8 = [f]
Champ9 = [Vf]
Champ10 = [long]
'Défini le nom du fichier Excel
MonFichier = [no_type_fiche]
'Ouvre l'application Excel
Set MonXL = CreateObject("Excel.Application")
'Ceci initialise la variable et charge Excel en arrière plan
'Rend Excel visible...
MonXL.Visible = True
MonXL.UserControl = True
'Ouverture de la base de données "carte_outil2.mdb"
Set db = CurrentDb
'Ouverture des enregistrements de la requête "Rco" <----Rco étant le nom de la requête Access
db.QueryDefs("Rco").Parameters("Numéro de la fiche outil") = MonFichier <--- ici est signalé une incompatibilité de type
db.QueryDefs("Rco").Parameters("Numéro de la carte outil") = Champ3
Set qry = db.QueryDefs("Rco")
Set Enreg = qry.OpenRecordset(dbOpenDynaset)
Ligne = 1
'Premier enregistrement de la table "Rco"
Enreg.MoveFirst
'Ecriture dans le fichier sélectionné tant que la fin de la table de la requête n'est pas atteinte
Do While Enreg.EOF = False
' Place le contenu du champ "Opération d'usinage" dans la 1ère colonne de la feuille EXCEL
MonXL.Cells(Ligne, 1).Value = Enreg![nom_oper]
' Place le contenu du champ "Désignation outil" dans la 2ème colonne de la feuille EXCEL
MonXL.Cells(Ligne, 2).Value = Enreg![nom_outil]
' Place le contenu du champ "N° carte outil" dans la 3ème colonne de la feuille EXCEL
MonXL.Cells(Ligne, 3).Value = Enreg![no_carte_outil]
' Place le contenu du champ "Désignation accessoires" dans la 4ère colonne de la feuille EXCEL
MonXL.Cells(Ligne, 4).Value = Enreg![nom_access]
' Place le contenu du champ "Qté M/C" dans la 5ème colonne de la feuille EXCEL
MonXL.Cells(Ligne, 5).Value = Enreg![qte]
' Place le contenu du champ "Vc" dans la 6ème colonne de la feuille EXCEL
MonXL.Cells(Ligne, 6).Value = Enreg![Vc]
' Place le contenu du champ "n" dans la 7ème colonne de la feuille EXCEL
MonXL.Cells(Ligne, 7).Value = Enreg![n]
' Place le contenu du champ "f" dans la 8ère colonne de la feuille EXCEL
MonXL.Cells(Ligne, 8).Value = Enreg![f]
' Place le contenu du champ "Vf" dans la 9ème colonne de la feuille EXCEL
MonXL.Cells(Ligne, 9).Value = Enreg![Vf]
' Place le contenu du champ "Longueur outil" dans la 10ème colonne de la feuille EXCEL
MonXL.Cells(Ligne, 10).Value = Enreg![long]
Le problème n'est pas que je dois écrire absolument du code mais tout doit être automatique à partir d'access, sans que l'utilisateur n'ait à "fouiller" et enregistrer les fichiers. De plus je dois pouvoir manipuler tous les enregistrements des différents champs issu de la requête , independement, pour pouvoir les mettre exactement ou je veux dans les differentes feuilles Excel selon cas, voir ignorer certain champ dans le cas de repetitions .. c'est pour ça que le code parait un peut compliqué, mais disons que c'est le seul moyen que j'ai trouvé pour pouvoir traiter ces enregistrements comme je veux par la suite (des case et if sont prevus par la suite..)
Si tu as des idees, ou des precisions à demander n hesites pas à me contacter. Merci d avance
Forum Windows
Trouvez des réponses à vos questions sur l'exploitation du système d'exploitation Windows, les astuces, et les résolutions de problèmes. Rejoignez une communauté de passionnés de Windows pour une utilisation efficace et productive de votre PC.
22 juil. 2001 à 15:06
Si tu as des idees, ou des precisions à demander n hesites pas à me contacter. Merci d avance