alio25
Messages postés14Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention30 avril 2007
-
23 mars 2007 à 17:45
alio25
Messages postés14Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention30 avril 2007
-
26 mars 2007 à 08:57
Salut à tous,
je travaille actuellement sur un projet sous access.
voici mon problème:
D'une fonction sous vb, j'aimerais à l'ouverture d'un etat actualiser une textbox.
Ma fonction fais le tri sur les dates contenus dans une des colonnes de mon etat(requete associée), et elle devrait affecter à la textbox les deux dates extremes.
Voici mon code (ce qu'il ya de plus banal...):
Private Sub Report_Open(Cancel As Integer)
Dim db As Database
Dim Rs As DAO.Recordset
' Ouverture de la base de données
Set db = CurrentDb
'chargement des dates à trier
sql = "SELECT [FicheCalcul Requête].[DateAppel] FROM [FicheCalcul Requête];"
Set Rs = db.OpenRecordset(sql)
Dim DateDeb As Date
Dim DateFin As Date
Rs.MoveFirst
DateDeb = CDate(Rs("DateAppel"))
DateFin = CDate(Rs("DateAppel"))
Do While Not Rs.EOF
If CDate(Rs("DateAppel")) < DateDeb Then
DateDeb = CDate(Rs("DateAppel"))
Else
Rs.MoveNext
End If
Loop
Rs.MoveFirst
Do While Not Rs.EOF
If CDate(Rs("DateAppel")) > DateFin Then
DateFin = CDate(Rs("DateAppel"))
Else
Rs.MoveNext
End If
Loop
Texte19.Text = "du " & Format(DateDeb, "mm/dd/yyyy") & " au " & Format(DateFin, "mm/dd/yyyy")
End Sub
Mais une erreur qui revient : Control pas activé
j'suis desespéré....
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 23 mars 2007 à 17:52
Sous quoi développes-tu ?
Il semble que ce ne soit pas sous VB.Net, section dans laquelle tu as "posté" ta question..... qui y aurait eu sa place si, développant sous VB.Net, tu pilotais Access...
Ton problème semble simplement être celui du choix de l'événement (au load, par exemple, rien ne t'assure de ce que la textbox Texte19 est déjà chargée...)
FaroukVazaha
Messages postés42Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention11 septembre 2010 23 mars 2007 à 20:08
Salut,
Petite astuce pour te simplifier ton pgm en supprimant tes boucles : positionne ta colonne de date dans la base de données comme étant un index et classé croissant.
Après récupération dans Rs la un movefirst donne la 1ère date et un move last donne la dernière.
Pour connaitre le control qui génére l'erreur as-tu essayé le debug ?
farouk_ch
Messages postés12Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention20 février 2009 24 mars 2007 à 11:17
Salut alio25,C’est évident ce message d'erreur car, lors de l'ouverture d'un état, le contrôle TextBox n’est pas encore activé.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Donc il vaut mieux de placer ta fonction dans un module et la définir comme source des données de Texte19 :
1)
Créez un nouvel module et lui ajoutez la fonction suivante :
Public Function GetDates() As String
Dim db As Database
Dim Rs As DAO.Recordset
' Ouverture de la base de données
Set db = CurrentDb
Dim DateDeb As Date
Dim DateFin As Date
'chargement de date de départ
SQL = "SELECT Min([FicheCalcul Requête].[DateAppel]) FROM [FicheCalcul Requête];"
Set Rs = db.OpenRecordset(SQL)
DateDeb = CDate(Rs("DateAppel"))
'chargement de date de Fin
SQL = "SELECT Max([FicheCalcul Requête].[DateAppel]) FROM [FicheCalcul Requête];"
alio25
Messages postés14Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention30 avril 2007 26 mars 2007 à 08:57
Salut à tous et merci pour votre aide...
désolé pour mon absence j'étais en wk et pas de connexion...
Effectivement, comme l'a signalé 1013099 farouk_ch, l'activation de controle de la textbox. =1013099 farouk_ch merci encore, j'essaie ta solution; je pense que ça devrais aller(pour l'instant j'ai une erreur avec les fonction min et max: je dois trouvé la bonne utilisation pour vba (car en fait je suis sous access).