IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

erreur d'execution argument non valide


Sujet :

Access

  1. #1
    Membre régulier
    Inscrit en
    Août 2002
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 157
    Points : 112
    Points
    112
    Par défaut erreur d'execution argument non valide
    bonjour,
    j'ai une base de donné, qui contie un champ heure au format 24 heure(genre 16:00) je dois recupérer la partie heure et la metre dans un champ de ma table, la table contient plus 700000 enregistrement , j'ai fais un petit programme .le programme fonctionnent correctement jusqu'a lenregsitrement numéro 497687 et s'arret en m'affichant cette erreur
    ca n'a pas marcher il m'affiche une erreure
    erreur d'execution '-2147217887 (80040e21)'
    argument non valide
    j'ai essayer plusieur variante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Compare Database
     
    Private Sub Commande0_Click()
        Dim con As Object
        Dim rsSource As New ADODB.Recordset
        Dim Heure, jour As String
        Dim JourHeure As Integer
        Dim madate As Date
        Set con = Application.CurrentProject.Connection
        rsSource.Open "Select  Heure,HeureAbrégée from donnees", con, adOpenStatic, adLockOptimistic
     
        If (rsSource.RecordCount > 0) Then
           rsSource.MoveFirst
           While rsSource.EOF <> True
               Heure = rsSource!Heure
              rsSource!HeureAbrégée = CInt(Left(rsSource!Heure, 2)) 'CInt(jour & heure)
     
             rsSource.MoveNext 'il sarret sur cette ligne
            Wend 
             rsSource.MoveFirst    
         rsSource.Update
        End If
       rsSource.Close
       Set rsSource = Nothing
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Compare Database
     
    Private Sub Commande0_Click()
        Dim con As Object
        Dim rsSource As New ADODB.Recordset
        Dim Heure, jour As String
        Dim JourHeure As Integer
        Dim madate As Date
        Set con = Application.CurrentProject.Connection
        rsSource.Open "Select  Heure,HeureAbrégée from donnees", con, adOpenStatic, adLockOptimistic
     
        If (rsSource.RecordCount > 0) Then
           rsSource.MoveFirst
           While rsSource.EOF <> True
               Heure = rsSource!Heure
              rsSource!HeureAbrégée = CInt(Left(rsSource!Heure, 2)) 'CInt(jour & heure)
              rsSource.Update 'il sarret sur cette ligne
             rsSource.MoveNext
            Wend 
     
     
        End If
       rsSource.Close
       Set rsSource = Nothing
     
    End Sub
    je me suis dis que peut etre jk'exedé la taille limite d'un recordset
    j'ai fractionné mon calcul avec la meme ooption le update en dors de la boucle et à l'interieur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    Option Compare Database
     
    Private Sub Commande0_Click()
     
    Dim conAjout As Object
    Dim rsAjout As New ADODB.Recordset
    Set conAjout = Application.CurrentProject.Connection
     
    Dim conDate As Object
    Dim rsDate As New ADODB.Recordset
     
    Dim strsql As String
    Dim TheDates(20) As Variant
    Dim cpt As Integer
     
       cpt = 1
     
       Set conDate = Application.CurrentProject.Connection
     
       strsql = "SELECT distinct(Date) FROM donnees"
       rsDate.Open strsql, conDate, adOpenStatic, adLockReadOnly
       If rsDate.RecordCount = 0 Then
         DoCmd.Hourglass False
         Set rsDate = Nothing
         Set conDate = Nothing
         Set rsAjout = Nothing
         Set conAjout = Nothing
     
         MsgBox "Il n'y a aucune date dans la table AppelsPannes. La fonction sera interrompue."
         Exit Sub
       Else
             rsDate.MoveFirst
             While Not rsDate.EOF
                 TheDates(cpt) = rsDate!Date
                 rsDate.MoveNext
                 cpt = cpt + 1
             Wend
     
     
            Dim Heure As String
            Dim HeureDebut As Long
            Dim Intervalle As Integer
     
            Dim rs As Object
            Dim con As Object
            Dim conUpdate As Object
            Dim rsUpdate As Object
            Dim I As Integer
            Dim J As Integer
            HeureDebut = 0
            Intervalle = 10000
     
            Set con = Application.CurrentProject.Connection
            Set rs = CreateObject("ADODB.Recordset")
            Set conUpdate = Application.CurrentProject.Connection
            Set rsUpdate = CreateObject("ADODB.Recordset")
     
     
            SysCmd acSysCmdInitMeter, "Progression en cours", CInt(cpt - 1 * 2)
            For I = 1 To cpt - 1 'Pour chaque date
              For J = 0 To 2 'Pour chaque groupe d'heures
                strsql = "SELECT Heure,HeureAbrégée from donnees  WHERE donnees.Heure LIKE " & "'" & J & "%'" & " AND donnees.Date = #" & TheDates(I) & "#"
                rs.Open strsql, con, adOpenStatic, adLockOptimistic
                If (rs.RecordCount > 0) Then
                  rs.MoveFirst
                    While rs.EOF <> True
                       Heure = rs!Heure
                       rs!HeureAbrégée = CInt(Left(rs!Heure, 2)) 'CInt(jour & heure)
                      rs.Update
                      rs.MoveNext
                    Wend
     
     
                    ProgressBar2.Value = CInt(I * J * 100 / ((cpt - 1) * 2))
                  End If
                  rs.Close
                  SysCmd acSysCmdUpdateMeter, I * J
              Next
              HeureDebut = 0
            Next
     
     
        End If
     
        Set rs = Nothing
        Set con = Nothing
        Set rsUpdate = Nothing
        Set conUpdate = Nothing
        Set rsAjout = Nothing
        Set conAjout = Nothing
        DoCmd.Hourglass False
        MsgBox "Fin. Le résultat final se retrouve dans la table StatsParHeure"
        SysCmd acSysCmdRemoveMeter 'Supprime la jauge d'avancement
     
    End Sub
    bien sur quand je met le uopdate dans la boucle ca prend boucoup plus de tempsm. je ne comprends plus rien ca ne fonction pas avec la même erreur et il s'arrete toujours sur le même enregistrement 497687
    quelqu'un aurait une explication
    merci

  2. #2
    jnore
    Invité(e)
    Par défaut
    lorsque ton application entre en mode debug, essaie de pointer ta souris vers les différentes variables de ton programme. Peut-être que tu trouveras ce qui ne va pas!

    Je n'ai jamais eu l'occasion de traiter 700000lignes d'1 seul coup.
    Limite Access?

Discussions similaires

  1. Erreur d'exécution 3001: Argument non valide
    Par piTz0r dans le forum VBA Access
    Réponses: 19
    Dernier message: 13/08/2008, 10h34
  2. Erreur, argument non valide sur IE
    Par Babssss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2007, 08h08
  3. [A2-VBA][Débutante] Erreur "Argument non valide"
    Par Ericka dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2006, 17h35
  4. Réponses: 8
    Dernier message: 08/09/2006, 15h09
  5. Erreur : 'argument non valide'
    Par celticval dans le forum Access
    Réponses: 9
    Dernier message: 07/07/2006, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo