Volubis, le forum IBM i Index du Forum Volubis, le forum IBM i
avec les clubs Informatiques IPL et Bretagne.
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

AS400 et access

 
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Questions, suggestions, vie du forum, divers
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
bmo



Inscrit le: 02 Avr 2009
Messages: 4
Localisation: PARIS

MessagePosté le: Jeu 02 Avr 2009, 15:51:41    Sujet du message: AS400 et access Répondre en citant

bonjour
j'aurais aimé développer en VBA un transfert d'une table access vers un fichier del'as400 .

NB : en VBA, je sais déjà me connecter sur l'as400, je sais envoyer une commande sur l'as400 (ex : .CommandText = "{{CALL /QSYS.LIB/BMORVAN.LIB/WORK01.PGM (?,?)}}")

merci beaucoup
bmo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 716
Localisation: Nantes

MessagePosté le: Jeu 02 Avr 2009, 16:57:42    Sujet du message: Accès en VBA Répondre en citant

Bonjour,

j'imagine que vous utilisez ADO (OLEDB) ?

je ne connais pas VBA mais VB, avec ce dernier, écrivez qq chose comme ca :

Code:

Set req = New ADODB.Command

With req
Set .ActiveConnection = AS400
    .CommandType = adCmdText
End With

List1.clear
Form1.Refresh
req.CommandText = "select * from BDVIN1.vins where  PR_CODE = 1"
Set cursor = req.Execute

cursor.MoveFirst
Do Until cursor.EOF
List1.AddItem (cursor.Fields("VIN_NOM") + " - " + cursor.Fields("CEPAGE"))
cursor.MoveNext
Loop


et insérez dans la boucle l'INSERT sur la base Access à la place du Additem.

sinon, voyez l'exportation (cde I5/OS CPYTOIMPF) qui peut générer des fichiers de type CSV et importez ensuite dans Access.
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
bmo



Inscrit le: 02 Avr 2009
Messages: 4
Localisation: PARIS

MessagePosté le: Ven 03 Avr 2009, 13:45:30    Sujet du message: (sans texte) Répondre en citant

le bout de code que vous m'avez envoyé c'est dand le sens as400 vers access. mais mon problème c'est une table access à exporter dans une libraire de l'as/400.

merci
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 716
Localisation: Nantes

MessagePosté le: Dim 05 Avr 2009, 11:33:38    Sujet du message: transfert Access vers AS400 Répondre en citant

Alors, faites un SELECT sur la table Access et un INSERT SQL pour chaque ligne lue,
ou bien exportez sous Access , transférez le fichiers CSV dans un répertoire de l'IFS (par FTP ou avec le voisinage réseau) puis passez la commande CPYFRMIMPF cette fois.
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
lbrault



Inscrit le: 14 Avr 2009
Messages: 3
Localisation: Dinan

MessagePosté le: Mar 14 Avr 2009, 15:56:42    Sujet du message: (sans texte) Répondre en citant

un petit exemple à l'appui :

Citation:


Public Function fImportToAS400()

Dim oCnAS400 As New ADODB.Connection
Dim oCnAccess As New ADODB.Connection
Dim oRsAccess As New ADODB.Recordset
Dim strSql As String


'Connexion à Access
With oCnAccess
.Provider = "Microsoft.JET.OLEDB.4.0"
.ConnectionString = <cheminBddAccess>
.Open
MsgBox .State
End With


'Connexion à AS400
With oCnAS400
.Provider = "IBM DB2 UDB for iSeries IBMDA400 OLE DB Provider"
.ConnectionString = "Data Source=<serveurAS400>;Catalog Library List=<bbl>;User Id=<user>;Password=<pwd>"
.Open
MsgBox .State
End With


strSql = "SELECT * FROM <TableAccess>"
Set oRsAccess = oCnAccess.Execute(strSql)
If Not (oRsAccess.BOF And oRsAccess.EOF) Then
While Not oRsAccess.EOF
strsql = "INSERT INTO <TableAS400> (....) VALUES(" & rs("champ1") & ", " & ....
oCnAS400.Execute strSql
oRsAccess.MoveNext
Wend
End If
oRsAccess.Close
oCnAccess.Close
oCnAS400.Close


'Libération de la mémoire
Set oCnAS400 = Nothing
Set oCnAccess = Nothing
End Function
[/quote]
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
bmo



Inscrit le: 02 Avr 2009
Messages: 4
Localisation: PARIS

MessagePosté le: Mer 15 Avr 2009, 10:06:48    Sujet du message: (sans texte) Répondre en citant

merci beaucoup
je suis en plein test
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
bmo



Inscrit le: 02 Avr 2009
Messages: 4
Localisation: PARIS

MessagePosté le: Mer 15 Avr 2009, 14:27:13    Sujet du message: (sans texte) Répondre en citant

merci à tous
cela fonctionne très bien
bruno m
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Questions, suggestions, vie du forum, divers Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

Anti Bot Question MOD - phpBB MOD against Spam Bots