Connection AS/400 - recordset ?
jean-luc carnez
-
NATOU2 -
NATOU2 -
bonjour,
Je cherche à augmenter la portabilité des mes applications ACCESS en m'affranchissant totalement des sources de données ODBC et de la configuration via Clent Access;
Je suis parvenu (avec bien du mal !) à établir une connection sur la bibliothèque AS400 que je souhaitais, et à y lister tous mes fichiers bases de données DB2/400.
Mais pas moyen de trouver la syntaxe ou la méthode pour extraire les données de ces fichiers. Message : "Erreur inconnue"
Quelqu'un aurait-il déjà souffert avant moi ?
D'avance, merci
Je cherche à augmenter la portabilité des mes applications ACCESS en m'affranchissant totalement des sources de données ODBC et de la configuration via Clent Access;
Je suis parvenu (avec bien du mal !) à établir une connection sur la bibliothèque AS400 que je souhaitais, et à y lister tous mes fichiers bases de données DB2/400.
Mais pas moyen de trouver la syntaxe ou la méthode pour extraire les données de ces fichiers. Message : "Erreur inconnue"
Quelqu'un aurait-il déjà souffert avant moi ?
D'avance, merci
A voir également:
- Connection AS/400 - recordset ?
- Gmail connection - Guide
- Check cable connection - Forum Matériel & Système
- Enceinte poss psbtst 400 notice - Forum Enceintes / HiFi
- Facebook connection - Guide
- Connection chromecast - Guide
3 réponses
Bonjour!
Je vois que ta demande est restée sans réponse, et je viens de faire la meme :-/
Si tu as trouvé, ca me dépannerait bien si tu voulais m'en faire profiter! :)
merci
Cédric
Je vois que ta demande est restée sans réponse, et je viens de faire la meme :-/
Si tu as trouvé, ca me dépannerait bien si tu voulais m'en faire profiter! :)
merci
Cédric
je rencontre le même problème je n'arrive même pas à configurer ODBC pour me connecter à la bonne bibliothèque.
Vous pouvez m'explique comment avez vous fait.
merci
Oana
Vous pouvez m'explique comment avez vous fait.
merci
Oana
bonjour,
depuis, de l'eau a coulé sous les ponts, et je manipule tous les jours des connexions à nos deux AS400 sans ODBC, ainsi d'ailleurs qu'à d'autres bases (SQL entre autres).
Voici comment faire :
1- il faut créer un objet CONNEXION:
Set Cnn = CreateObject("ADODB.connection")
Cnn.Open "provider=IBMDA400;data source=agrosys", "", ""
où agrosys est ici le nom de l'AS400
2- il faut ensuite créer un objet RECORDSET :
Set Rs = CreateObject("ADODB.recordset")
Set Rs.ActiveConnection = Cnn
il faut enfin ouvrir le RECORDSET
Rs.Open strsql
On peut tester l'état de la connexion et du recordset
if cnn.state = 1 then cnn.close
if rs.state = 1 then rs.close
il suffit, en préalable à l'ouverture du recordset, de définir la chaîne strsql, qui, comme vous l'aurez deviné, est une requête sur des fichiers AS400, du style :
strsql = " " & _
" select " & _
" agfic001.staclfpf.nclist, " & _
" substring(agcgf001.enccltlf.encaen, 1 , 1)," & _
" substring(agcgf001.enccltlf.encaen, 2 , 1)," & _
" substring(agcgf001.enccltlf.encaen, 3 , 1)," & _
" agfic001.clientpf.cpaycl, " & _
" agfic001.clientpf.collcl, " & _
" agfic001.clientpf.cen2cl, " & _
" agfic001.clientlf.raiscl, " & _
" agfic001.clientpf.rdoccl, " & _
" agfic001.clientpf.villcl, " & _
" agcgf001.enccltlf.mtaben " & _
" from " & _
" (((agfic001.staclfpf left join agcgf001.enccltpf on agfic001.staclfpf.nclist = agcgf001.enccltpf.nclfen)" & _
" left join agfic001.clientpf on agfic001.staclfpf.nclist = agfic001.clientpf.nclicl) " & _
" left join agfic001.clientlf on agfic001.clientpf.cen2cl = agfic001.clientlf.nclicl)" & _
" left join agcgf001.enccltlf on agcgf001.enccltpf.ncleen = agcgf001.enccltlf.nclfen " & _
" where (agfic001.staclfpf.dtcast >= " & debut & " And agfic001.staclfpf.dtcast <= " & fin & ")" & _
" order by agfic001.staclfpf.nclist"
ATTENTION !!!!
Vous constaterez que le plus difficile, ce n'est pas de se connecter à l'AS400, sans lien ODBC, (ça marche tout seul !), mais c'est la syntaxe des requêtes !!
Bon courage.
depuis, de l'eau a coulé sous les ponts, et je manipule tous les jours des connexions à nos deux AS400 sans ODBC, ainsi d'ailleurs qu'à d'autres bases (SQL entre autres).
Voici comment faire :
1- il faut créer un objet CONNEXION:
Set Cnn = CreateObject("ADODB.connection")
Cnn.Open "provider=IBMDA400;data source=agrosys", "", ""
où agrosys est ici le nom de l'AS400
2- il faut ensuite créer un objet RECORDSET :
Set Rs = CreateObject("ADODB.recordset")
Set Rs.ActiveConnection = Cnn
il faut enfin ouvrir le RECORDSET
Rs.Open strsql
On peut tester l'état de la connexion et du recordset
if cnn.state = 1 then cnn.close
if rs.state = 1 then rs.close
il suffit, en préalable à l'ouverture du recordset, de définir la chaîne strsql, qui, comme vous l'aurez deviné, est une requête sur des fichiers AS400, du style :
strsql = " " & _
" select " & _
" agfic001.staclfpf.nclist, " & _
" substring(agcgf001.enccltlf.encaen, 1 , 1)," & _
" substring(agcgf001.enccltlf.encaen, 2 , 1)," & _
" substring(agcgf001.enccltlf.encaen, 3 , 1)," & _
" agfic001.clientpf.cpaycl, " & _
" agfic001.clientpf.collcl, " & _
" agfic001.clientpf.cen2cl, " & _
" agfic001.clientlf.raiscl, " & _
" agfic001.clientpf.rdoccl, " & _
" agfic001.clientpf.villcl, " & _
" agcgf001.enccltlf.mtaben " & _
" from " & _
" (((agfic001.staclfpf left join agcgf001.enccltpf on agfic001.staclfpf.nclist = agcgf001.enccltpf.nclfen)" & _
" left join agfic001.clientpf on agfic001.staclfpf.nclist = agfic001.clientpf.nclicl) " & _
" left join agfic001.clientlf on agfic001.clientpf.cen2cl = agfic001.clientlf.nclicl)" & _
" left join agcgf001.enccltlf on agcgf001.enccltpf.ncleen = agcgf001.enccltlf.nclfen " & _
" where (agfic001.staclfpf.dtcast >= " & debut & " And agfic001.staclfpf.dtcast <= " & fin & ")" & _
" order by agfic001.staclfpf.nclist"
ATTENTION !!!!
Vous constaterez que le plus difficile, ce n'est pas de se connecter à l'AS400, sans lien ODBC, (ça marche tout seul !), mais c'est la syntaxe des requêtes !!
Bon courage.
Bonjour,
J'ai bien essayer ta méthode qui m'intéresse fortement, il parraît que le provider IBMDA400 est beaucoup plus performant, ceci dit moi j'ai un message d'erreur. Pourrais-tu m'aider stp :
Code :
Set cnn = CreateObject("ADODB.connection")
cnn.Open "Provider=IBMDA400;Data Source=HEPSTG1;Defaut collection=ECFH0"
MsgBox cnn.State
L'erreur se produite à l'ouverture de la connection :
Message "Erreur d'exécution '-2147217887(80040e21)' Erreur Automation"
Merci de ton aide
J'ai bien essayer ta méthode qui m'intéresse fortement, il parraît que le provider IBMDA400 est beaucoup plus performant, ceci dit moi j'ai un message d'erreur. Pourrais-tu m'aider stp :
Code :
Set cnn = CreateObject("ADODB.connection")
cnn.Open "Provider=IBMDA400;Data Source=HEPSTG1;Defaut collection=ECFH0"
MsgBox cnn.State
L'erreur se produite à l'ouverture de la connection :
Message "Erreur d'exécution '-2147217887(80040e21)' Erreur Automation"
Merci de ton aide