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
AS400 et access
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
Accès en VBA
Bonjour,
j'imagine que vous utilisez ADO (OLEDB) ?
je ne connais pas VBA mais VB, avec ce dernier, écrivez qq chose comme ca :
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.
j'imagine que vous utilisez ADO (OLEDB) ?
je ne connais pas VBA mais VB, avec ce dernier, écrivez qq chose comme ca :
Code : Tout sélectionner
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
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)
(sans texte)
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
merci
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
transfert Access vers AS400
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.
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)
(sans texte)
un petit exemple à l'appui :
[/quote]
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
(sans texte)
merci beaucoup
je suis en plein test
je suis en plein test
(sans texte)
merci à tous
cela fonctionne très bien
bruno m
cela fonctionne très bien
bruno m