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

VB 6 et antérieur Discussion :

Erreur 430 La classe ne gère pas Automation ou l'interface attendue


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut Erreur 430 La classe ne gère pas Automation ou l'interface attendue
    bonjour.
    je rencontre ce problème à l'installation de mon application sur un autre poste que le mien. j'ai fait des recherches mais elles se sont relevées infructueuses. aussi, je vous le soumet. dans un module, j'ai ce 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
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    Public Function IsLoadedForm(ByVal Frm As Form) As Boolean
        Dim F As Form
     
        For Each F In Forms
            If F Is Frm Then
                IsLoadedForm = True
                Exit For
            End If
        Next
    End Function
     
    Public Function ContrainteDateTime(TB As Variant, CheminSon As String) As Boolean
        ContrainteDate = False
        If TB.Text = "" Then Exit Function
     
        If IsDate(TB.Text) = False Then
            ContrainteDate = True
            JouerSon CheminSon
            MsgBox "Entrez une valeur de type ''DATE''.", , "Contrainte"
            Exit Function
        End If
     
        If InStr(TB.Text, ":") <> 0 Then
            TB.Text = Format(TB.Text, "hh:mm:ss")
          Else
            TB.Text = Format(TB.Text, "dd/MM/yyyy")
        End If
    End Function
     
    Function ValeurEnLettre(L As Double)
        Select Case Len(CStr(L))
            Case 1
                ValeurEnLettre = CHIFFRE_1(L)
            Case 2
                ValeurEnLettre = CHIFFRE_2(L)
            Case 3
                ValeurEnLettre = CHIFFRE_3(L)
            Case 4 To 6
                ValeurEnLettre = CHIFFRE_MILLE(L)
            Case Else
                ValeurEnLettre = CHIFFRE_MILLION(L)
        End Select
    End Function
     
    Private Function CHIFFRE_1(N As Double)
        Select Case N
            Case 1
                CHIFFRE_1 = "un"
            Case 2
                CHIFFRE_1 = "deux"
            Case 3
                CHIFFRE_1 = "trois"
            Case 4
                CHIFFRE_1 = "quatre"
            Case 5
                CHIFFRE_1 = "cinq"
            Case 6
                CHIFFRE_1 = "six"
            Case 7
                CHIFFRE_1 = "sept"
            Case 8
                CHIFFRE_1 = "huit"
            Case 9
                CHIFFRE_1 = "neuf"
        End Select
    End Function
     
    Private Function CHIFFRE_2(N As Double)
        Select Case N
            Case 10
                CHIFFRE_2 = "dix"
            Case 11
                CHIFFRE_2 = "onze"
            Case 12
                CHIFFRE_2 = "douze"
            Case 13
                CHIFFRE_2 = "treize"
            Case 14
                CHIFFRE_2 = "quatorze"
            Case 15
                CHIFFRE_2 = "quinze"
            Case 16
                CHIFFRE_2 = "seize"
            Case 20
                CHIFFRE_2 = "vingt"
            Case 30
                CHIFFRE_2 = "trente"
            Case 40
                CHIFFRE_2 = "quarante"
            Case 50
                CHIFFRE_2 = "cinquante"
            Case 60
                CHIFFRE_2 = "soixante"
            Case 70
                CHIFFRE_2 = "soixante-dix"
            Case 80
                CHIFFRE_2 = "quatre-vingts"
            Case 90
                CHIFFRE_2 = "quatre-vingt-dix"
            Case Else
                Dim Q As Double: Dim R As Double
                Q = 10 * Int(N / 10)
                R = N Mod 10
     
                Select Case N
                    Case 71 To 79, 91 To 99
                        CHIFFRE_2 = CHIFFRE_2(Q - 10) & " " & CHIFFRE_2(R + 10)
                    Case Else
                        If R = 1 Then
                            CHIFFRE_2 = CHIFFRE_2(Q) & "-un"
                          Else
                            CHIFFRE_2 = CHIFFRE_2(Q) & "-" & CHIFFRE_1(R)
                        End If
                End Select
        End Select
    End Function
     
    Private Function CHIFFRE_3(N As Double)
        Select Case N
            Case 100
                CHIFFRE_3 = "cent"
            Case Else
                Dim Q As Double: Dim R As Double
                Q = Int(N / 100)
                R = N Mod 100
                Dim C As String
     
                If Q = 1 Then
                    C = "cent "
                  Else
                    C = CHIFFRE_1(Q) & " cents "
                End If
     
                Select Case R
                    Case 1 To 9
                        C = C & CHIFFRE_1(R)
                    Case 10 To 99
                        C = C & CHIFFRE_2(R)
                End Select
     
                CHIFFRE_3 = C
        End Select
    End Function
     
    Private Function CHIFFRE_MILLE(N As Double)
        Select Case N
            Case 1000
                CHIFFRE_MILLE = "mille "
            Case Else
                Dim Q As Double: Dim R As Double
                Q = Int(N / 1000)
                R = N Mod 1000
                Dim C As String
     
                Select Case Q
                    Case 1
                        C = "mille "
                    Case 2 To 9
                        C = CHIFFRE_1(Q) & " mille "
                    Case 10 To 99
                        C = CHIFFRE_2(Q) & " mille "
                    Case 100 To 999
                        C = CHIFFRE_3(Q) & " mille "
                End Select
     
                Select Case R
                    Case 1 To 9
                        C = C & CHIFFRE_1(R)
                    Case 10 To 99
                        C = C & CHIFFRE_2(R)
                    Case 100 To 999
                        C = C & CHIFFRE_3(R)
                End Select
     
                CHIFFRE_MILLE = C
        End Select
    End Function
     
    Private Function CHIFFRE_MILLION(N As Double)
            Dim Q As Double: Dim R As Double
            Q = Int(N / 1000000)
            R = N Mod 1000000
            Dim C As String
     
            Select Case Q
                Case 1 To 9
                    C = "un million "
                Case 2 To 9
                    C = CHIFFRE_1(Q) & " millions "
                Case 10 To 99
                    C = CHIFFRE_2(Q) & " millions "
                Case 100 To 999
                    C = CHIFFRE_3(Q) & " millions "
            End Select
     
            Select Case R
                Case 1 To 9
                    C = C & CHIFFRE_1(R)
                Case 10 To 99
                    C = C & CHIFFRE_2(R)
                Case 100 To 999
                    C = C & CHIFFRE_3(R)
                Case 1000 To 999999
                    C = C & CHIFFRE_MILLE(R)
            End Select
     
            CHIFFRE_MILLION = C
    End Function
     
    Public Function ValiderDecimal(V)
        Dim P As Double
        P = InStr(V, ",")
     
        If P = 0 Then
            ValiderDecimal = V
          Else
            Dim D As Variant
            Dim G As Variant
     
            G = Left(CStr(V), P - 1)
            D = Right(CStr(V), Len(CStr(V)) - P)
     
            ValiderDecimal = G & "." & D
        End If
    End Function
     
    Public Sub KeyPressedInteger(K As Integer)
        Select Case K
            Case 1 To 31, 48 To 57
            Case Else
                Beep
                K = 0
        End Select
    End Sub
     
    Public Sub KeyPressedDecimal(K As Integer, bVal As String)
        Select Case K
            Case 1 To 31
                Exit Sub
        End Select
     
        If InStr(bVal, ",") <> 0 And (K = 44 Or K = 46) Then
            Beep
            K = 0
            Exit Sub
        End If
     
        Select Case K
            Case 48 To 57
            Case 46
                K = 44
            Case Else
                Beep
                K = 0
        End Select
    End Sub
     
    Public Sub KeyPressedDate(K As Integer)
        Select Case K
            Case 1 To 31, 45, 47 To 57
            Case Else
                Beep
                K = 0
        End Select
    End Sub
     
    Public Sub KeyPressedTime(K As Integer)
        Select Case K
            Case 1 To 31, 48 To 58
            Case Else
                Beep
                K = 0
        End Select
    End Sub
     
    Public Sub KeyPressedStringMaj(K As Integer)
        Select Case K
            Case 97 To 122, 224, 231, 232, 233, 249
                K = UCase(K)
        End Select
    End Sub
     
    Public Function KeyPressedChaineLimite(K As Integer, bStr As String, bLimite As Integer) As Boolean
        KeyPressedChaineLimite = False
     
        Select Case K
            Case 1 To 31
                KeyPressedChaineLimite = True
                Exit Function
        End Select
     
        If Len(bStr) = bLimite Then
            KeyPressedChaineLimite = True
            Beep
            K = 0
            Exit Function
        End If
    End Function
     
    Public Sub GestionDesErreurs(bTitre As String, CheminSon As String)
        Screen.MousePointer = 0
        Dim bStr As String
        bStr = Err.Description
     
        If bStr = "Type incompatible" Then
            bStr = "Vous avez une valeur de type inapproprié. Par exemple : du texte à la place de valeur numérique ou inversement."
            GoTo SUITE
        End If
     
        If bStr Like "Modification*" Then
            bStr = "Le matricule, le code ou la référence que vous avez saisi existe déjà." & vbLf & "Veuillez en saisir un autre."
            GoTo SUITE
        End If
     
        If bStr Like "*objet*ouvert*" Then
            bStr = "Fermez ce formulaire et ouvrez le de nouveau." & vbLf & "Si l'erreur persiste, fermez l'application et relancez la."
            GoTo SUITE
        End If
     
        If bStr Like "Vous avez essayé d'ouvrir une base de données*" Then
            bStr = "La base de données active est ouverte par un autre utilisateur." & vbLf & "Fermer LEHI sur tous les postes." & vbLf & "Rédemarrez votre poste."
            GoTo SUITE
        End If
     
        If bStr Like "Fichier*introuvable." Then
            bStr = "Impossible de se connecter à la base de données." & vbLf & "Elle a été déplacée ou effacée."
            GoTo SUITE
        End If
     
        If bStr Like "Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête source*" Then
            bStr = "La base de données sélectionnée n'est pas bonne." & vbLf & "Contactez l'administrateur pour en sélectionner une autre."
            GoTo SUITE
        End If
     
        If bStr = "La commande Annuler a été sélectionnée." Then Exit Sub
    SUITE:
        JouerSon CheminSon
        MsgBox bStr, , bTitre
    End Sub
     
    Public Function ExtractFilePath(ByVal sFullPath As String) As String
        ExtractFilePath = ""
        On Error Resume Next
        Dim fName As String
        fName = ExtractFileName(sFullPath)
        ExtractFilePath = Left(sFullPath, Len(sFullPath) - (Len(fName) + 1))
    End Function
     
    Public Function ExtractFileExt(ByVal sFullPath As String) As String
        Dim sName As String
        sName = ExtractFileName(sFullPath)
     
        If InStr(sName, ".") = 0 Then
            ExtractFileExt = ""
        Else
            ExtractFileExt = Mid(sName, InStrRev(sName, ".") + 1)
        End If
    End Function
     
    Public Function ExtractFileName(ByVal sFullPath As String) As String
        If InStr(sFullPath, "\") = 0 Or Right(sFullPath, 1) = "\" Then
            ExtractFileName = ""
            Exit Function
        End If
     
        ExtractFileName = Mid(sFullPath, InStrRev(sFullPath, "\") + 1)
    End Function
     
    Public Function GetValue(Fld As Variant) As String
        If IsNull(Fld) Then
            GetValue = ""
         Else
            GetValue = Fld
        End If
    End Function
     
    Public Function NumeroColonne(N As Integer) As String
        Select Case N
            Case 0
                NumeroColonne = "A"
            Case 1
                NumeroColonne = "B"
            Case 2
                NumeroColonne = "C"
            Case 3
                NumeroColonne = "D"
            Case 4
                NumeroColonne = "E"
            Case 5
                NumeroColonne = "F"
            Case 6
                NumeroColonne = "G"
            Case 7
                NumeroColonne = "H"
            Case 8
                NumeroColonne = "I"
            Case 9
                NumeroColonne = "J"
            Case 10
                NumeroColonne = "K"
            Case 11
                NumeroColonne = "L"
            Case 12
                NumeroColonne = "M"
            Case 13
                NumeroColonne = "N"
            Case 14
                NumeroColonne = "O"
            Case 15
                NumeroColonne = "P"
            Case 16
                NumeroColonne = "Q"
            Case 17
                NumeroColonne = "R"
            Case 18
                NumeroColonne = "S"
            Case 19
                NumeroColonne = "T"
            Case 20
                NumeroColonne = "U"
            Case 21
                NumeroColonne = "V"
            Case 22
                NumeroColonne = "W"
            Case 23
                NumeroColonne = "X"
            Case 24
                NumeroColonne = "Y"
            Case 25
                NumeroColonne = "Z"
        End Select
    End Function
     
    Public Function IsFileOpen(ByVal strFic As String) As Boolean
        Dim fic As Integer
        On Error Resume Next
        fic = FreeFile()
        Open strFic For Input Access Read Lock Read Write As fic
     
        If Err.Number = 0 Then
            IsFileOpen = False
            Close fic
          Else
            IsFileOpen = True
        End If
    End Function
     
     
    Public Sub JouerSon(ByVal NomDuFichier As String, Optional ByVal Attente As Boolean = False)
        If Attente Then
            Call PlaySound(NomDuFichier, SND_SYNC, SND_FILENAME)
          Else
            Call PlaySound(NomDuFichier, SND_SYNC, SND_ASYNC Or SND_FILENAME)
        End If
    End Sub
     
     
    Public Function FinMois(bMois As String, bAnnee As String) As String
        Select Case bMois
            Case "janvier"
                FinMois = "31"
            Case "février"
                If Val(bAnnee) Mod 4 = 0 Then
                    FinMois = "29"
                  Else
                    FinMois = "28"
                End If
            Case "mars"
                FinMois = "31"
            Case "avril"
                FinMois = "30"
            Case "mai"
                FinMois = "31"
            Case "juin"
                FinMois = "30"
            Case "juillet"
                FinMois = "31"
            Case "août"
                FinMois = "31"
            Case "septembre"
                FinMois = "30"
            Case "octobre"
                FinMois = "31"
            Case "novembre"
                FinMois = "30"
            Case "décembre"
                FinMois = "31"
        End Select
    End Function
     
    Public Sub SaisieAssistee(bCombo As Variant, RefuseValeurEntree As Boolean)
        If bCombo.Text = "" Then Exit Sub
     
        Static NoSelectText As String   ' texte tapé par l'utilisateur
        Dim I As Double                   ' compteur de boucle
     
        With bCombo '<== SEULE LIGNE A MODIFIER
            ' touche que l'on ne doit pas gérer dans cette procedure
            If KeyCode = vbKeyUp Then Exit Sub      ' utilisé par VB
            If KeyCode = vbKeyDown Then Exit Sub    ' utilisé par vb
            If KeyCode = vbKeyLeft Then Exit Sub    ' pour se déplacer
            If KeyCode = vbKeyRight Then Exit Sub   ' pour se déplacer
     
            ' action spécial pour la touche BACK
            If KeyCode <> vbKeyBack Then
                NoSelectText = Mid(.Text, 1, Len(.Text) - .SelLength)
              Else
                If NoSelectText <> "" Then NoSelectText = Mid(NoSelectText, 1, Len(NoSelectText) - 1)
            End If
     
            ' recherche de la correspondance
            For I = 0 To .ListCount - 1
                If UCase(NoSelectText) = UCase(Mid(.List(I), 1, Len(NoSelectText))) Then
                    .ListIndex = I
                    Exit For
                End If
            Next
     
            ' selection de la partie que l'on a rajouté automatiquement
            .SelStart = Len(NoSelectText)
            .SelLength = Len(.Text)
     
            ' partie optionnelle qui change la couleur de fond en cas d'erreur
            If .ListIndex <> -1 Then Exit Sub
        End With
     
        If RefuseValeurEntree = False Then Exit Sub
        Beep
        MsgBox "Entrez une valeur de la liste.", , bTitre
        On Error Resume Next
        SendKeys "^z"
    End Sub
     
    Public Function RemplacerCaractere39(bVal As Variant) As String
        If InStr(bVal, "'") = 0 Then
            RemplacerCaractere39 = bVal
          Else
            RemplacerCaractere39 = Replace(bVal, "'", "''")
        End If
    End Function
     
    Public Function BooleanInString(bVal As Boolean) As String
        If bVal Then
            BooleanInString = "Oui"
          Else
            BooleanInString = "Non"
        End If
    End Function
     
    Public Function StringInBoolean(bVal As String) As String
        If bVal = "Oui" Then
            StringInBoolean = "True"
          Else
            StringInBoolean = "False"
        End If
    End Function
    dans la procédure de démarrage, j'ai ce 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
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    Public MDIFormAlreadyLoaded As Boolean
    Public CheminSon As String
    Public MleUtilisateur As String
    Public ProfilUtilisateur As String
     
    Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _
    (ByVal FichierExistant As String, ByVal Fichier_A_Créer As String, _
    ByVal ErreurExistance As Long) As Long
     
    Public bConnActive As Connection
    Public bConnShape As Connection
    Public ConnRegistre As Connection
    Public bConnSecurite As Connection
     
    Public feuilleActive As String
    Public bAddMode As Boolean
    Dim ReferenceSecurite As String
     
    Public Reconnexion As Boolean
     
    Sub Main()
        On Error GoTo GestErr
        Set ConnRegistre = New Connection
        ConnRegistre.CursorLocation = adUseClient
        ConnRegistre.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BdRegistre.mdb;Jet OLEDB:Database Password=onohio;"
     
        Dim D As String, A As String, B As String, SVG As String
        Dim RK As Recordset
        Set RK = New Recordset
        RK.Open "SELECT * FROM BD", ConnRegistre
        If RK!CheminBd = "" Or RK!CheminUtil = "" Or IsNull(RK!CheminBd) Or IsNull(RK!CheminUtil) Then GoTo EndLine
        If Dir(RK!CheminBd, vbHidden) = "" Or Dir(RK!CheminUtil, vbHidden) = "" Then GoTo EndLine
        D = ConnRegistre
        A = CONN
        B = CNX
     
        If D = "" Or A = "" Or B = "" Then GoTo EndLine
        Set bConnSecurite = New Connection
        Set bConnSecurite = CNX
     
        Set bConnActive = New Connection
        Set bConnActive = CONN
     
        Set bConnShape = New Connection
        Set bConnShape = ConnShape
     
        SVG = BASE_DE_DONNEES_ACTIVE
        CheminSon = App.Path & "\SON\"
        Screen.MousePointer = 11
        SPLASH.Show
        Exit Sub
    EndLine:
        If Dir(App.Path & "\BdRegistre.mdb", vbHidden) = "" Then
            JouerSon CheminSon & "malfound.wav"
            MsgBox "Le fichier de démarrage est manquant.", , "Echec de démarrage"
            End
            Exit Sub
        End If
     
        If A = "" Or B = "" Or D = "" Then
            JouerSon CheminSon & "malfound.wav"
            Dim RPO
            RPO = MsgBox("La base de données active a été deplacée ou abimée." & vbLf & "Dans le premier cas, localisez la sinon restaurez la dernière sauvegarde." & vbLf & "Voulez-vous localiser la base de données?", vbYesNo + vbQuestion + vbDefaultButton1, "WAPO")
            If RPO = vbNo Then Exit Sub
            z_CONNEXION.Show
            z_CONNEXION.Visible = False
    '        z_CONNEXION.CommonDialog1.CancelError = True
            '...Définit la propriété Flags
            z_CONNEXION.CommonDialog1.Flags = cdlOFNHideReadOnly
            '...Définit les filtres
            z_CONNEXION.CommonDialog1.Filter = "Fichier base de données (*.mdb,*.dbf,*.mdf)|*.mdb;*.dbf;*.mdf"
            '...Définit le filtre par défaut
        '               feuille_mere.CommonDialog1.FilterIndex = 1
            '...Affiche la boîte de dialogue Ouverture
            z_CONNEXION.CommonDialog1.InitDir = "C:\LOGICIELS DE GESTION HI\COOPERATIVE AGRICOLE"
            z_CONNEXION.CommonDialog1.ShowOpen
            '...Récupérer le nom du fichier sélectionné
     
            Set RK = New Recordset
            RK.Open "SELECT * FROM BD", ConnRegistre
            Dim CH As String
     
            If z_CONNEXION.CommonDialog1.FileName = "" Then
                CH = RK!CheminBd
              Else
                CH = z_CONNEXION.CommonDialog1.FileName
            End If
     
            RK.Close
            Set RK = Nothing
     
            ConnRegistre.Execute "UPDATE BD Set CheminBd='" & CH & "'"
            Set bConnActive = New Connection
            Set bConnActive = CONN
            Set RK = New Recordset
            RK.Open "SELECT RepereWAPO FROM SOCIETE", bConnActive
            Dim CheminUtil As String
            CheminUtil = ExtractFilePath(CH) & "\bdSecurite." & ExtractFileExt(CH)
            If (Dir(CheminUtil) <> "") Then ConnRegistre.Execute "UPDATE BD Set CheminUtil='" & CheminUtil & "'"
            Beep
            MsgBox "WAPO va se fermer.", , "WAPO"
            Screen.MousePointer = 0
            End
        End If
     
        Exit Sub
    GestErr:
        If Err.Description Like "Aucune valeur donnée pour*" Then
            MsgBox "La base de données selectionnée n'est pas au bon format." & vbLf & "Veuillez en choisir une autre.", , "WAPO"
            ConnRegistre.Execute "UPDATE BD Set CheminBd='" & SVG & "'"
            End
        End If
     
        If Err.Description Like "Format de base de données*non reconnu." Then
            Dim RP
            Beep
            RP = MsgBox("Le format de la base de données active n'est pas reconnu. Votre base de données est surement abîmée." & vbLf & "Voulez-vous restaurer la dernière sauvegarde de la base de données?", vbYesNo + vbQuestion + vbDefaultButton2, "WAPO")
            If RP = vbNo Then Exit Sub
            Dim SCE As String
            SCE = ExtractFilePath(BASE_DE_DONNEES_ACTIVE) & "\SAUVEGARDE\" & ExtractFileName(BASE_DE_DONNEES_ACTIVE)
            CopyFile SCE, BASE_DE_DONNEES_ACTIVE, False
            Main
        End If
     
        If Err.Description = "Nom ou numéro de fichier incorrect" Then
            GoTo EndLine
          Else
            GestionDesErreurs "Echec de demarrage", CheminSon & "malfound.wav"
        End If
    End Sub
     
    Public Function AjouterSecurite(F As String) As Boolean
        AjouterSecurite = True
        If ProfilUtilisateur = "CONSTRUCTEUR" Or ProfilUtilisateur = "ADMINISTRATEUR" Then Exit Function
        Dim RK As New Recordset
        RK.Open "Select * From FICHIER WHERE (Matricule='" & MleUtilisateur & "') and (Fichier='" & F & "') and (Ajouter=True)", bConnSecurite
        If RK.EOF Then AjouterSecurite = False
        RK.Close
        Set RK = Nothing
        Screen.MousePointer = 0
    End Function
     
    Public Function ModifierSecurite(F As String) As Boolean
        ModifierSecurite = True
        If ProfilUtilisateur = "CONSTRUCTEUR" Or ProfilUtilisateur = "ADMINISTRATEUR" Then Exit Function
        Dim RK As New Recordset
        RK.Open "Select * From FICHIER WHERE (Matricule='" & MleUtilisateur & "') and (Fichier='" & F & "') and (Modifier=True)", bConnSecurite
        If RK.EOF Then ModifierSecurite = False
        RK.Close
        Set RK = Nothing
        Screen.MousePointer = 0
    End Function
     
    Public Function SupprimerSecurite(F As String) As Boolean
        SupprimerSecurite = True
        If ProfilUtilisateur = "CONSTRUCTEUR" Or ProfilUtilisateur = "ADMINISTRATEUR" Then Exit Function
        Dim RK As New Recordset
        RK.Open "Select * From FICHIER WHERE (Matricule='" & MleUtilisateur & "') and (Fichier='" & F & "') and (Supprimer=true)", bConnSecurite
        If RK.EOF Then SupprimerSecurite = False
        RK.Close
        Set RK = Nothing
        Screen.MousePointer = 0
    End Function
     
    Public Function ImprimerSecurite(F As String) As Boolean
        ImprimerSecurite = True
        If ProfilUtilisateur = "CONSTRUCTEUR" Or ProfilUtilisateur = "ADMINISTRATEUR" Then Exit Function
        Dim RK As New Recordset
        RK.Open "Select * From FICHIER WHERE (Matricule='" & MleUtilisateur & "') and (Fichier='" & F & "') and (Imprimer=True)", bConnSecurite
        If RK.EOF Then ImprimerSecurite = False
        RK.Close
        Set RK = Nothing
        Screen.MousePointer = 0
    End Function
     
    Public Sub WRITE_JOURNAL(Tache As String, CIBLE As String, IND As Variant)
        If ProfilUtilisateur = "CONSTRUCTEUR" Or ProfilUtilisateur = "ADMINISTRATEUR" Then Exit Sub
        REFERENCE_SECURITE = NUMERO_AUTO
        bConnSecurite.Execute "Insert Into JOURNAL (Ref,Tache,DM,TM,Cible,Indice,Matricule) Values ('" & REFERENCE_SECURITE & "','" & Tache & "','" & Date & "','" & Time & "','" & CIBLE & "','" & IND & "','" & MleUtilisateur & "')"
    End Sub
     
    Public Sub JOURNAL_MODIFICATION(Champ As String, AV As Variant, NV As Variant)
        If ProfilUtilisateur = "CONSTRUCTEUR" Or ProfilUtilisateur = "ADMINISTRATEUR" Then Exit Sub
        bConnSecurite.Execute "Insert Into JOURNAL_DES_MODIFICATIONS (Ref,Champ,AncienneValeur,NouvelleValeur) Values ('" & REFERENCE_SECURITE & "','" & Champ & "','" & AV & "','" & NV & "')"
    End Sub
     
    Public Function AUTRE_SOURCE_DE_DONNEES() As Boolean
        Dim RK As Recordset
        Set RK = New Recordset
        RK.Open "SELECT Asd FROM BD", ConnRegistre
     
        If RK!Asd = True Then
            AUTRE_SOURCE_DE_DONNEES = True
          Else
            AUTRE_SOURCE_DE_DONNEES = False
        End If
     
        RK.Close
        Set RK = Nothing
    End Function
     
    Public Function BASE_DE_DONNEES_ACTIVE() As String
        Dim RK As New Recordset
        RK.Open "SELECT * FROM BD", ConnRegistre
        BASE_DE_DONNEES_ACTIVE = RK!CheminBd
        RK.Close
        Set RK = Nothing
    End Function
     
    Public Function BASE_DE_DONNEES_SECURITE() As String
        Dim RK As New Recordset
        RK.Open "SELECT * FROM BD", ConnRegistre
        BASE_DE_DONNEES_SECURITE = RK!CheminUtil
        RK.Close
        Set RK = Nothing
    End Function
     
    Private Function NUMERO_AUTO() As String
        Dim RK As New Recordset
        RK.Open "Select Max(Val(Ref)) As R from JOURNAL", bConnSecurite
     
        If IsNull(RK!R) Then
            NUMERO_AUTO = "1"
          Else
            If RK.EOF Then
                NUMERO_AUTO = "1"
              Else
                NUMERO_AUTO = RK!R + 1
            End If
        End If
     
        RK.Close
        Set RK = Nothing
    End Function
     
    Public Function CONN() As Connection
        Set CONN = New Connection
        CONN.CursorLocation = adUseClient
        CONN.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & BASE_DE_DONNEES_ACTIVE & ";Jet OLEDB:Database Password=onohio;"
    End Function
     
    Public Function CNX() As Connection
        Set CNX = New Connection
        CNX.CursorLocation = adUseClient
        CNX.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & BASE_DE_DONNEES_SECURITE & ";Jet OLEDB:Database Password=onohio;"
    End Function
     
    Public Function ConnShape() As Connection
        Set ConnShape = New Connection
        ConnShape.CursorLocation = adUseClient
        ConnShape.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & BASE_DE_DONNEES_ACTIVE & ";Jet OLEDB:Database Password=onohio;"
    End Function
     
    Public Function ANNEE() As String
        ANNEE = ""
        Dim RK As New Recordset
        RK.Open "SELECT Annee FROM c_PERIODE_DE_CAMPAGNE ORDER BY Annee DESC", bConnActive
        If RK.EOF = False Then ANNEE = RK!ANNEE
        RK.Close
        Set RK = Nothing
    End Function
     
    Public Sub ACTUALISER_STOCK(bDebut As Date, bFin As Date)
        bConnActive.Execute "DELETE * FROM z_STOCK"
        bDebut = Format(bDebut, "mm/dd/yyyy")
        bFin = Format(bFin, "mm/dd/yyyy")
        bConnActive.Execute "INSERT INTO z_STOCK (NumeroAchat,NomProduit,Entree) SELECT NumeroAchat,NomProduit,Sum(Poids) As P FROM f_ACHAT WHERE (DateAchat BETWEEN #" & bDebut & "# AND #" & bFin & "#) GROUP BY NomProduit,NumeroAchat"
        bConnActive.Execute "INSERT INTO z_STOCK (NumeroAchat,NomProduit,Sortie) SELECT NumeroAchat,NomProduit,Sum(Poids) As P FROM f_VENTE_FILS INNER JOIN f_VENTE_PARENT ON f_VENTE_FILS.NumeroVente=f_VENTE_PARENT.NumeroVente WHERE (DateVente BETWEEN #" & bDebut & "# AND #" & bFin & "#) GROUP BY NomProduit,NumeroAchat"
    End Sub
    Edit :
    je crois savoir par la recherche que le problème doit se poser sur la version des fichiers dll et ocx à l'installation. ils doivent surement périmés. la question est de savoir où trouver les fichiers récents.

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    et tu penses qu'on va se taper 556 + 269 lignes de code (Merci Ano pour la numérotation des lignes !! ) pour répondre à ta question qu'il faut déchiffrer dans le titre du post, sans plus de précisions ??? !!!!

    Franchement, vous nous prenez pour quoi ...

    Aller, je préfère ne pas en rajouter, s'il y a des amateurs, ne vous gênez pas ....
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    oui, vous avez raison ThierryAIM. mille excuses. je vous demande d'oublier le code. je vais à l'avenir être précis et concis.

    voilà dans ma procédure sub main, j'ai ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Main()
        On Error GoTo GestErr
        Set ConnRegistre = New Connection
        ConnRegistre.CursorLocation = adUseClient
        ConnRegistre.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BdRegistre.mdb;Jet OLEDB:Database Password=onohio;"
    ...
    Splash.show
    ...
    end sub
    lorsque j'efface toutes les lignes, il n'y a aucun évènement. lorsque je laisse la 1ère ligne seulement, il me renvoie l'erreur.
    je dois avouer que même mes applications qui jadis s'exécutaient aisément sur les autres machines m'affichent cette erreur ces derniers jours après que je les ai récompilé.

  4. #4
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    je me rappelle avoir installé le service pack 2 de W7 sur ma machine il n'y a pas longtemps. peut être que le problème devrait provenir de là. bon je cherche à télécharger le composant MDAC qui pourrait aller avec les versions antérieures.

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Essaie déjà de typer correctement tes variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim ConnRegistre As ADODB.Connection
    Dim RK As ADODB.Recordset
    '.......
    
    Set ConnRegistre = New ADODB.Connection
    
    etc....
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  6. #6
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    merci ThierryAIM de savoir que tu ne m'as pas laissé tombé malgré mon erreur. ton conseil a été la première voie de solution que j'ai exploré. mais rien n'y fit.
    plus je fouille sur les forums et plus je me rends compte que c'est un problème dont la solution est complexe et variable. j'ai pensé à la version du composant MDAC. tous les composants que j'ai essayé de télécharger sont compatibles Win 98,Win 2000,Win XP, NT et NT Serveur 2003. pas de vista et W7. et là je suis ennuyé. je suis toujours à l'écoute pour vos conseils

  7. #7
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par melancolie Voir le message
    je me rappelle avoir installé le service pack 2 de W7 sur ma machine
    tu es sûr de ça ?
    Le SP2 pour windows 7 n'existe pas ...

    Fais un résumé de ce qui marche ou pas
    - Système - Service Pack
    et te goure pas !
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  8. #8
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    Encore une erreur, je corrige.
    J'ai fait la mise à jour avec le service pack 1.
    j'ai un W7 édition intégrale.
    Je tiens à rappeler que avant d'installer le service pack 1, tout marchait.
    Même les applications que je n'ai pas encore recompilée marche encore.

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 54
    Points
    54
    Par défaut
    pour contourner le pb, j'ai installé Win XP en machine virtuelle en attendant de trouver une solution. peut être que vb6 est devenu caduque et qu'il faut se convertir en dotnet.

  10. #10
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Chaque version de Windows et/ou de SP ajoute et supprime des composants par rapports aux versions précédentes.
    Dès lors, à chaque modification de l'OS, il peut devenir nécessaire d'effectuer une nouvelle installation de l'application via un install
    mais encore faut-il que le setup contienne l'intégralité des composants utilisés dans l'archive ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/11/2011, 21h36
  2. [XL-2007] Erreur 430 : la classe ne gère pas automation ou l'interface attendue
    Par SlySylvain dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/08/2011, 17h32
  3. erreur d'executin 430 la classe ne gere pas automation ou l'interface attendue
    Par zied.ellouze dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/07/2011, 09h46
  4. Erreur 430 La classe ne gère pas Automation ou l'interface attendue
    Par FabDev dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 29/03/2010, 15h38
  5. Erreur : La classe ne gère pas Automation..
    Par Invité dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/09/2004, 10h24

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