[URGENT] Gros gros problème Access (VBA)

Gros gros problème Access (VBA) [URGENT] - VB/VBA/VBS - Programmation

Marsh Posté le 19-06-2003 à 10:43:24    

Je devais montrer mon application a mon responsable de stage, une partie de l'application doit importer des données a partir de fichiers Excel ou CSV, j'ai 3 formulaire pour importer 3 fichiers differents.
 
Mon patron ouvre le premier formulaire, importe, ca marche.
Il ouvre le deuxieme formulaire, et paf erreur!!!
 
Ca marche sur mon pc (win98, access 2000), mais pas sur le sien (win2000, access 2000). C'est incompréhensible!!!!!
 
Voici le message d'erreur :

Citation :

L'expression sur clic entrée sur parametre de la prorpieté de type évenement est à l'origine d'une erreur.
L'objet ou la classe ne gère pas le jeu d'evenement.


 
 
Aidez-moi!!!
Faut que j'arrive a le faire marcher, je suis vraiment dans la merde pour mon stage sinon!!!!!!! :(  
 
 
Merci d'avance
Harrysauce

Reply

Marsh Posté le 19-06-2003 à 10:43:24   

Reply

Marsh Posté le 19-06-2003 à 10:49:46    

Poste le code incriminé stp


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 19-06-2003 à 10:52:15    

Harkonnen a écrit :

Poste le code incriminé stp

Oki
 

