cs_Poots
Messages postés17Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention29 octobre 2004
-
4 oct. 2004 à 12:03
cs_Poots
Messages postés17Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention29 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
'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?
cs_Poots
Messages postés17Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention29 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
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 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.
'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......
cs_Poots
Messages postés17Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention29 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!