Ayuda Excel vs AS/400

19/12/2005 - 23:06 por Guille | Informe spam
Amigos, cómo puedo desde el excel ejecutar comandos del AS/400. Por ejemplo
un query y de ahí transferir el archivo al excel. Pero todo desde el excel
vía VBE.
Ya conseguí conectarme al Sistema y al recordset vía ADO; y también ya puedo
"bajar" data usando SQL. Sin embargo, para coronar mi investigación quisiera
ejecutar comandos nativos del AS/400 desde el excel. Por ejemplo ejecutar un
RUNQRY. Desde el AS/400 tengo una aplicación que se ejecuta sólo con query's,
hechos a través del WRKQRY que son del tipo QRYDFN, y la idea es si desde VBE
puedo ejecutarlas con RUNQRY (Biblioteca/nombre de query) o también aquellos
query's usando variables del tipo QMQRY. He probado desde el AS/400 con el
comando STRQMQRY, que me sería fantástico si lo pudiera hacer desde un módulo
del VB.
Cuento con IBM Client Accsess Express
Les agradeceré si me pueden brindar alguna ayuda, como links relacionados u
otra bibliografía.
Todo el avance lo he conseguido gracias a este foro y a foros especializados
en AS/400.

Saludos .
Desde ya muchas gracias por la ayuda

Guille

Preguntas similare

Leer las respuestas

#1 Hernandez, Roberto
20/12/2005 - 01:14 | Informe spam
Hola Guille.
Sabes? Yo quisiera pedir tu orientación para 'jalar' información del AS400.
Yo tengo el IBM Personal Communications, y no sé si pudiera conectarme por
ADO igual que tu.
Tienes algún código que pudiera servirme de ejemplo?
Te lo voy a agradecer eternamente.

"Guille" escribió en el mensaje
news:
Amigos, cómo puedo desde el excel ejecutar comandos del AS/400. Por
ejemplo
un query y de ahí transferir el archivo al excel. Pero todo desde el excel
vía VBE.
Ya conseguí conectarme al Sistema y al recordset vía ADO; y también ya
puedo
"bajar" data usando SQL. Sin embargo, para coronar mi investigación
quisiera
ejecutar comandos nativos del AS/400 desde el excel. Por ejemplo ejecutar
un
RUNQRY. Desde el AS/400 tengo una aplicación que se ejecuta sólo con
query's,
hechos a través del WRKQRY que son del tipo QRYDFN, y la idea es si desde
VBE
puedo ejecutarlas con RUNQRY (Biblioteca/nombre de query) o también
aquellos
query's usando variables del tipo QMQRY. He probado desde el AS/400 con el
comando STRQMQRY, que me sería fantástico si lo pudiera hacer desde un
módulo
del VB.
Cuento con IBM Client Accsess Express
Les agradeceré si me pueden brindar alguna ayuda, como links relacionados
u
otra bibliografía.
Todo el avance lo he conseguido gracias a este foro y a foros
especializados
en AS/400.

Saludos .
Desde ya muchas gracias por la ayuda

Guille
Respuesta Responder a este mensaje
#2 Guille
20/12/2005 - 16:01 | Informe spam
Roberto, lo primero que tienes que ver es si tienes instalado el Client
Access Express. Pues este emulador contiene algunas librerías que te
permitirán acceder a tu AS/400 con o sin ODBC.
Espero tu respuesta
Guille

"Hernandez, Roberto" wrote:

Hola Guille.
Sabes? Yo quisiera pedir tu orientación para 'jalar' información del AS400.
Yo tengo el IBM Personal Communications, y no sé si pudiera conectarme por
ADO igual que tu.
Tienes algún código que pudiera servirme de ejemplo?
Te lo voy a agradecer eternamente.

"Guille" escribió en el mensaje
news:
> Amigos, cómo puedo desde el excel ejecutar comandos del AS/400. Por
> ejemplo
> un query y de ahí transferir el archivo al excel. Pero todo desde el excel
> vía VBE.
> Ya conseguí conectarme al Sistema y al recordset vía ADO; y también ya
> puedo
> "bajar" data usando SQL. Sin embargo, para coronar mi investigación
> quisiera
> ejecutar comandos nativos del AS/400 desde el excel. Por ejemplo ejecutar
> un
> RUNQRY. Desde el AS/400 tengo una aplicación que se ejecuta sólo con
> query's,
> hechos a través del WRKQRY que son del tipo QRYDFN, y la idea es si desde
> VBE
> puedo ejecutarlas con RUNQRY (Biblioteca/nombre de query) o también
> aquellos
> query's usando variables del tipo QMQRY. He probado desde el AS/400 con el
> comando STRQMQRY, que me sería fantástico si lo pudiera hacer desde un
> módulo
> del VB.
> Cuento con IBM Client Accsess Express
> Les agradeceré si me pueden brindar alguna ayuda, como links relacionados
> u
> otra bibliografía.
> Todo el avance lo he conseguido gracias a este foro y a foros
> especializados
> en AS/400.
>
> Saludos .
> Desde ya muchas gracias por la ayuda
>
> Guille