Code :
  1. Option Compare Database
  2. Option Explicit
  3. Private Sub import_empl_Click()
  4. On Error Resume Next
  5.     Me.import_fic_conso = ChoixDuFichier
  6.     If Me.import_fic_conso = "" Then
  7.         MsgBox "Il faut choisir un fichier", , "choix d'un fichier"
  8.     Else
  9.         Me.suivant.Enabled = True
  10.     End If
  11. End Sub
  12. Private Sub Form_Load()
  13.     DoCmd.Restore
  14. End Sub
  15. Public Function ChoixDuFichier() As String
  16.     ChoixDuFichier = ""
  17.     On Error GoTo ChoixDuFichier_Err
  18.     Dim Dialogue    As Object
  19.     Set Dialogue = Me.Ctl_Dialogue_conso_empl
  20.     Dialogue.ShowOpen
  21.     ChoixDuFichier = Dialogue.FileName
  22.     Exit Function
  23. ChoixDuFichier_Err:
  24.     If Err.Number <> 32755 Then
  25.         MsgBox Err.Number & ": " & Err.Description
  26.     End If
  27. End Function
  28. Private Sub annuler_Click()
  29. On Error GoTo Err_annuler_Click
  30.     DoCmd.Close
  31.    
  32.     'On reouvre le formulaire d'importations
  33.     Dim stDocName As String
  34.     Dim stLinkCriteria As String
  35.    
  36.     stDocName = "F_import"
  37.     DoCmd.OpenForm stDocName, , , stLinkCriteria
  38. Exit_annuler_Click:
  39.     Exit Sub
  40. Err_annuler_Click:
  41.     MsgBox Err.Description
  42.     Resume Exit_annuler_Click
  43.    
  44. End Sub
  45. Private Sub suivant_Click()
  46.     LitDonnee Me.import_fic_conso
  47. End Sub
  48. Public Sub LitDonnee(strChemFich As String)
  49.     'Variables de parcours de fichier
  50.      Dim f As Integer
  51.      Dim cpt As Integer
  52.      Dim strLigne As String
  53.      Dim pos As Integer
  54.      Dim pos_crt As Integer
  55.      Dim nblignes As Integer
  56.    
  57.      'Variable temp pour stocker les infos issus du fichier
  58.      Dim codeempl As Integer
  59.      Dim nom As String
  60.      Dim sect As Integer
  61.      Dim tache As String
  62.      Dim Mois As Integer
  63.      Dim tps As String
  64.      Dim lib_tache As String
  65.      Dim sect_m As Integer
  66.      Dim statut As String
  67.      Dim cdact As Integer
  68.    
  69.      Dim today
  70.    
  71.      'Variable pour l'ajout à la BDD
  72.      Dim larequette As String
  73.    
  74.      'On créé les objets destinés a stocker les infos avant de les enregistrer dans la table
  75.    
  76.      Me.CtlActiveX0 = 3
  77.      Me.avancement.Caption = "AVANCEMENT 0/" & nblignes
  78.      Me.Repaint
  79.    
  80.      cpt = 0
  81.      pos = 1
  82.      pos_crt = 1
  83.      nblignes = 0
  84.    
  85.      f = FreeFile
  86.      Open strChemFich For Input As #f 'On ouvre en lecture et on parcours
  87.      While Not EOF(f)
  88.         Line Input #f, strLigne 'On lit la ligne afin de faire descendre la position de la ligne
  89.         nblignes = nblignes + 1 'On compte le nombre de lignes
  90.      Wend
  91.    
  92.      Me.CtlActiveX0 = 6
  93.    
  94.      f = FreeFile '1er numéro libre
  95.      Open strChemFich For Input As #f 'ouvert en lecture
  96.    
  97.      'On efface la table conso
  98.     DoCmd.RunSQL "DELETE * FROM T_conso"
  99.     DoCmd.Requery
  100.      While Not EOF(f)
  101.           Line Input #f, strLigne 'lit la ligne entière et l'attribue à la variable strLigne
  102.           'MsgBox strLigne
  103.           If cpt > 0 Then 'On ne rentre pas ici pour la premiere ligne => ligne de titres
  104.             'On va décomposer la ligne afin de récupérer les valeurs
  105.             pos = 1
  106.             pos_crt = 1
  107.            
  108.             'Mid$(Ma_Chaine,A_Partir_Du_Caractère_Numéro,Nb_Caractères)
  109.            
  110.             pos = InStr(pos_crt, strLigne, ";" )
  111.             'On recupere le premier champ
  112.             codeempl = Mid$(strLigne, 1, pos - 1)
  113.            
  114.             pos_crt = pos + 1
  115.             pos = InStr(pos_crt, strLigne, ";" )
  116.             'On recupere le 2eme champ
  117.             nom = Mid$(strLigne, pos_crt, pos - pos_crt)
  118.            
  119.             pos_crt = pos + 1
  120.             pos = InStr(pos_crt, strLigne, ";" )
  121.             'On recupere le 3eme champ
  122.             sect = Mid$(strLigne, pos_crt, pos - pos_crt)
  123.            
  124.             pos_crt = pos + 1
  125.             pos = InStr(pos_crt, strLigne, ";" )
  126.             'On recupere le 4eme champ
  127.             tache = Mid$(strLigne, pos_crt, pos - pos_crt)
  128.            
  129.             pos_crt = pos + 1
  130.             pos = InStr(pos_crt, strLigne, ";" )
  131.             'On recupere le 5eme champ
  132.             Mois = Mid$(strLigne, pos_crt, pos - pos_crt)
  133.            
  134.             pos_crt = pos + 1
  135.             pos = InStr(pos_crt, strLigne, ";" )
  136.             'On recupere le 6eme champ
  137.             tps = Mid$(strLigne, pos_crt, pos - pos_crt)
  138.            
  139.            
  140.             pos_crt = pos + 1
  141.             pos = InStr(pos_crt, strLigne, ";" )
  142.             'On recupere le 7eme champ
  143.             lib_tache = Mid$(strLigne, pos_crt, pos - pos_crt)
  144.            
  145.             pos_crt = pos + 1
  146.             pos = InStr(pos_crt, strLigne, ";" )
  147.             'On recupere le 8eme champ
  148.             sect_m = Mid$(strLigne, pos_crt, pos - pos_crt)
  149.            
  150.             pos_crt = pos + 1
  151.             pos = InStr(pos_crt, strLigne, ";" )
  152.             'On recupere le 9eme champ
  153.             If pos = 0 Then
  154.                 statut = ""
  155.                 cdact = 0
  156.             Else
  157.               statut = Mid$(strLigne, pos_crt, pos - pos_crt)
  158.            
  159.               pos_crt = pos + 1
  160.               'On recupere le 10eme champ
  161.               If pos = Len(strLigne) Then
  162.                   cdact = 0
  163.               Else
  164.                   cdact = Mid$(strLigne, pos_crt, Len(strLigne) - pos_crt + 1)
  165.               End If
  166.             End If
  167.            
  168.             'On remplace les quotes par des espaces dans les champs nom prenom et commentaires
  169.             nom = Replace(nom, "'", " " )
  170.             tache = Replace(tache, "'", " " )
  171.             lib_tache = Replace(lib_tache, "'", " " )
  172.             tps = Replace(tps, ",", "." )
  173.            
  174.            
  175.             'On place les guillemets ou en remplace par null
  176.             If nom <> "" Then
  177.                 nom = "'" & nom & "'"
  178.             Else
  179.                 nom = "NULL"
  180.             End If
  181.            
  182.             If tache <> "" Then
  183.                 tache = "'" & tache & "'"
  184.             Else
  185.                 tache = "NULL"
  186.             End If
  187.            
  188.             If lib_tache <> "" Then
  189.                 lib_tache = "'" & lib_tache & "'"
  190.             Else
  191.                 lib_tache = "NULL"
  192.             End If
  193.            
  194.             If statut <> "" Then
  195.                 statut = "'" & statut & "'"
  196.             Else
  197.                 statut = "NULL"
  198.             End If
  199.          
  200.          
  201.           'On créé la requette
  202.           larequette = "INSERT INTO T_conso VALUES (" & cpt & ", " & codeempl & ", " & nom & ", " & sect & ", " & tache & ", " & Mois & ", " & tps & ", " & lib_tache & ", " & sect_m & ", " & statut & ", " & cdact & " );"
  203.           'MsgBox larequette
  204.           DoCmd.RunSQL larequette
  205.          
  206.           End If
  207.           cpt = cpt + 1
  208.           Me.avancement.Caption = "AVANCEMENT : " & cpt & "/" & nblignes
  209.           Me.Repaint
  210.          
  211.           Me.CtlActiveX0 = (cpt / nblignes) * 94 + 6
  212.          
  213.      Wend
  214.      Close #f
  215.    
  216.     'On informe l'utilisateur que l'import des données est terminé
  217.     MsgBox "L'opération d'import des données est désormais terminée", vbInformation, "Importation des employés"
  218.    
  219.     'On ferme le formulaire courant
  220.     DoCmd.Close
  221.    
  222.     'On change la date de dernier import
  223.     today = Now
  224.     larequette = "UPDATE T_date_import SET ladate='" & today & "' WHERE fic='consos';"
  225.     DoCmd.RunSQL (larequette)
  226.  
  227.    'On reouvre le formulaire d'importations
  228.     Dim stDocName As String
  229.     Dim stLinkCriteria As String
  230.    
  231.     stDocName = "F_import"
  232.     DoCmd.OpenForm stDocName, , , stLinkCriteria
  233.    
  234. End Sub


