 |
Forum Sage Forum des utilisateurs SAGE
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
jdelestre
Inscrit le: 23 Aoû 2010 Messages: 2 Localisation: ANGERS
|
Posté le: Lun Aoû 23, 2010 10:27 am Sujet du message: Fonctions Avançées - Multiple connexions - Paie Sage |
|
|
Bonjour,
J'utilise une application ACCESS/VBA pour me connecter à des bases de données SAGE PAIE PACK 19.0 via le driver ODBC et un DSN.
Cette application me permet de faire des importations de la PAIE dans une table ACCESS :
je me connecte à une base de données PAIE SAGE ;
je lance une requête de selection simple (sélection de salariés) ;
pour chaque enregistrement de cette requête, je lance une fonction avançée "ConstanteMontantPeriode" qui me renvoi pour un salarié et une constante donnée, le calcul de cette constante ;
j'importe ces données après les avoir formatées, dans ma table ACCESS ;
Si je réussis à importer mes données correctement pour une PAIE, j'ai néanmoins un problème :
Je veux faire cette routine pour plusieurs PAIES via un module d'importation (je sélectionne les PAIES à importer et je lance la procédure ...) inclu dans une boucle.
==> Si ma requête simple fonctionne parfaitement (je récupère bien toutes mes données salariés, nom, prénom, matricule etc ...) pour chaque PAIE (ce qui signifie que ma connexion est bonne...), ma fonction avancée, elle, n'importe que la valeur du premier enregistrement de ma 1ère PAIE (les mêmes valeurs sont importées pour tous les salariés !!!). Puis au bout d'un moment, les bonnes valeurs s'importent correctement (Au bout d'1m30 a peu près) !!???
Pourriez vous m'aider
Cordialement |
|
| Revenir en haut de page |
|
 |
jdelestre
Inscrit le: 23 Aoû 2010 Messages: 2 Localisation: ANGERS
|
Posté le: Lun Aoû 23, 2010 10:31 am Sujet du message: |
|
|
Bonjour,
Voici un exemple simple de la fonction avancée sur PAIE Windows SAGE 100 sur une base Access
Ne pas oublier de référencer la library "ASD100Lib" sous "c:\Windows\System32"
Private Sub BtnImport_Click()
Dim result As Double
Dim objPaie As ASD100Lib.PMS1
Dim erreur As Integer
Dim cnx As ADODB.Connection
Dim strConnect As String
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Connexion à la BDD 1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
strConnect = "DSN=MONDSN1; "
Set cnx = New ADODB.Connection
cnx.ConnectionTimeout = 15
cnx.CommandTimeout = 30
cnx.Open strConnect
cnx.CursorLocation = adUseClient
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Exécution de la fonction avancée sur 2 salariés pour le calcul du total des heures travaillées pour la période demandée
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = New ASD100Lib.PMS1
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00724", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00825", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fermeture et destruction des objets
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = Nothing
cnx.Close
Set cnx = Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Connexion à la BDD 2
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
strConnect = "DSN=MONDSN2; "
Set cnx = New ADODB.Connection
cnx.ConnectionTimeout = 15
cnx.CommandTimeout = 30
cnx.Open strConnect
cnx.CursorLocation = adUseClient
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Exécution de la fonction avancée sur 2 salariés pour le calcul du total des heures travaillées pour la période demandée
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = New ASD100Lib.PMS1
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00002", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)
result = objPaie.ConstanteMontantPeriode("TOTALHTRAV", "00003", 4, #1/1/2010#, #1/31/2010#)
Debug.Print Round(result, 2)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Fermeture et destruction des objets
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set objPaie = Nothing
cnx.Close
Set cnx = Nothing
End Sub
Résultat attendu : 85,51 44 (BDD 1) 66,25 52,12 (BDD 2)
Résultat de la fonction : 85,51 44 (BDD 1) 85,51 85,51 (BDD 2)
==> On voit bien ici que le résultat de la connexion sur la BDD 2 reprend en fait le premier enregsitrement de la BDD 1 !!!!
PS : J'ai également testé sur les fonctions API's ... même résultat !?
Merci de votre aide
Cordialement |
|
| Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|