Respuesta Responder a este mensaje
#3 Hernandez, Roberto
20/12/2005 - 17:21 | Informe spam
Hola Guille.
Como te comento, yo tengo el emulador IBM Personal Communications.
Quizás con este emulador no sea posible la conexión.


"Guille" escribió en el mensaje
news:
Roberto, lo primero que tienes que ver es si tienes instalado el Client
Access Express. Pues este emulador contiene algunas librerías que te
permitirán acceder a tu AS/400 con o sin ODBC.
Espero tu respuesta
Guille

"Hernandez, Roberto" wrote:

Hola Guille.
Sabes? Yo quisiera pedir tu orientación para 'jalar' información del
AS400.
Yo tengo el IBM Personal Communications, y no sé si pudiera conectarme
por
ADO igual que tu.
Tienes algún código que pudiera servirme de ejemplo?
Te lo voy a agradecer eternamente.

"Guille" escribió en el mensaje
news:
> Amigos, cómo puedo desde el excel ejecutar comandos del AS/400. Por
> ejemplo
> un query y de ahí transferir el archivo al excel. Pero todo desde el
> excel
> vía VBE.
> Ya conseguí conectarme al Sistema y al recordset vía ADO; y también ya
> puedo
> "bajar" data usando SQL. Sin embargo, para coronar mi investigación
> quisiera
> ejecutar comandos nativos del AS/400 desde el excel. Por ejemplo
> ejecutar
> un
> RUNQRY. Desde el AS/400 tengo una aplicación que se ejecuta sólo con
> query's,
> hechos a través del WRKQRY que son del tipo QRYDFN, y la idea es si
> desde
> VBE
> puedo ejecutarlas con RUNQRY (Biblioteca/nombre de query) o también
> aquellos
> query's usando variables del tipo QMQRY. He probado desde el AS/400 con
> el
> comando STRQMQRY, que me sería fantástico si lo pudiera hacer desde un
> módulo
> del VB.
> Cuento con IBM Client Accsess Express
> Les agradeceré si me pueden brindar alguna ayuda, como links
> relacionados
> u
> otra bibliografía.
> Todo el avance lo he conseguido gracias a este foro y a foros
> especializados
> en AS/400.
>
> Saludos .
> Desde ya muchas gracias por la ayuda
>
> Guille



Respuesta Responder a este mensaje
#4 Guille
20/12/2005 - 18:11 | Informe spam
Ok, a ver toma nota:.
Hay que adicionar en Herremientas-referencia del editor de Visual Basic
Microsoft Activex Data Objects 2.0 Library "msado20.tlb" para que este codigo
pueda funcionar


Dim nfile As Integer
Dim strConnecion As String

Dim strSql As String
Dim obj As Object
Dim cmObject As Object
Dim GetRS400 As ADODB.Recordset
On Error GoTo Err_Handled

Sheets("Hoja2").Select
Cells.Select
Selection.ClearContents
nfile = FreeFile
Close 1

'Hay que crear una Coneccion al AS400 Via ODBC, en este caso se llama
"AtencionReclamos"'

strConnecion = "Provider=MSDASQL.1;Persist Security Info=False;Data
Source=AtencionReclamos;Initial CatalogÛ2400"
Set cnAS400 = New ADODB.Connection
With cnAS400
.ConnectionString = strConnecion
.CursorLocation = adUseServer
.Open
End With
If cnAS400.State <> 1 Then
AbrirAS400 = False
Set cnAS400 = Nothing
Exit Function
End If
AbrirAS400 = True

'La instruccion SQL que permite obtener el archivo del AS400 puede tener
parametros, ''todo depende de la necesidad de cada quien. En este caso tiene
2 parametros el trimestre' 'y el año los cuales se piden en una pantalla
adicional'

WHERE = " WHERE INDTRI=" & "'" & tri & "'" & " AND AÑOAP=" & "'" & anpro & "'"

strcadena = "SELECT * FROM SNSF01" & WHERE

Set cmObject = New ADODB.Command
cmObject.ActiveConnection = cnAS400

'Ejecuta la instruccion SQL'
cmObject.CommandText = strcadena
Set GetRS400 = cmObject.Execute

