Pbm d'envoi de donnees access dans un fichier excel

Résolu
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004 - 4 oct. 2004 à 12:03
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004 - 6 oct. 2004 à 11:29
Salut a tous!
Voila le probleme: Je veux recuperer les donnees d'une requete que j'execute dans vb sur ma base, et les envoyer sur une feuille excess preformattee...
Voila le code qui pose probleme

Dim i As Date
Dim ligne As Long
Dim MonFichier As String

MonFichier = "BudapestTest.xls"
Set MonXL = CreateObject("Excel.Application")
MonXL.Visible = True
MonXL.UserControl = True
MonXL.Workbooks.Open FileName:="E:\Documents and Settings\adlepine\My Documents" & MonFichier
MonXL.Range("B7").Value = StartDate

'Si on a coche Downtime, Envoi des resultat en colonne D7
If CheckDowntime = -1 Then
ligne = 7 'Entree des donnees
For i = StartDate To EndDate

Dim Enreg As Recordset
DoCmd.RunSQL ("Select Count(StatusID) As Downt INTO NouvelleRequete FROM tbl_test_Mc_Status WHERE TimeStamp LIKE """ & i & "*"" AND (StatusID=14 OR StatusID=15 OR StatusID=16 OR StatusID=17 OR StatusID=19)")
DoCmd.OpenTable "NouvelleRequete"

Set DBA = CurentDb
Set Enreg = DBA.OpenRecordset("SELECT Downt FROM NouvelleRequete")
Enreg.MoveFirst

MonXL.Cells(ligne, 7).Value = Enreg!Downt
ligne = ligne + 1
Next i
End If

La, on me dit pbm de Type avec DBA, mais qud je declare DBA comme DataBase, On me dit que le type n'existe pas....
Une idée?

18 réponses

cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
5 oct. 2004 à 09:41
OK, Merci a tous, j'ai trouve une soluc qui fonctionne.... JE vous donne le code au cas ou:

Dim i As Date
Dim ligne As Long
Dim MonFichier As String

'open the Excel file
MonFichier = "BudapestTest.xls"
Set MonXL = CreateObject("Excel.Application")
MonXL.Visible = True
MonXL.UserControl = True
MonXL.Workbooks.Open FileName:="M:\Engineering\Support_Budapest" & MonFichier
'get the date in XL file
MonXL.Range("B7").Value = StartDate

'If Downtime is checked, get the result in row D in Budapest.XLS
If CheckDowntime = -1 Then
ligne = 7
Dim DBA As Database Set DBA OpenDatabase("M:\Engineering\Support_Budapest\Tx_Bud.mdb", ReadOnly True)
Dim Enreg As DAO.Recordset

'Get Downtimes daily
For i = StartDate To EndDate
Set Enreg = DBA.OpenRecordset("Select Count(StatusID) As Downt FROM tbl_test_Mc_Status WHERE TimeStamp LIKE """ & i & "*"" AND (StatusID=14 OR StatusID=15 OR StatusID=16 OR StatusID=17 OR StatusID=19)", dbOpenDynaset)
Enreg.MoveFirst
MonXL.Cells(ligne, 4).Value = Enreg!Downt
Enreg.Close
ligne = ligne + 1
Next i
DBA.Close

Salut, et encore merci a jrivet et liquide! 8-)
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 oct. 2004 à 12:13
Salut,

as tu ajouter a ton projet la reference qui te permet d utiliser le type de variable DataBase (une reference DAO il me semble).

-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
4 oct. 2004 à 12:25
Heu.... Je suis plutôt debutant en la matiere... Comment qu'on fait?
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 oct. 2004 à 12:31
Re,

Menu Projet ... References.

Et dedans tu selecciones Microsoft DAO X.X Object Library.

