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 :

Unexpected error (2121) sous Access 97 ???


Sujet :

Access

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Par défaut Unexpected error (2121) sous Access 97 ???
    Bonjour à tous,

    A l'ouverture de mon programme Access, une erreur 'Unexpected error (2121)' apparait et le formulaire se bloque.
    Si je supprime le code dans l'événement 'on open', plus de problème.

    Voici ce que me donne le help :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    This condition may or may not be serious. This error has the following cause and solution: 
     
    ·	An unanticipated error occurred in the host application or in Visual Basic.
     
    You don't have to assume that this error is serious. However, you should note the number of the error and report it to Microsoft Technical Support.
     
    For additional information, select the item in question and press F1.
    Quelqu'un a t-il une idéé ?

  2. #2
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    For additional information, select the item in question and press F1.
    ça t'a donné quoi quand t'as fait ça ?

    Si ce n'est pas fait essaie de savoir de quelle ligne vient l'erreur (mode pas à pas) et appuie sur f1.

  3. #3
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    Demco,
    Il serait peut etre bon d'avoir son code qui s'execute à l'ouverture de son form; non?

  4. #4
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    Citation Envoyé par keita
    Demco,
    Il serait peut etre bon d'avoir son code qui s'execute à l'ouverture de son form; non?
    Oui tout à fait. Cependant j'aime bien dans un premier temps essayer de montrer comment il peut de lui même trouver son erreur. Ca peut toujours servir pour de futurs problèmes.
    Mais si ça ne donne rien, bien évidemment, son code est le bienvenu !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 11
    Par défaut
    Merci déjà de m'avoir répondu !

    F1 ne donne aucune info supplémentaire (merci windows).

    Voici le code :

    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    Private Sub Form_Open(Cancel As Integer)
     
    Dim requete, fichier As String
    Dim date_fichier, date1, date2 As Date
    Dim rst, rst1 As Recordset
    Dim tb As Database
     
        ' Mise à jour des verrous
     
        ' Si la dernière version des verrous date d'un jour ou plus
        If DateDiff("d", Format(FileDateTime("F:\VPKO_OPPE\All\verrous\verrous.txt"), "dd/mm/yyyy"), Format(date, "dd/mm/yyyy")) > 0 And CurrentNTUser = "ddro325" Then
     
            'Dernier la date du dernier fichier sur le répertoire F:\040\Tfts\Ga31030b
            fichier = Consult_repertoire
            date_fichier = FileDateTime("F:\040\Tfts\Ga31030b\" & fichier)
     
            ' Si la dernière version du F:\040\Tfts\Ga31030b est plus récente que F:\VPKO_OPPE\All\verrous\verrous.txt
            date1 = Format(FileDateTime("F:\040\Tfts\Ga31030b\" & fichier), "dd/mm/yyyy")
            date2 = Format(FileDateTime("F:\VPKO_OPPE\All\verrous\verrous.txt"), "dd/mm/yyyy")
            If Format(date1 > date2) Then
     
                Application.SetOption "Confirm Action Queries", False
     
                ' On annule et remplace verrous.txt par F:\040\Tfts\Ga31030b\$fichier
                FileCopy "F:\040\Tfts\Ga31030b\" & fichier, "F:\VPKO_OPPE\All\verrous\verrous.txt"
     
                ' On effectue ensuite le transfert vers la base de données
                Set tb = CurrentDb
                requete = "SELECT date_transfert, userid FROM date_trsf_verrous;"
                Set rst = tb.OpenRecordset(requete)
                rst.MoveFirst
                If rst.Fields(0) <> date Then
                    DoCmd.DeleteObject acTable, "verrous_hier"
                    DoCmd.CopyObject "", "verrous_hier", acTable, "verrous"
                    DoCmd.RunSQL "DELETE * from verrous;"
                    DoCmd.TransferText acImportFixed, "specification", "verrous", "F:\VPKO_OPPE\All\verrous\verrous.txt"
                    rst.Edit
                    rst.Fields(0) = date
                    rst.Fields(1) = CurrentNTUser()
                    rst.Update
     
                    ' On effectue le tri Verrous admins et non admins
                    DoCmd.RunSQL "DELETE * from en_possession_de;"
                    DoCmd.RunSQL "INSERT INTO en_possession_de ( F1, R1, F2, F3, R2, F4, F5, F6, F7, R3, F8, F9, F10, F11, R4, F12, F13, F14, F15 ) " _
                    & "SELECT verrous.F1, verrous.R1, verrous.F2, verrous.F3, verrous.R2, verrous.F4, verrous.F5, verrous.F6, verrous.F7, verrous.R3, verrous.F8, verrous.F9, verrous.F10, verrous.F11, verrous.R4, verrous.F12, verrous.F13, verrous.F14, verrous.F15 " _
                    & "FROM verrous WHERE (((verrous.F3) Is Null));"
                    DoCmd.RunSQL "DELETE verrous.F3 FROM verrous WHERE (((verrous.F3) Is Null));"
     
                    ' Envoi des mails pour les verrous qui doivent être clôturés aujourd'hui
                    mails_verrous
     
                End If
     
                Application.SetOption "Confirm Action Queries", True
     
            End If
     
        End If
     
        ' Mise à jour des mouvements de verrous
     
        ' Si la dernière version des mouvements date d'un jour ou plus
        If DateDiff("d", Format(FileDateTime("F:\VPKO_OPPE\All\verrous\mouvements.txt"), "dd/mm/yyyy"), Format(date, "dd/mm/yyyy")) > 0 And CurrentNTUser = "ddro325" Then
     
            'Dernier la date du dernier fichier sur le répertoire F:\040\Tfts\Ga2u120f
            fichier = Consult_repertoire_
            date_fichier = FileDateTime("F:\040\Tfts\Ga2u120f\" & fichier)
     
            ' Si la dernière version du F:\040\Tfts\Ga2u120f est plus récente que F:\VPKO_OPPE\All\verrous\mouvements.txt
            date1 = Format(FileDateTime("F:\040\Tfts\Ga2u120f\" & fichier), "dd/mm/yyyy")
            date2 = Format(FileDateTime("F:\VPKO_OPPE\All\verrous\mouvements.txt"), "dd/mm/yyyy")
            If Format(date1 > date2) Then
     
                Application.SetOption "Confirm Action Queries", False
     
                ' On annule et remplace mouvements.txt par F:\040\Tfts\Ga2u120f\$fichier
                FileCopy "F:\040\Tfts\Ga2u120f\" & fichier, "F:\VPKO_OPPE\All\verrous\mouvements.txt"
     
                ' On effectue ensuite le transfert vers la base de données
                Set tb = CurrentDb
                requete = "SELECT date_transfert, userid FROM date_trsf_mouvements;"
                Set rst = tb.OpenRecordset(requete)
                rst.MoveFirst
                If rst.Fields(0) <> date Then
                    DoCmd.RunSQL "DELETE * from mouvements;"
                    DoCmd.TransferText acImportFixed, "Modif Import Specification", "mouvements", "F:\VPKO_OPPE\All\verrous\mouvements.txt"
                    rst.Edit
                    rst.Fields(0) = date
                    rst.Fields(1) = CurrentNTUser()
                    rst.Update
                    Faits_du_jour ' Détermine les types de verrous faits le jour même
                    Faits_summary ' Mise à jour des statistiques (verrous effectués en J-1)
                    Nouveaux_summary ' Mise à jour des statistiques (nouveaux verrous du jour)
                    Ajout_lignes_manquantes
                End If
     
                Application.SetOption "Confirm Action Queries", True
     
            End If
     
        End If
     
        ' Envoi des verrous adm de + de 150 jours à chaque gestionnaires une x par semaine
        Application.SetOption "Confirm Action Queries", False
     
        Set tb = CurrentDb
        requete = "SELECT date_transfert, userid FROM date_env_list_vieux_verrous;"
        Set rst = tb.OpenRecordset(requete)
        rst.MoveFirst
        If rst.Fields(0) <= date - 7 Then
            rst.Edit
            rst.Fields(0) = date
            rst.Fields(1) = CurrentNTUser()
            rst.Update
            mail_150j
        End If
     
        Application.SetOption "Confirm Action Queries", True
     
        team
     
        ordre = "ORDER BY verrous_team.[F4], verrous_team.[F1];"
        flag_respect_delai = False
        id = ""
        ver = "*"
        type_verrou_ = "((verrous_team.[F7])"
        delai.Enabled = False
        filtre
     
    End Sub
    En exécutant pas à pas, je constate qu'il bloque déjà sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rst, rst1 As Recordset
    Ce qui est bizarre, c'est que tout fonctionnait très bien puis sans avoir modifier quoi que ce soit, 2 secondes après, plus rien ne va !!!

    Chose à savoir : L'application est située sur un file server, accès 'write' pour tous et seulement depuis aujourd'hui.

    Il me sort aussi ceci sur d'autres formulaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... you and another user are attempting to change the same data ...
    Je pense que ces 2 problèmes sont liés.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Bonjour,

    J'ai déjà eu ce genre de problème (peut être pas le même numéro) alors que j'avais changer un nom de bouton directement dans le code.

    Exemple, j'avais un bouton nommé cmdKen dans mon formulaire et j'avais dans mon module

    Private Sub cmdTaxe_Clik()
    ...
    End Sub

    Le fait qu'il manquait le "C" avant le "K" du click générait des erreurs.

    Pour solutionner, backup le code de ton on open du formulaire.
    Puis recrée l'événement

    Private Sub Form_Open(Cancel As Integer)
    end sub

    que tu laisses vide, teste l'ouverture, puis réintroduit partie par partie ton code et teste pour voir ou ça coince.

    Sinon, cré une nouvelle DB et réimporte objet par objet...

  7. #7
    Membre Expert
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 885
    Par défaut
    tu as ecrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Rst, Rst1 as Recordeet
    si Rst un recordset comme Rst1, il faut ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Rst As Recordset, Rst1 as Recordset
    suggestion
    1/crée un nouveau module
    2/crée une fonction la dedans
    3/entre Function et end function , copie ton code là en prenant entre private et end sub.
    4/compile ton projet et note le 1er message.
    @+

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Si rien de tous cela ne marche tu peux aussi faire :

    1) creer une nouvelle base vierge
    2) Importer tous tes objets (table, requète, etc) dans la nouvelle base
    3) Compiler la nouvelle base

    C'est rapide et simple et ca resoud pas mal de problèmes mystérieux d'Acces.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Update sous Access
    Par Sk8cravis dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2009, 14h29
  2. Réponses: 2
    Dernier message: 04/06/2004, 11h11
  3. mise a jours des données sous access
    Par puyopuyo dans le forum ASP
    Réponses: 4
    Dernier message: 25/05/2004, 12h46
  4. QUESTION SUR AVG, Sous Access
    Par sylvaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/10/2003, 13h51
  5. [Optimisation] Rushmore sous Access
    Par P'tit Jean dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/07/2003, 15h15

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