'Si no es fin de archivo hay informacion'
If GetRS400.EOF = False Then
i=2
While Not GetRS400.EOF
'Coloco en la hoja2 a partir de la fila 2
la informacion requerida'

VALOR = "A" & Trim(Str(i))
Range(VALOR).Value = GetRS400(0)
VALOR = "B" & Trim(Str(i))
Range(VALOR).Value = GetRS400(1)
VALOR = "C" & Trim(Str(i))
Range(VALOR).Value = GetRS400(2)
VALOR = "D" & Trim(Str(i))
Range(VALOR).Value = GetRS400(3)
VALOR = "E" & Trim(Str(i))
Range(VALOR).Value = GetRS400(4)
VALOR = "F" & Trim(Str(i))
Range(VALOR).Value = GetRS400(5)

VALOR = "G" & Trim(Str(i))
GetRS400.MoveNext
i = i + 1
Wend
Else
MsgBox "No existen Registros Para el Trimestre solicitado."
End If

End Sub

Ojalá resulte
Suerte.
Guille
"Hernandez, Roberto" wrote:

Hola Guille.
Como te comento, yo tengo el emulador IBM Personal Communications.
Quizás con este emulador no sea posible la conexión.


"Guille" escribió en el mensaje
news:
> Roberto, lo primero que tienes que ver es si tienes instalado el Client
> Access Express. Pues este emulador contiene algunas librerías que te
> permitirán acceder a tu AS/400 con o sin ODBC.
> Espero tu respuesta
> Guille
>
> "Hernandez, Roberto" wrote:
>
>> Hola Guille.
>> Sabes? Yo quisiera pedir tu orientación para 'jalar' información del
>> AS400.
>> Yo tengo el IBM Personal Communications, y no sé si pudiera conectarme
>> por
>> ADO igual que tu.
>> Tienes algún código que pudiera servirme de ejemplo?
>> Te lo voy a agradecer eternamente.
>>
>> "Guille" escribió en el mensaje
>> news:
>> > Amigos, cómo puedo desde el excel ejecutar comandos del AS/400. Por
>> > ejemplo
>> > un query y de ahí transferir el archivo al excel. Pero todo desde el
>> > excel
>> > vía VBE.
>> > Ya conseguí conectarme al Sistema y al recordset vía ADO; y también ya
>> > puedo
>> > "bajar" data usando SQL. Sin embargo, para coronar mi investigación
>> > quisiera
>> > ejecutar comandos nativos del AS/400 desde el excel. Por ejemplo
>> > ejecutar
>> > un
>> > RUNQRY. Desde el AS/400 tengo una aplicación que se ejecuta sólo con
>> > query's,
>> > hechos a través del WRKQRY que son del tipo QRYDFN, y la idea es si
>> > desde
>> > VBE
>> > puedo ejecutarlas con RUNQRY (Biblioteca/nombre de query) o también
>> > aquellos
>> > query's usando variables del tipo QMQRY. He probado desde el AS/400 con
>> > el
>> > comando STRQMQRY, que me sería fantástico si lo pudiera hacer desde un
>> > módulo
>> > del VB.
>> > Cuento con IBM Client Accsess Express
>> > Les agradeceré si me pueden brindar alguna ayuda, como links
>> > relacionados
>> > u
>> > otra bibliografía.
>> > Todo el avance lo he conseguido gracias a este foro y a foros
>> > especializados
>> > en AS/400.
>> >
>> > Saludos .
>> > Desde ya muchas gracias por la ayuda
>> >
>> > Guille
>>
>>
>>



Respuesta Responder a este mensaje
#5 Hernandez, Roberto
20/12/2005 - 23:33 | Informe spam
Muchas Gracias Guille.
Parece ser algo más complejo de lo que pensaba.
Tenemos un ERP que corre bajo AS400, y puedo mover información en forma
masiva, pero importando grandes archivos de texto.
Una vez con la data en Excel, todo está automatizado.

Es como un sueño el poder automatizar la transferencia.
Voy a intentarlo!

"Guille" escribió en el mensaje
news:
Ok, a ver toma nota:.
Hay que adicionar en Herremientas-referencia del editor de Visual Basic
Microsoft Activex Data Objects 2.0 Library "msado20.tlb" para que este
codigo
pueda funcionar


Dim nfile As Integer
Dim strConnecion As String

Dim strSql As String
Dim obj As Object
Dim cmObject As Object
Dim GetRS400 As ADODB.Recordset
On Error GoTo Err_Handled

Sheets("Hoja2").Select
Cells.Select
Selection.ClearContents
nfile = FreeFile
Close 1

'Hay que crear una Coneccion al AS400 Via ODBC, en este caso se llama
"AtencionReclamos"'

