Hola a todos.
Estoy intentado vincular consultas de AS/400 a hojas Excel mediante OLE DB, pero no lo consigo:
El entorno de cliente es:
Windows 2000 SP3
Excel 2000
IBM AS/400 Client Access Express v5 r1, nivel mod.: 0, nivel de servicio SI05361.
Utilizo una macro en VB que se ejecuta desde dentro de Excel.
Dicha macro la he obtenido del MSDN de Microsoft y he sustuido la referencia al proveedor SQL Server por la referencia al proveedor AS400.
El c�digo utilizado es
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Sub createOLEDBQueryTable()
Dim oQTB as QueryTable
Dim wks as WorkSheet
set wks = ThisWorkbook.WorkSheets.Add
set oQTB= wks.QueryTables.Add("OLEB;Provider=IBMDA400;Data Source=mi400;",wks.Range("A1"))
with oQTB
.CommandText ="SELECT * FROM MISDATOS"
.CommandType=xlCmdSQL
.Name="MISDATOS"
.Refresh False
end with
Exit sub
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Al llegar a la instrucci�n "Refresh" genera el siguiente mensaje de error : Error de la aplicaci�n '1004' , sin m�s explicaciones.
Cambiando ligeramente las instrucciones, obtengo el mismo n�mero de error pero adem�s me indica que me ponga en contacto con el fabricante del proveedor OLE DB.
El siguiente c�digo s� funciona, pero el rango de datos producido no es
actualizable.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Public Sub createOLEDBQueryTable()
Dim cn AS ADODB.connection
Dim rs As ADODB.RecordSet
Dim oQTB as QueryTable
Dim wks as WorkSheet
set cn = new ADODB.Connection
cn.Open "OLEB;Provider=IBMDA400;Data Source=mi400;"
set rs = new ADODB.Recordset
rs.Open "SELECT * FROM MISDATOS"
set wks = ThisWorkbook.WorkSheets.Add
set oQTB= wks.QueryTables.Add(rs,wks.Range("A1"))
oQTB.Refresh false
Exit sub
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Los ejemplos proporcionados por IBM pasan piadosamente por alto esta funcionalidad
�Algui�n ha hecho algo similar?
Gracias por adelantado.
