J'effectue l'export d"une requ=EAte vers EXCEL, mais =E7a=20
marche pas car ma requ=EAte est param=E9tr=E9, un message=20
d'erreur appara=EEt est me dit "Trop peu de param=E8tre. 1=20
attendu."
En principe =E0 l'=E9x=E9cution de ma requ=EAte je doit saisir=20
l'ann=E9e.=20
Voici mon code VB :
Private Sub Commande8_Click()
ExportationVersExcel_DAO2
End Sub
'REPORTING VERS EXCEL
Sub ExportationVersExcel_DAO2()
Dim xl As Excel.Application
Dim wbk As Excel.Workbook
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim Fld As DAO.Field
Dim intColonne As Integer
Dim intLigne As Integer
'Ouvrir la requ=EAte Bilan Eb
Set db =3D CurrentDb()
Set rst =3D db.OpenRecordset("Bilan CTC Eb")
'D=E9marrer Excel
Set xl =3D New Excel.Application
xl.Visible =3D True
With xl
'Cr=E9er un nouveau classeur
Set wbk =3D .Workbooks.Add
=20
'Renommer la 1=E8re feuille du classeur
wbk.Sheets("Feuil1").Name =3D "Bilan Eb"
=20
With wbk.Sheets("Bilan Eb")
'Transf=E9rer les noms de champs
intColonne =3D 0
For Each Fld In rst.Fields
.Cells(1, intColonne + 1) =3D Fld.Name
intColonne =3D intColonne + 1
Next
=20
'Transf=E9rer les enregistrements
intLigne =3D 2
While Not rst.EOF
intColonne =3D 1
For Each Fld In rst.Fields
.Cells(intLigne, intColonne) =3D Fld.Value
intColonne =3D intColonne + 1
Next
=20
'Enregistrement suivant
rst.MoveNext
intLigne =3D intLigne + 1
Wend
End With
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
Eric
Bonjour "Maïté"
Quelques modif dans ta procédure ExportationVersExcel_DAO2
A la suite des déclarations, rajoutes: Dim qry As DAO.QueryDef Dim repAnnee As String repAnnee = InputBox("Année désirée ?", "Demande de renseignement") If Len(repAnnee) = 0 Then Exit Sub
Remplaces : Set rst = db.OpenRecordset("Bilan CTC Eb") par : Set qry = db.QueryDefs("rAnnée") qry.Parameters("AnnéeVoulue") = CInt(repAnnee) Set rst = qry.OpenRecordset
où AnnéeVoulue est le paramètre de ta requête. Je l'ai déclaré explicitement dans la requête (Menu REQUETE|Paramètres) comme Entier
Le reste est Ok.
Ca marche ? A+ Eric
"Maïté" écrivait news:a14d01c497e6 $db28e860$:
J'effectue l'export d"une requête vers EXCEL, mais ça marche pas car ma requête est paramétré, un message d'erreur apparaît est me dit "Trop peu de paramètre. 1 attendu."
En principe à l'éxécution de ma requête je doit saisir l'année.
Voici mon code VB :
Private Sub Commande8_Click() ExportationVersExcel_DAO2 End Sub
'REPORTING VERS EXCEL Sub ExportationVersExcel_DAO2() Dim xl As Excel.Application Dim wbk As Excel.Workbook Dim db As DAO.Database Dim rst As DAO.Recordset Dim Fld As DAO.Field Dim intColonne As Integer Dim intLigne As Integer
'Ouvrir la requête Bilan Eb Set db = CurrentDb() Set rst = db.OpenRecordset("Bilan CTC Eb")
'Démarrer Excel Set xl = New Excel.Application xl.Visible = True
With xl 'Créer un nouveau classeur Set wbk = .Workbooks.Add
'Renommer la 1ère feuille du classeur wbk.Sheets("Feuil1").Name = "Bilan Eb"
With wbk.Sheets("Bilan Eb") 'Transférer les noms de champs intColonne = 0 For Each Fld In rst.Fields .Cells(1, intColonne + 1) = Fld.Name intColonne = intColonne + 1 Next
'Transférer les enregistrements intLigne = 2 While Not rst.EOF intColonne = 1 For Each Fld In rst.Fields .Cells(intLigne, intColonne) = Fld.Value intColonne = intColonne + 1 Next
'Enregistrement suivant rst.MoveNext intLigne = intLigne + 1 Wend End With
End With
End Sub
Comment faire ?
Bonjour "Maïté"
Quelques modif dans ta procédure ExportationVersExcel_DAO2
A la suite des déclarations, rajoutes:
Dim qry As DAO.QueryDef
Dim repAnnee As String
repAnnee = InputBox("Année désirée ?", "Demande de renseignement")
If Len(repAnnee) = 0 Then Exit Sub
Remplaces :
Set rst = db.OpenRecordset("Bilan CTC Eb")
par :
Set qry = db.QueryDefs("rAnnée")
qry.Parameters("AnnéeVoulue") = CInt(repAnnee)
Set rst = qry.OpenRecordset
où AnnéeVoulue est le paramètre de ta requête. Je l'ai déclaré
explicitement dans la requête (Menu REQUETE|Paramètres) comme Entier
J'effectue l'export d"une requête vers EXCEL, mais ça
marche pas car ma requête est paramétré, un message
d'erreur apparaît est me dit "Trop peu de paramètre. 1
attendu."
En principe à l'éxécution de ma requête je doit saisir
l'année.
Voici mon code VB :
Private Sub Commande8_Click()
ExportationVersExcel_DAO2
End Sub
'REPORTING VERS EXCEL
Sub ExportationVersExcel_DAO2()
Dim xl As Excel.Application
Dim wbk As Excel.Workbook
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim Fld As DAO.Field
Dim intColonne As Integer
Dim intLigne As Integer
'Ouvrir la requête Bilan Eb
Set db = CurrentDb()
Set rst = db.OpenRecordset("Bilan CTC Eb")
'Démarrer Excel
Set xl = New Excel.Application
xl.Visible = True
With xl
'Créer un nouveau classeur
Set wbk = .Workbooks.Add
'Renommer la 1ère feuille du classeur
wbk.Sheets("Feuil1").Name = "Bilan Eb"
With wbk.Sheets("Bilan Eb")
'Transférer les noms de champs
intColonne = 0
For Each Fld In rst.Fields
.Cells(1, intColonne + 1) = Fld.Name
intColonne = intColonne + 1
Next
'Transférer les enregistrements
intLigne = 2
While Not rst.EOF
intColonne = 1
For Each Fld In rst.Fields
.Cells(intLigne, intColonne) = Fld.Value
intColonne = intColonne + 1
Next
'Enregistrement suivant
rst.MoveNext
intLigne = intLigne + 1
Wend
End With
Quelques modif dans ta procédure ExportationVersExcel_DAO2
A la suite des déclarations, rajoutes: Dim qry As DAO.QueryDef Dim repAnnee As String repAnnee = InputBox("Année désirée ?", "Demande de renseignement") If Len(repAnnee) = 0 Then Exit Sub
Remplaces : Set rst = db.OpenRecordset("Bilan CTC Eb") par : Set qry = db.QueryDefs("rAnnée") qry.Parameters("AnnéeVoulue") = CInt(repAnnee) Set rst = qry.OpenRecordset
où AnnéeVoulue est le paramètre de ta requête. Je l'ai déclaré explicitement dans la requête (Menu REQUETE|Paramètres) comme Entier
Le reste est Ok.
Ca marche ? A+ Eric
"Maïté" écrivait news:a14d01c497e6 $db28e860$:
J'effectue l'export d"une requête vers EXCEL, mais ça marche pas car ma requête est paramétré, un message d'erreur apparaît est me dit "Trop peu de paramètre. 1 attendu."
En principe à l'éxécution de ma requête je doit saisir l'année.
Voici mon code VB :
Private Sub Commande8_Click() ExportationVersExcel_DAO2 End Sub
'REPORTING VERS EXCEL Sub ExportationVersExcel_DAO2() Dim xl As Excel.Application Dim wbk As Excel.Workbook Dim db As DAO.Database Dim rst As DAO.Recordset Dim Fld As DAO.Field Dim intColonne As Integer Dim intLigne As Integer
'Ouvrir la requête Bilan Eb Set db = CurrentDb() Set rst = db.OpenRecordset("Bilan CTC Eb")
'Démarrer Excel Set xl = New Excel.Application xl.Visible = True
With xl 'Créer un nouveau classeur Set wbk = .Workbooks.Add
'Renommer la 1ère feuille du classeur wbk.Sheets("Feuil1").Name = "Bilan Eb"
With wbk.Sheets("Bilan Eb") 'Transférer les noms de champs intColonne = 0 For Each Fld In rst.Fields .Cells(1, intColonne + 1) = Fld.Name intColonne = intColonne + 1 Next
'Transférer les enregistrements intLigne = 2 While Not rst.EOF intColonne = 1 For Each Fld In rst.Fields .Cells(intLigne, intColonne) = Fld.Value intColonne = intColonne + 1 Next
'Enregistrement suivant rst.MoveNext intLigne = intLigne + 1 Wend End With