strConnecion = "Provider=MSDASQL.1;Persist Security Info=False;Data
Source=AtencionReclamos;Initial CatalogÛ2400"
Set cnAS400 = New ADODB.Connection
With cnAS400
.ConnectionString = strConnecion
.CursorLocation = adUseServer
.Open
End With
If cnAS400.State <> 1 Then
AbrirAS400 = False
Set cnAS400 = Nothing
Exit Function
End If
AbrirAS400 = True

'La instruccion SQL que permite obtener el archivo del AS400 puede tener
parametros, ''todo depende de la necesidad de cada quien. En este caso
tiene
2 parametros el trimestre' 'y el año los cuales se piden en una pantalla
adicional'

WHERE = " WHERE INDTRI=" & "'" & tri & "'" & " AND AÑOAP=" & "'" & anpro &
"'"

strcadena = "SELECT * FROM SNSF01" & WHERE

Set cmObject = New ADODB.Command
cmObject.ActiveConnection = cnAS400

'Ejecuta la instruccion SQL'
cmObject.CommandText = strcadena
Set GetRS400 = cmObject.Execute

'Si no es fin de archivo hay informacion'
If GetRS400.EOF = False Then
i=2
While Not GetRS400.EOF
'Coloco en la hoja2 a partir de la fila 2
la informacion requerida'

VALOR = "A" & Trim(Str(i))
Range(VALOR).Value = GetRS400(0)
VALOR = "B" & Trim(Str(i))
Range(VALOR).Value = GetRS400(1)
VALOR = "C" & Trim(Str(i))
Range(VALOR).Value = GetRS400(2)
VALOR = "D" & Trim(Str(i))
Range(VALOR).Value = GetRS400(3)
VALOR = "E" & Trim(Str(i))
Range(VALOR).Value = GetRS400(4)
VALOR = "F" & Trim(Str(i))
Range(VALOR).Value = GetRS400(5)

VALOR = "G" & Trim(Str(i))
GetRS400.MoveNext
i = i + 1
Wend
Else
MsgBox "No existen Registros Para el Trimestre solicitado."
End If

End Sub

Ojalá resulte
Suerte.
Guille
"Hernandez, Roberto" wrote:

Hola Guille.
Como te comento, yo tengo el emulador IBM Personal Communications.
Quizás con este emulador no sea posible la conexión.


"Guille" escribió en el mensaje
news:
> Roberto, lo primero que tienes que ver es si tienes instalado el Client
> Access Express. Pues este emulador contiene algunas librerías que te
> permitirán acceder a tu AS/400 con o sin ODBC.
> Espero tu respuesta
> Guille
>
> "Hernandez, Roberto" wrote:
>
>> Hola Guille.
>> Sabes? Yo quisiera pedir tu orientación para 'jalar' información del
>> AS400.
>> Yo tengo el IBM Personal Communications, y no sé si pudiera conectarme
>> por
>> ADO igual que tu.
>> Tienes algún código que pudiera servirme de ejemplo?
>> Te lo voy a agradecer eternamente.
>>
>> "Guille" escribió en el mensaje
>> news:
>> > Amigos, cómo puedo desde el excel ejecutar comandos del AS/400. Por
>> > ejemplo
>> > un query y de ahí transferir el archivo al excel. Pero todo desde el
>> > excel
>> > vía VBE.
>> > Ya conseguí conectarme al Sistema y al recordset vía ADO; y también
>> > ya
>> > puedo
>> > "bajar" data usando SQL. Sin embargo, para coronar mi investigación
>> > quisiera
>> > ejecutar comandos nativos del AS/400 desde el excel. Por ejemplo
>> > ejecutar
>> > un
>> > RUNQRY. Desde el AS/400 tengo una aplicación que se ejecuta sólo con
>> > query's,
>> > hechos a través del WRKQRY que son del tipo QRYDFN, y la idea es si
>> > desde
>> > VBE
>> > puedo ejecutarlas con RUNQRY (Biblioteca/nombre de query) o también
>> > aquellos
>> > query's usando variables del tipo QMQRY. He probado desde el AS/400
>> > con
>> > el
>> > comando STRQMQRY, que me sería fantástico si lo pudiera hacer desde
>> > un
>> > módulo
>> > del VB.
>> > Cuento con IBM Client Accsess Express
>> > Les agradeceré si me pueden brindar alguna ayuda, como links
>> > relacionados
>> > u
>> > otra bibliografía.
>> > Todo el avance lo he conseguido gracias a este foro y a foros
>> > especializados
>> > en AS/400.
>> >
>> > Saludos .
>> > Desde ya muchas gracias por la ayuda
>> >
>> > Guille
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida