![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juin 2008
Messages: 37
|
Bonjour à toutes et tous,
J'ai un petit fichier qui a marché pendant des années et qui depuis plusieurs mois ne fonctionne plus sans raisons. Avant de commencer, le but de ce fichier est d'extraire des données dans une base de données IBM AS400 puis de les mettes en forme. Uneame charitable serait-elle me dire si quelque chose cloche au niveau de l'extraction? nom du classeur : nmmencaltures Bibliothéque attaqué via un ODBC : "V61BPFR" et "MOIS" DSN : BPCS BPROD,BCHLD,IIML01.IDESC,BQREQ ... correspond aux noms des données a rappatrier Qd je rappatrie mon EXCEL plante ou tourne des "heures" pour ne rien extraire Cordialement -------------------------------------------------------------- Public classeur As Workspace Public Base_v61 As Database Public Base_MOIS As Database Public LesEnregist1 As Recordset, LesEnregist2 As Recordset, LesEnregist3 As Recordset, LesEnregist4 As Recordset Public ident As String, mot_de_passe As String Public Connect As Boolean, Connect1 As Boolean Public art As String, art1 As String Public w As Integer Public tot_op As Double, tot_piece As Double Sub extraction() Sheets("nomenclatures").Select art = Sheets("nomenclatures").TextBox4.Value tot_op = 0 tot_piece = 0 'If Connect = False Then Set classeur = CreateWorkspace("", "admin", "", dbUseJet) Set Base_v61 = classeur.OpenDatabase("BPCS", _ dbDriverNoPrompt, True, _ "ODBC;DATABASE=v61bpfr;UID=" & ident & " ;PWD= " & mot_de_passe & ";DSN=BPCS") ' Connect = True 'End If 'If Connect1 = False Then Set classeur1 = CreateWorkspace("", "admin", "", dbUseJet) Set Base_MOIS = classeur1.OpenDatabase("BPCS1", _ dbDriverNoPrompt, True, _ "ODBC;DATABASE=MOIS;UID=" & ident & " ;PWD= " & mot_de_passe & ";DSN=BPCS1") ' Connect1 = True 'End If Range(Cells(8, 1), Cells(1000, 10)).ClearContents Set LesEnregist2 = Base_v61.OpenRecordset("SELECT BPROD,BCHLD,IIML01.IDESC,BQREQ FROM MBML01 LEFT OUTER JOIN IIML01 ON (MBML01.BCHLD=IIML01.IPROD) WHERE (BPROD='" & art & "') ;") If LesEnregist2.BOF = False Then With LesEnregist2 .MoveLast .MoveFirst Nb2 = (.RecordCount) End With For p = 1 To Nb2 For i = 0 To 3 Cells(p + 7, i + 1) = LesEnregist2.Fields(i) Next i LesEnregist2.MoveNext Next p LesEnregist2.Close End If z = 8 While (Cells(z, 2) <> "") art1 = "" & Cells(z, 2) & "" Set LesEnregist3 = Base_v61.OpenRecordset("SELECT CFTLVL+CFPLVL FROM CMF WHERE (CFFAC='LI' AND CFCSET=2 AND CFCBKT=0 AND CFPROD='" & art1 & "') ;") If LesEnregist3.BOF = False Then With LesEnregist3 .MoveLast .MoveFirst Nb3 = (.RecordCount) End With Cells(z, 5) = LesEnregist3.Fields(0) Cells(z, 6).FormulaR1C1 = "=RC[-1]*RC[-2]" tot_piece = tot_piece + Cells(z, 6) LesEnregist3.MoveNext LesEnregist3.Close End If z = z + 1 Wend Sheets("opérations").Select Range(Cells(10, 1), Cells(1000, 10)).ClearContents Set LesEnregist4 = Base_v61.OpenRecordset("SELECT IDESC FROM IIML01 WHERE (IPROD='" & art & "') ;") If LesEnregist4.BOF = False Then With LesEnregist4 .MoveLast .MoveFirst Nb4 = (.RecordCount) End With Sheets("nomenclatures").TextBox5.Value = LesEnregist4.Fields(0) LesEnregist4.MoveNext LesEnregist4.Close End If Set LesEnregist1 = Base_v61.OpenRecordset("SELECT RPROD,RWRKC,ROPDS,RLAB,LWK.WLRTE,RLAB*LWK.WLRTE FROM FRT LEFT OUTER JOIN LWK ON (FRT.RWRKC=LWK.WWRKC) WHERE (RPROD='" & art & "') ;") If LesEnregist1.BOF = False Then With LesEnregist1 .MoveLast .MoveFirst Nb1 = (.RecordCount) End With For p = 1 To Nb1 For i = 0 To 5 Cells(p + 9, i + 1) = LesEnregist1.Fields(i) Next i tot_op = tot_op + Cells(p + 9, 6) LesEnregist1.MoveNext Next p LesEnregist1.Close End If Sheets("nomenclatures").Select Sheets("nomenclatures").TextBox1.Value = tot_piece Sheets("nomenclatures").TextBox2.Value = tot_op Sheets("nomenclatures").TextBox3.Value = tot_op + tot_piece Debug.Print "" & tot_op & " " & tot_piece & "" End Sub |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2007
Localisation: Riedisheim (Mulhouse)
Version Excel : Excel 2003 (PC)
Messages: 2 578
|
Bonsoir,
Si tu n'as rien changé dans le code je ne vois qu'une seul raison pour que ça ne marche plus: quelqu'un a modifié un paramètre quelconque dans l'AS400 qui fait planter le code.Relève la ligne qui plante et regarde avec lui.
__________________
@+ skoobi On en apprend tous les jours Filtrer un tableau, c'est par ici: http://www.excel-downloads.com/forum...tml#post548211 Trier un tableau, c'est par là: http://www.excel-downloads.com/forum...tml#post558394 Aidez ce forum, devenez supporter: http://www.excel-downloads.com/forum...tml#post442476 |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2005
Messages: 221
|
Bonsoir,
Il y a forcément eu un changement (Version d'excel, nom de la base,) As-tu exécuté le code en pas à pas (F8)? si oui tu as repéré jusqu'où cela fonctionne? Y-a-t-il un problème de volumétrie Y-a-t-il assez de place pour les fichiers temporaires sur ton disque local? Difficile de t'apporter de l'aide, mais je pense que tu vas résoudre le PB avec le pas à pas GIBI Remarque : il est souhaitable de libérer les recordset après utilisation ex : set LesEnregist1 = nothing |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juin 2008
Messages: 37
|
Skoobi, Gibi les formeuse et forumeurs bonjour à vous,
Nousavons eu beaucoup de changement en informatique cesderniers mois. Pour la versioon Excel c'est possible que j'en ai installé plusieurs ( parfois en même temps) Le VB est -il si sensible que ça au version en sachant que mon code déja de 2005? Il y a forcément eu un changement (Version d'excel, nom de la base,) Dans la base et aux dires de mon informaticien il n'y a pas eu de changement d'ailleurs j'arrive à me logger, c'est aprés que cela ne rappatrie pas. As-tu exécuté le code en pas à pas (F8)? Non pas pensé à cela j'essaye ce jour car l'ensemble de mes fichiers ( env 6 utilitaires ) ont le même soucis Je penche pour un pb d'Excel car cela marche sur un poste en Win2000 avec excel 2000 alors que je suis en WinXP avec Excel 2000 par contre cela est trés tres long depuis quelques mois ( le CP est vieux). Je penche de mon coté au MDAC de microsoft mais il me semble qu'il y a un ordre / à son installation et l'installation de l'opération nvaigator d'IBM. En tout cas merci de votre aide, je vous tient au courant par rapport à vos soultions proposées et la soluce coté MDAC 2.8 Cordialement si oui tu as repéré jusqu'où cela fonctionne? idem Y-a-t-il un problème de volumétrie Je ne sais pas ce que tu entends par volumétrie ( si c'est la capacité d'excel en terme de lignes et de colones il n'y a pas de pb de ce coté la Y-a-t-il assez de place pour les fichiers temporaires sur ton disque local?Je n'ai pas essayer le code pas à pas Il n'y a pas de pb de ce coté la |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juin 2008
Messages: 37
|
Re à toutes et tous
Aprés un essai de reinstallation du MDAC, il me dit que le MDAC 2.8 est déja installé et qu'il ne peut/veut pas le reinstaller. J'ai supprimé l'opération nvigator puis je l'ai reinstallé. J'avais Excel 2003 que j'ai supprimé pour remettre Excel 2000 J'ai fait la macro pas à pas mais rien d'anormal. J'essaye le SP3 de win XP et je vous tiens au courant Cordialement |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juin 2008
Messages: 37
|
Il semblerais que j'ai un probleme au niveau du microsoft jet.
amlgré une résintal de la version 4 SP8 cela ne fonctionne pas Il but sur le bout de code suivant : Set LesEnregist2 = Base_v61.OpenRecordset("SELECT BPROD,BCHLD,IIML01.IDESC,BQREQ FROM MBML01 LEFT OUTER JOIN IIML01 ON (MBML01.BCHLD=IIML01.IPROD) WHERE (BPROD='" & art & "') ;") sur la portion concernant le MBML01 qui est un des fichier de l'AS400 pourtant bien actif. Lorsque je lance ma macro j'entend mon PC mouliner ( surtout le disuqe) pendant de tres tres longue minute puis il plante alros que par le passé cette extraction mettait moins d'une minute. Si quelqu'un aurait une idée du pb cela m'arrangerai Un de mes collègues a essayé ce fichier sur son PC et il marche correctement. Nosu aovns les même configuration de DSN. Coridialement |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: octobre 2005
Messages: 221
|
Bonsoir,
Si tout fonctionne avec Excel 200 comme tu le dis. il y a une incompatibilité entre les différents composants DLL office et ODBC. quand tu dis j'ai réinstallé excel 200 ou 2003 cela suppose que tu réinstalle l'ensemble des composants office (dont la partie ODBC). Pour l'évolution entre le VBA (VB avec spécificités office) il existe effectivement des différences entre les offices mais entre 2000 et 2003 très très peu. Pour finir, quand tu dis "Lorsque je lance ma macro j'entend mon PC mouliner ( surtout le disuqe) pendant de tres tres longue minute puis il plante alros que par le passé cette extraction mettait moins d'une minute." cela se traduit comment : un plantage windows ou un message de VB. As-tu fait un essaie minimaliste avec une requête du type "select count(*) from uneTable" Bon test GIBI |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juin 2008
Messages: 37
|
Bonsoir à tous,
Merci de ta réponse GIBI. J'ai bien entendu tout desintallé et tout réinstallé. Il semble que mon PC traine un soucis. Je vais tout formater et réinstaller pour repartir sur des bonnes bases. Quand je parle de moulinage, c'est plutôt une execution "sans fin" du programme qui se solde par aucun rappatriement de données. Malheuresement je n'ai pas de plantage avec un code d'erreur. C'est comme s'il travailler trés trés ongtemps sans ne rien traiter. Merci de m'avoir accorder un peu de votre temps Cordialement Coridalement |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Transfert Excel vers Base de Données AS400 | stephane.79 | Forum Excel | 2 | 19/05/2008 03h30 |
| lancer un CLP AS400 depuis une macro ??? | Tof at Job | Forum Excel | 1 | 30/03/2006 08h56 |
| Extraction d'un code postal dans une adresse | Eric D | Forum Excel Downloads - Archives | 6 | 25/12/2004 07h29 |
| excel vers AS400 | gonnet | Forum Excel Downloads - Archives | 2 | 08/10/2004 15h12 |
| macro excel/AS400 help | jahn | Forum Excel Downloads - Archives | 5 | 13/09/2004 11h53 |