Message édité par harrysauce le 19-06-2003 à 10:53:11
Reply

Marsh Posté le 19-06-2003 à 10:55:42    

je ne sais pas si ça a à voir, mais vérifie quand même les paramètres régionaux pour voir s'ils sont identiques sur la machine de l'un et de l'autre.  Il est possible que ton code fonctionne dans un cas et pas l'autre.  En particulier les séparateurs décimal et de milliers.
 
J'ai pas compris pourquoi ici on nous installe de nouvelles machines configurées avec les settings "French (Belgium)" et mettre délibérément le point comme séparateur décimal au lieu de la virgule (surtout qu'on doit absolument employer la virgule par rapport à notre appplication [:ddr555])


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 19-06-2003 à 10:58:04    

drasche a écrit :

je ne sais pas si ça a à voir, mais vérifie quand même les paramètres régionaux pour voir s'ils sont identiques sur la machine de l'un et de l'autre.  Il est possible que ton code fonctionne dans un cas et pas l'autre.  En particulier les séparateurs décimal et de milliers.
 
J'ai pas compris pourquoi ici on nous installe de nouvelles machines configurées avec les settings "French (Belgium)" et mettre délibérément le point comme séparateur décimal au lieu de la virgule (surtout qu'on doit absolument employer la virgule par rapport à notre appplication [:ddr555])

