cs_fifi37
Messages postés3Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention22 juin 2004
-
21 juin 2004 à 10:37
carnez
Messages postés120Date d'inscriptionjeudi 31 octobre 2002StatutMembreDernière intervention 2 août 2004
-
21 juin 2004 à 17:26
Bonjour
Je voudrais avec vb 5 pro et winsock ou autre me connecter a AS400, voir les fichiers et les utiliser.
carnez
Messages postés120Date d'inscriptionjeudi 31 octobre 2002StatutMembreDernière intervention 2 août 2004 21 juin 2004 à 17:26
bonjour,
voilà un expemple de code qui te connecte à un AS400 sans source ODBC, et lance une requête.
une fois connecté, bon courage (la syntaxe SQL est particulièrement vicieuse !!!)
pour le reste, tu peux tout faire (ou presque), comme s'il s'agissait d'une base SQL par exemple
Public Sub SupportsX2()
'*************************************************************************
' connexion à l'As400 pour une requête UNION
'*************************************************************************
Dim Rs As New ADODB.Recordset
Dim strCnn, strsql, winto, wSelect, wFrom, wHaving, wOrder, wGroup As String
Dim intIndex As Integer
Dim Cnn As New ADODB.Connection
Dim ado400 As New ADODB.Connection
Dim adoc As New ADODB.Connection
Dim i As Integer
Dim Prop As ADODB.Property
Dim Fld As ADODB.Field
' **********************************************************************************
' CONNEXION ET RECORDSET SUR AS400
' **********************************************************************************
Set Cnn = CreateObject("ADODB.connection")
Cnn.Open "provider=IBMDA400;data source=agrosys", "", ""
strsql = " " & _
" select nartmk,mvtsmk,dtmvmk,sum(qtemk) as qte,sum(pdsmk) as poids, sum(valemk) as valeur " & _
" from agsav001.mvtstopf " & _
" where (sensmk='E' and signmk='+')" & _
" group by nartmk,mvtsmk,dtmvmk" & _
" having ((mvtsmk = 'A01' " & _ " Or mvtsmk 'FAN' Or MVTSMK 'FAS' " & _ " Or MVTSMK 'FC ' Or mvtsMK 'FD ' " & _ " Or MVTSMK 'FIT' Or MVTSMK 'FM ' " & _ " or MVTSMK 'FTR' Or MVTSMK 'RA+' " & _ " Or MVTSMK 'RA-' Or MVTSMK 'RF ') " & _
"And (DTMVMK between 20020101 and 20020501 ))" & _
" union" & _
" select nartmk,mvtsmk,dtmvmk,sum(qtemk) * (-1) as qte,sum(pdsmk) * (-1) as poids, sum(valemk) * (-1) as valeur " & _
" from agsav001.mvtstopf " & _
" where (sensmk='E' and signmk='-')" & _
" group by nartmk,mvtsmk,dtmvmk " & _
" having ((mvtsmk = 'A01' " & _ " Or mvtsmk 'FAN' Or MVTSMK 'FAS' " & _ " Or MVTSMK 'FC ' Or mvtsMK 'FD ' " & _ " Or MVTSMK 'FIT' Or MVTSMK 'FM ' " & _ " or MVTSMK 'FTR' Or MVTSMK 'RA+' " & _ " Or MVTSMK 'RA-' Or MVTSMK 'RF ') " & _
"And (DTMVMK between 20020101 and 20020501 ))"
Set Rs = CreateObject("ADODB.recordset")
Set Rs.ActiveConnection = Cnn
Debug.Print Rs.State
Rs.Open strsql
Debug.Print Rs.State
Do Until Rs.EOF
For Each Fld In Rs.Fields
Debug.Print Fld.Name & " : " & Fld.Value
Next Fld
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing