ACCESS : liaison avec SAGE Ligne 100

Liaison Access et Sage

Quelques informations sur la liaison Sage / Access

Impossible de lier les tables Sage dans Access 2003

Problème :

Avec Access 2003, impossible de faire une liaison vers une base de type Sage Ligne 100.

Lors de l'exploitation de votre base de données Sage depuis ACCESS via ODBC, vous avez un message `Argument non valide' au moment de l'attachement des tables.

Cause :

Cette anomalie est due à la présence d'une version incorrecte du fichier msjet40.dll : version 4.0.7328.0 ou supérieur. Cette dll est située dans le répertoire Windows\system32.

Solution :

La dll MsJet40.dll se trouvant dans Windows\System ou Windows\System32 doit être en version 4.0.6.xxx (ex. : version 4.0.6218.0.), pas supérieure.

Cette dll est fournie avec les précédents services Pack de Windows.

Pour ceux sous Windows XP ou Windows 2000

La suppression ou le remplacement du fichier msjet40.dll est automatiquement remplacé par le système par l'ancienne version.

Solutions pour Windows XP et Windows 2000

Solution 1 :

Solution 2 (moins belle mais elle marche !) :

Faire une recherche sur cette dll, et placer la version 4.0.6218.0 de cette dll partout où elle se trouve : au moins les répertoires c:\windows\system32 et c:\windows\system32\dllcache (c'est pas franchement joli, joli mais ça marche) !

Actualiser les liaisons Sage / Access en VBA

Fonction d'initialisation de la connexion avec SAGE

Option Compare Database
Option Explicit
Function Init_Connect() As Boolean
' ATTENTION !!!!!!
' La mise à jour des liaisons ODBC vers Sage
' ne marche que si la dll MsJet40.dll dans le
' dossier Windows\System32 est en version 4.0.6.xxx

ReconnexionCIAL ("GestcomG_Bijou")
Init_Connect = True

End Function

Procédure qui liste les tables Sage à connecter

Sub ReconnexionCIAL(ByVal Source As String)
Dim Errmsg As String
On Error GoTo ERR_RECONNEXIONCIAL
Connexion "F_ARTFOURNISS", Source
Connexion "F_ARTICLE", Source
Connexion "F_ARTSTOCK", Source
Connexion "F_COMPTET", Source

EXIT_RECONNEXIONCIAL:
Exit Sub

ERR_RECONNEXIONCIAL:
MsgErreur (Source)
Resume EXIT_RECONNEXIONCIAL
End Sub

Procédure de connexion

Sub Connexion(ByVal NameTB As String, Source As String)
Dim DBODBC As Database
Dim cnxGesComm As ADODB.Connection ' Identifiant de la connexion ODBC
Dim Tables As TableDef
Dim TxtConnexion As String ' chaîne de connexion
Dim i As Integer
Set DBODBC = DBEngine.Workspaces(0).Databases(0)
' Construction de la chaîne de connnexion
TxtConnexion = "ODBC;DSN=" & Source & ";DBQ=\\Serveur\SAGE\ G_BIJOU.gcm;CODEPAGE=1252;UID=monid;PWD=monpw;;"
If exist_table(NameTB) Then
Set Tables = DBODBC.TableDefs(NameTB)
Tables.Connect = TxtConnexion
Tables.RefreshLink
End If
DBODBC.Close
End Sub


Public Sub MsgErreur(ByVal Source As String)
MsgBox "La connexion a échoué, Vérifiez le paramétrage de la source de données " & Source
End Sub