ca plante pas que je lance l'importation, mais quand je lance le formulaire!!!!!
C'est pour ca que je comprends vraiment pas!!!

Reply

Marsh Posté le 19-06-2003 à 11:03:41    

je viens de tester sur un pc sous win2000 et ca marche, dc ca vient pas de windows!!!
 
Mais comment un patron peut-il vouloir utiliser access, un truc merde, qui fait même pas des projets compatibles entre 2 pc!!!

Reply

Marsh Posté le 19-06-2003 à 11:04:45    

harrysauce a écrit :

ca plante pas que je lance l'importation, mais quand je lance le formulaire!!!!!
C'est pour ca que je comprends vraiment pas!!!


j'ai pas dit que ça se passait pendant l'importation :o
 
Vérifie ces paramètres systèmes et corrige les sur la machine de ton boss puis relance toute ta procédure pour partir sur une base propre.  Si c'est pas ça, je vois pas trop ce que ça pourra être :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 19-06-2003 à 11:07:17    

drasche a écrit :


j'ai pas dit que ça se passait pendant l'importation :o
 
Vérifie ces paramètres systèmes et corrige les sur la machine de ton boss puis relance toute ta procédure pour partir sur une base propre.  Si c'est pas ça, je vois pas trop ce que ça pourra être :/

c'est où ds win2000???
Parce que si je pars déranger mon boss, j'ai pas trop envie de passer 1/2h a les trouvers ces parametres à la con!
 
 
EDIT : et puis je vois comment ca pourrai être à cause de ca, en même temps avec Access je m'attends a tout!


Message édité par harrysauce le 19-06-2003 à 11:08:58
Reply

Marsh Posté le 19-06-2003 à 11:12:15    

j'ai squatté le poste d'une collegue partie en pause café, j'ai trouvé où c'est, j'ai plus qu'a aller voir sur le pc de mon boss....

Reply

Marsh Posté le 19-06-2003 à 11:14:13    

Bon ben c'est pas ca!
 
 
 
