soltwoter
Messages postés1Date d'inscriptionmardi 22 mai 2007StatutMembreDernière intervention22 mai 2007
-
22 mai 2007 à 09:25
bigoliver
Messages postés9Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention 2 janvier 2013
-
2 janv. 2013 à 11:15
Bonjour à tous, je suis nouveau sur le forum. Je migre actuellement une application DAO d'un logiciel vers ADO.
Private Sub Ss0_DataFill(ByVal Col As Long, ByVal Row As Long, ByVal DataType As Integer, ByVal fGetData As Integer, Cancel As Integer)
Dim Ret As Integer
Dim Wstr, Ww As String
Dim Wq As Double
If fGetData Then
Select Case Col
Case 6:
Cancel = False
Ss0.Row = Row
Ss0.RowHidden = False
Ret = SpreadGetText(Ss0, 1, Row, Wstr)
If Wstr = "" Then
Ss0.Col = 8
Ss0.Row = Row
Ss0.Lock = False
Exit Sub ''Ligne Commentaire
End If
Ss0.Col = 3
Ss0.Col2 = 8
Ss0.Row = Row
Ss0.Row2 = Row
Ss0.BlockMode = True
Ss0.Lock = False
Ss0.BlockMode = False Ww "Code_Article '" & Wstr & "'"
FArticle.Recordset.Find Ww
If FArticle.Recordset("Prix_Non_Modifiable_Article") = 1 Then
Ss0.Col = 5
Ss0.Row = Row
Ss0.Lock = True
Ss0.Col = 6
Ss0.Row = Row
Ss0.Lock = True
End If
If FArticle.Recordset("Remise") <> 1 Then
Ss0.Col = 7
Ss0.Row = Row
Ss0.Lock = True
End If
Case 31:
Cancel = True
Ret = SpreadGetText(Ss0, 1, Row, Wstr)
SpreadSetText Ss0, 31, Row, Wstr
Case 32:
Cancel = True
Ret = SpreadGetText(Ss0, 3, Row, Wq)
SpreadSetText Ss0, 32, Row, Wq
Case 33:
Cancel = True
Ret = SpreadGetText(Ss0, 16, Row, Wstr)
SpreadSetText Ss0, 33, Row, Wstr
End Select
End If
End Sub
Voici l'erreur que le compilateur me sort:
Erreur d'exécution '3021'
BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 22 mai 2007 à 09:28
Salut,
As-tu regardé dans ton aide en ligne ce que veut dire Eof et Bof ? Non ?
Cela veut dire que tu est soit à la fin de ton fichier soit au début, et ne peux par exemple faire un movenext, moveprevious....
relieves
Messages postés4Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention23 mai 2007 22 mai 2007 à 10:20
Merci de m'avoir répondu Exploreur. Je sais bien ce que signifient EOF(End of File) et BOF (Begin of file). Cependant je ne fai aucune movenext ou moveprevious dans mon code
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 22 mai 2007 à 20:52
Effectivement tu ne fais pas de movenext, mais tu ne vérifie pas non plus que ton recordset contient au moins 1 enregistrement, tu y va franco, tu attaque direct la lecture de l'enregistrement courant. Hors si ton recordset n'a retourné aucun enregistrement, il n'y a pas d'enregistrement courant et donc une erreur la de la tentative d'accès.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
relieves
Messages postés4Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention23 mai 2007 22 mai 2007 à 21:10
Merci de m'aider à comprendre mes erreurs. Cependant, j'aimerais savoir ce qu'il faut que je rajoute! Je sais que je fais des erreurs mais je ne vois pas ce qu'il faut que je change conccrètement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 22 mai 2007 à 21:17
Je connais pas ADO, mais je pense que ça doit etre comme en DAO, tu dois avoir quelque chose du genre .Recordset.Count, qui doit etre différent de 0 lorsque tu as des enregistrements.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
bigoliver
Messages postés9Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention 2 janvier 2013 2 janv. 2013 à 11:15
C'est exact pour le EOF et le BOF, et aussi, le Recordset.RecordCount retourne le nombre d'enregistrements présents dans la table ou la requête associée au RecordSet et non le nombre d'entrées trouvées après une recherche.