Hola Miguel917.
Me alegra encontrar a alguien que trabaje con bbdd DB/2 en un iSeries...
Lo mejor que puedes hacer es escapar del control data e implementar la conexión y demás mediante código.
He aquí un pequeño ejemplo usando ADO:
Dim cnx1 As ADODB.Connection
Set cnx1 = New ADODB.Connection
cnx1.Open "provider=IBMDA400;data source=NOMBRE_SISTEMA; , , -1"
Dim cmd1 As ADODB.Command
Set cmd1 = New ADODB.Command
Set cmd1.ActiveConnection = Cnx1
cmd1.Properties(16).Value = 7 'Updatability
'Asignando el recordset a una tabla.
cmd1.CommandType = adCmdTable
cmd1.CommandText = _
"/QSYS.LIB/MILIBRERIA.LIB/MIOBJ.FILE (*FIRST, *NONE)"
cmd1.Parameters.Append cmd1.CreateParameter("P1", adChar, adParamInput, 1)
Dim rs1 As ADODB.Recordset
Dim var1 As Variant, var2 As Variant
Set rs1 = cmd1.Execute(var1, var2, adCmdTable)
MsgBox rs1.RecordCount
'Asignando el recordset a un cursor SQL.
Dim rs2 As ADODB.Recordset
cmd1.CommandType = adCmdText
cmd1.CommandText = "SELECT * FROM MILIBRERIA.MIOBJ"
Set rs2 = cmd1.Execute()
MsgBox rs2.RecordCount
Set rs1 = Nothing
Set rs2 = Nothing
Set cmd1 = Nothing
cnx1.Close
Set cnx1 = Nothing
Al usar el método Close del command, se finaliza el trabajo del QUSER.
Por otro lado, te cuento que yo no utilizo OleDb para conectarme con el 400, uso una biblioteca de tipos que se suministra con Client Access que se llama
Client Access Object Library (cwbautsv.tlb) a partir de la cual tengo creadas ciertas clases para gestionar la conexión con el as400 y con DB/2...
El rendimiento de estas clases tal como las realicé es muy bueno para consultas a la base de datos, para entendernos digamos que desde el AS al PC. Para conseguir el mismo rendimiento en sentido contrario, tendría que usar una cola de datos y el correspondiente PGM en el 400 que procesara los datos de la cola. Para evitar tener que contar con la existencia de ese programa y que todo lo necesario este en el cliente, si tengo que transferir al 400 gran cantidad de datos, uso OleDb con comandos tipo tabla. Si los cambios en la bd son pocos, lo evito y con SQL me apaño perfectamente.
Si tienes tiempo te recomiendo que examines los objetos de esta librería de tipos y seguro que encuentras muchas cosas que te interesan.
Por cierto, como curiosidad y si me lo permites, una pregunta: ¿usais interactivo en vuestra/s máquina/s?
Suerte.