Connection Access AS400 avec ODBC

Ignacio -  
 Jojo -
Bonjour tout le monde,

Je voudrais votre aide. Je travaille dans un projet pour la migration d’un système basé sur AS400 vers SAP, mais on utilise Access comme outil intermédiaire, donc voila mon problème. Je devais accéder AS400 dés Access. L’entreprise m’a fourni le pilote ODBC pour cet accès. Ça marche sur l’interface Access « Fichier/Importer/ODBC Database() ». Mais il faut que j’automatise la reprise de données avec VBA. Voici la fonction que j’ai créée avec ADO.

Private Sub ConnexionKBM_Click()
Dim strCnn As String
Dim strSQL As String
Dim cnn As New ADODB.Connection
Dim rstFLPOSUM As New ADODB.Recordset
strCnn = “DSN=AS400 Info Report;UID=ICASTRO;PSW=ICASTRO123;”
cnn.Open strCnn
strSQL = “SELECT FLPOSUM.POCO, FLPOSUM.POCURR, FLPOSUM.POPN “ _
& “ FROM QAS400LA.KBM400MFG.FLPOSUM FLPOSUM WHERE LPOSUM.POCO=210”
rstFLPOSUM.Open strSQL, cnn, adOpenForwardOnly, adLockReadOnly, adCmdTable
End Sub

La fonction échoue dans l’instruction « Open Recorset » et non dans « Open Connection ». Voici l’erreur :
« Erreur d’exécution ‘-2147217865 (80040e37)’ : [IBM][Client Access Express ODBC Driver (32-bit)][DB2/400SQL]SQL0104 – Token . was not valid. Valid tokens : FOR WITH ORDER UNION OPTIMIZE.

Le string SQL je l’ai pris d’Excel, dans la fonction « Données/Données externes/Créer une requête » et ça marche parfaitement. Merci d'avance de votre collaboration.

Ignacio

1 réponse

Jojo
 
Je serais à ta place (c'est d'ailleurs les mêmes soucis que j'avais), je ferai ceci :

1 - Import dans Excel via les outils IBM (il y a tout ce qui faut avec la pack 'IBM e-Series Access for Windows')
2 - Import de l'excel dans Access (c'est même automatisable ...)
3 - VBAtitude dans Access

Amitiés
2