Voila,`@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
4 oct. 2004 à 12:32
OK,Merci, J'ai trouve, mais y'a un nouveau pbm: y me dit "Object required" sur cette ligne:
Set DBA = CurentDb

Un autre soluc
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 oct. 2004 à 12:48
Re,

C est Coi curentDB , c est de quel Type et tu l a defini ou ? (pas dans le code que tu as file en tout cas...)

@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
4 oct. 2004 à 12:59
En fait, je voulais récuperer la base dans laquelle le code fonctionne.... Mais, ca marche peut etre pas comme ca?

:big)
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 oct. 2004 à 13:00
re,

Essai
set DBA = "LeCheminDeTaBAse".

Salut
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
4 oct. 2004 à 13:09
Salut!
Bon maintenant, il me remet le "type mismatch" sur la ligne:
Set DBA = "Chemin_de_ma_base.mdb"

J'vais le tuer ce computer........ >:)

Si vous avez des idees......
0
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
4 oct. 2004 à 13:16
OK, en fait faut faire:
set DBA = OpenDatabase("Chemin")

Mais il me met une erreur de type sur la ligne suivante du recordset:
Set Enreg = DBA.OpenRecordset("SELECT Downt FROM NouvelleRequete")

La, je vois pas.......
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
4 oct. 2004 à 13:22
salut
le mieux c'est de faire un openrecordset tout seul, puis bien apres lui affecté des requetes avec l'instruction "open" si je ne me trompe : Enreg.open "requete", dba

Puis, il faut savoir si "enreg est du type : dim enreg as recordset

Puis finallement donne le bout de ton code avec toutes les variables, de facon a voir comment tu as déclaré tout ca.

Bonne prog, poele_a_frire@hotmail.com
liquide
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 oct. 2004 à 13:23
qu est ce qui te met comme erreur ?

-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
4 oct. 2004 à 13:33
Je vous donne le code:

Dim i As Date
Dim ligne As Long
Dim MonFichier As String

MonFichier = "BudapestTest.xls"
Set MonXL = CreateObject("Excel.Application")
MonXL.Visible = True
MonXL.UserControl = True
MonXL.Workbooks.Open FileName:="E:\Documents and Settings\adlepine\My Documents" & MonFichier
MonXL.Range("B7").Value = StartDate

'Si on a coche Downtime, Envoi des resultat en colonne D7
If CheckDowntime = -1 Then
ligne = 7
For i = StartDate To EndDate
Dim DBA As Database
Dim Enreg As Recordset
DoCmd.RunSQL ("Select Count(StatusID) As Downt INTO NouvelleRequete FROM tbl_test_Mc_Status WHERE TimeStamp LIKE """ & i & "*"" AND (StatusID=14 OR StatusID=15 OR StatusID=16 OR StatusID=17 OR StatusID=19)")
DoCmd.OpenTable "NouvelleRequete"

Set DBA = OpenDatabase("M:\Engineering\Support_Budapest\Tx_Bud.mdb")
Set Enreg = DBA.OpenRecordset("SELECT Downt FROM NouvelleRequete")
Enreg.MoveFirst

MonXL.Cells(ligne, 7).Value = Enreg!Downt
ligne = ligne + 1
Next i
End If

En ce qui concerne l'erreur, il me met:
"Type Mismatch"
J'comprend pas......
0
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
4 oct. 2004 à 13:41
liquide,
Si je tente ton truc de separer le openrecordset, il me met: "Object variable or With block variable not set"

????????????????????????????????????????????????????
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
4 oct. 2004 à 14:03
ah ok j'avais pas capter que tu etais en dao, dsl

Bonne prog, poele_a_frire@hotmail.com
liquide
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 oct. 2004 à 14:44
re,

j vois pas pourcoi ca chie car j ai essayer et moi ca marche nickel.

...
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 oct. 2004 à 09:58
SAlut,

Content que tu aies trouve, mais c est coi alors qui faisait que ton programe plantait ?

@+
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------

:big)
0
cs_Poots Messages postés 17 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 29 octobre 2004
6 oct. 2004 à 11:29
En fait je sais pas, alors j'ai simplifier en virant la création de table NouvelleRequete et en executant directement la requte dans le recordset... Ca marche, c ca qui compte!
Merci encore pour ton aide!
0
Rejoignez-nous