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 :

Problème de code?


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Points : 26
    Points
    26
    Par défaut Problème de code?
    bonjour,
    j'ai conçu une application et ça fait une année que ça marche mais dernièrement le code dégante.
    voici le code de l'importation il marche bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    chemin = InputBox("Entrer le Chemin relative au fichier Excel 'Collar'", _
    "CHEMIN DE LA FEUILLE EXCEL COLLARS")
    SourceFile = chemin   ' Définit le nom du fichier source.
    DestinationFile = "E:\old.compt\M_GDEx_BOUAZZER\Fichier_Import\CollarEx.xls"    ' Définit le nom du fichier cible.
    ' Copie le fichier source dans le fichier cible.
    FileCopy SourceFile, DestinationFile
    '
    'importer le fichier Excel vers sql server en se connectant
    sql3 = "SELECT * INTO TabCollarEx FROM EXCEL_COLLAR...[feuille1$]"
    DoCmd.RunSQL sql3
    je fais appelle a ce code lorsque je passe a l'étape suivante de l'importation afin de préciser le code, projet, secteur etc... le problème s’affiche ici, or, lorsque je dépasse l'étape de l'importation je passe à l'étape de la vérification du fichier excel, 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
    'importation Excel
    ImpCollarEx
    'DoCmd.Hourglass True
    projet:
    p = Forms![frmOuverture]!codep
    ''debug.Print p
    ' verification de l'ancien id
    On Error Resume Next
    DoCmd.RunSQL "drop table REPETITION_ANC_ID_COLLAR"
    sqlAncIdCol = "select dbo.TabCollarex.anc_id,dbo.TabCollar.Hole_id" & _
    " into dbo.REPETITION_ANC_ID_COLLAR" & _
    " from dbo.TabCollarex left outer join dbo.TabCollar" & _
    " on dbo.TabCollarex.Anc_Id=dbo.TabCollar.Anc_Id collate french_ci_as" & _
    " where left(dbo.TabCollar.Hole_Id,2)='" & p & "'"
    DoCmd.RunSQL sqlAncIdCol
    '
    Dim rsVarColEx As ADODB.Recordset
    Set rsVarColEx = New ADODB.Recordset
    rsVarColEx.Open "[REPETITION_ANC_ID_COLLAR]", con, 1, 3
    '
    On Error Resume Next
    n = rsVarColEx.RecordCount
    '
    ''debug.Print "n"; "__"; n
    If n > 0 Then
    MsgBox ("Ces collars existent déjà dans le projet." & vbCrLf & _
    "Si vous chercher une MAJ de ces mêmes données," & vbCrLf & _
    "procéder manuellement ou les supprimer et refaire" & vbCrLf & _
    "l'Importation."), vbCritical, _
    "COLLARS REPETITIFS"
    DoCmd.OpenForm "REPETITION_ANC_ID_COLLAR", acFormDS
    GoTo SupTabEx
    End If
    'vérification de la table importée
    DoCmd.RunSQL "drop table ERREUR_COLLARS_EXCEL"
    sqlVerCollarsEx = "select tabcollarex.anc_id, tabcollarex.x_collars," & _
    " tabcollarex.y_collars" & _
    " into ERREUR_COLLARS_EXCEL " & _
    " from dbo.tabcollarex" & _
    " where " & _
    " dbo.Tabcollarex.x_collars is null" & _
    " or dbo.Tabcollarex.y_collars is null" & _
    " or dbo.Tabcollarex.z_collars is null" & _
    " or dbo.Tabcollarex.brg>360" & _
    " or dbo.tabcollarex.brg<0" & _
    " or dbo.tabcollarex.dip>90 or dbo.Tabcollarex.dip<-90"
    DoCmd.RunSQL sqlVerCollarsEx
    '
    Dim rsTabVer As ADODB.Recordset
    Set rsTabVer = New ADODB.Recordset
    rsTabVer.Open "[ERREUR_COLLARS_EXCEL]", con, 1, 3
    
    
    On Error Resume Next
    rsTabVer.MoveLast
    n = rsTabVer.RecordCount
    rsTabVer.MoveFirst
    ''debug.Print n
    'on error goto ErrMessage
    If n > 0 Then
    MsgBox ("Erreurs dans le fichier Excel importée"), vbCritical, "ERREUR FICHIER"
    DoCmd.OpenForm "ERREUR_COLLARS_EXCEL", acFormDS
    GoTo SupTabEx
    End If
    '
    '
    'On Error Resume Next
    'recherche des doublons dans tables excel importées
    sqlColEx = "drop table TabDoublonCollarsEx" & _
    " select count(*) as doublons,dbo.tabcollarex.anc_id" & _
    " into dbo.TabDoublonCollarsEx" & _
    " from dbo.TabCollarEx" & _
    " group by dbo.TabCollarex.anc_id" & _
    " having count(*)>1"
    DoCmd.RunSQL sqlColEx
    'ouvrir table
    'message
    '
    Dim srTDCEx As ADODB.Recordset
    Set srTDCEx = New ADODB.Recordset
    srTDCEx.Open "[TabDoublonCollarsEx]", con, 1, 3
    '
    ndcex = srTDCEx.RecordCount
    '
    If ndcex >= 1 Then
    MsgBox ("La table excel importée contient des doublons." & vbCrLf & _
    "A revoir..."), vbCritical, "DOUBLONS DANS TABLE COLLAR IMPORTEE"
    '
    DoCmd.OpenForm "FrmTabDoublonCollarsEx", acFormDS, , , acFormReadOnly
    'DoCmd.Hourglass False
    Exit Sub
    End If
    '
    Set rsOuvEx = New ADODB.Recordset
    rsOuvEx.Open "[TabCollarEx]", con, 1, 3
    'On Error Resume Next
    ''rsOuvEx.MoveLast
    'count = rsOuvEx.RecordCount
    'rsOuvEx.MoveFirst
    
    '

    alors le fichier excel ne contient aucune erreur mais le code m'affiche le message mentionner dans le code on rouge, et si je saute ce code rouge il m'affiche l'erreur mentionner dans le code on bleu sachant bien que l'excel ne contient pas de doublons.

    je ne comprend pas ça bloque dans cette étapes j'ai tout essayé de crée un nouveau serveur lié, de crée un autre fichier excel, j'ai vider le cache mais RIEN.
    Je vous demande de bien m'aider par ce que ça fait déjà un mois que je bloque sur ce problème.
    Salutations.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,

    Merci de préciser le numéro, la description et la ligne ou cela se produit.

    Comme indiqué dans ma signature nous ne pratiquons, ici, aucun art divinatoire.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par loufab Voir le message
    Bonjour,

    Merci de préciser le numéro, la description et la ligne ou cela se produit.

    Comme indiqué dans ma signature nous ne pratiquons, ici, aucun art divinatoire.

    Cordialement,
    Bonjour,
    Bon l'erreur qui s’affiche et celle de la ligne 61, "MsgBox ("Erreurs dans le fichier Excel importée".
    sachant bien que le fichier ne contient aucune erreur, le fichier Excel contient 7 case qui se remplisse du fichier importer "CollarEx", et normalement le msgbox ne doit s'affiche que lorsque l'une des condition cité dans le code n’était pas respecter.

    Autre chose, si je cache cette étape là, le programme passe directement à l’étape suivante celle de la vérification des doublons, or le fichier ne contient pas de doublons et même si cela le Msgbox "ligne 86" s'affiche.

    et si par malheur je dépasse ses deux phase la table qui se remplissent reste vide.

    j’espère que vous avez compris. et merci.( PS: j'adore votre blog)

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Dans un premier temps j'assainirai le code en supprimant tous ces resume next et je remplacerais par une vrai gestion d'erreurs avec un vrai rapport de message.

    Enfin je ferais un pas-à-pas pour voir comment ça marche, si de vrais erreurs sont remontées...

    Parce que le problème est là. Il n'y a pas vraiment d'erreurs c'est juste un message utilisateur émis sur la condition "recordcount > 0" donc Si des enregistrements sont importés.

    Comme tu le vois il s'agit d'un problème de débogage du processus et ceci toi seul peu le faire car tu as l'application, les données et les règles métier.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par loufab Voir le message
    Dans un premier temps j'assainirai le code en supprimant tous ces resume next et je remplacerais par une vrai gestion d'erreurs avec un vrai rapport de message.

    Enfin je ferais un pas-à-pas pour voir comment ça marche, si de vrais erreurs sont remontées...

    Parce que le problème est là. Il n'y a pas vraiment d'erreurs c'est juste un message utilisateur émis sur la condition "recordcount > 0" donc Si des enregistrements sont importés.

    Comme tu le vois il s'agit d'un problème de débogage du processus et ceci toi seul peu le faire car tu as l'application, les données et les règles métier.
    ok merci je vais essayer de refaire le code.

Discussions similaires

  1. problème de code avec un tableau
    Par richard038 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/05/2006, 17h35
  2. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50
  3. [POO] Problème de code PHP avec Internet Explorer
    Par bzoler dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2006, 11h00
  4. Problème de code besoin d un petit depannage
    Par rakengoule dans le forum MFC
    Réponses: 3
    Dernier message: 10/10/2005, 16h25
  5. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02

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