Putain si ca marche pas, je suis vraiment dans la merde :(

Reply

Marsh Posté le 19-06-2003 à 11:14:13   

Reply

Marsh Posté le 19-06-2003 à 11:36:28    

Je suis en train de me demander comment cette saloperie d'access a pu être autorisée a etre vendue!!!
 
 
 
Tout a l'heure sur mes 3 formulaires d'importation, seul le premier marchait!
 
Mon patron a fait mumuse avec (sans toucher au code), et au bout d'un moment, par comme ca, le deuxieme s'est mis à marcher!!!!!!!!!
 
Y reste le 3eme, il a essayé de refaire ce qu'il avait fait avec l'autre (genre l'ouvrir, taper n'importe quoi dans un champ, le fermer, ouvir le formulaire index.....enfin rien qui pourrait le faire marcher :sarcastic: ), et ca n'a pas changé!

Reply

Marsh Posté le 19-06-2003 à 11:49:56    

:cry:  :cry:  :cry:  :cry:  :cry:  
 
Help, mon patron commence à s'impatienter  :fou:

Reply

Marsh Posté le 19-06-2003 à 13:18:07    

Y'en a bien un ici à qui c'est deja arrivé!!!!!

Reply

Marsh Posté le 19-06-2003 à 13:23:47    

ton application, elle utilise des données externes à la base (dans un autre fichier Access) ?  Si oui, vérifier que t'as bien accès aux tables depuis le PC de ton patron par exemple.
 
Vérifier aussi le niveau de gestion d'erreurs (break on unhandled errors, idéalement)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 19-06-2003 à 13:26:50    

drasche a écrit :

ton application, elle utilise des données externes à la base (dans un autre fichier Access) ?  Si oui, vérifier que t'as bien accès aux tables depuis le PC de ton patron par exemple.
 
Vérifier aussi le niveau de gestion d'erreurs (break on unhandled errors, idéalement)


elle utilise des tables liées mais c'est le premier truc que j'ai fait : re-lier les tables, et puis de toute facon ca peut pas etre ca, le premier formulaire marche niquel, et maintenant le deuxieme a l'air de marcher aussi (comment? je sais pas).
Ah oui, et le fichier contenant les tables est sur le pc de mon patron, dc il y a acces.
 
 
 
 

Citation :

Vérifier aussi le niveau de gestion d'erreurs (break on unhandled errors, idéalement)


C'est quoi ca?

Reply

Marsh Posté le 19-06-2003 à 13:41:27    

harrysauce a écrit :

C'est quoi ca?


en fait c'est pour la partie VBA. S'il y a plantage et que ça arrive à l'écran sous forme d'une fenêtre qui propose Debug, End et Help, c'est probablement à cause de la gestion d'erreur positionnée par défaut.  Faut voir si t'as utilisé des clauses style On Error Goto ErrHandler dans ton code VBA par exemple.  Si t'as pas ce genre de chose, oublie cette remarque ;)
 
Ca se trouve dans les options, en 2000 je sais pas bien où. En 97 c'est dans l'onglet Advanced.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 19-06-2003 à 13:45:26    

C'est "verouillage par défaut"?
 
j'ai :
 
 - aucun
 - general
 - enregistrement modifié
 
sur mon poste (ca marche) c'est aucune qui est selectionné
 
sur celui de mon boss, je sais pas, j'irai voir plus tard.....

Reply

Marsh Posté le 19-06-2003 à 14:03:30    

nooooooooon je parle de gestion d'erreur ;)  rien à voir avec le verrouillage des enregistrements :)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 19-06-2003 à 14:10:26    

drasche a écrit :

nooooooooon je parle de gestion d'erreur ;)  rien à voir avec le verrouillage des enregistrements :)

ca peut pas venir de la : j'ai fait une nouvelle install d'access sur 2 pc sous win2000, celui de mon patron et celui d'une collegue, et y'a que sur celui de mon patron que ca marche pas :/
 
Dc je ne pense pas que ca vienne des options (sur le pc de mon patron et sur celui de ma collegue, y'a les mêmes options....)

Reply

Marsh Posté le 19-06-2003 à 14:50:38    

harrysauce a écrit :

ca peut pas venir de la : j'ai fait une nouvelle install d'access sur 2 pc sous win2000, celui de mon patron et celui d'une collegue, et y'a que sur celui de mon patron que ca marche pas :/
 
Dc je ne pense pas que ca vienne des options (sur le pc de mon patron et sur celui de ma collegue, y'a les mêmes options....)


 
J'espère que tu es sur de chez sur que ca ne vient pas des paramètres régionaux???

Reply

Marsh Posté le 19-06-2003 à 14:52:57    

Yoyo@ a écrit :


 
J'espère que tu es sur de chez sur que ca ne vient pas des paramètres régionaux???

ben oui, apres que drasche me l'ait dit je suis allé vérifier!!!
 
Et puis ca expliquerai pas pkoa 1 des formulaires marchait et pas les 2 autres, et pourquoi un de ceux qui marchait pas s'est mis à marcher tout seul :heink:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed