Consultas con VBA

Tengo una base de datos en un servidor y un formulario con este código (Access 2003) en otro ordenador.
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Err_Form_Open
    Dim miBd As Database
    Dim miQd As QueryDef
    Dim SQL2 As String
    Set miBd = CurrentDb()
    Set miQd = miBd.CreateQueryDef("TotalesPORPosiciones", "SELECT [43PosicionAlbaranProveedor].IdPosicionPedidoProveedor, Sum([43PosicionAlbaranProveedor].CantidadBuenas) AS SumaDeCantidadBuenas, Sum([43PosicionAlbaranProveedor].CantidadMalas) AS SumaDeCantidadMalas, Nz(Sum([CantidadBuenas]+[CantidadMalas]),'0') AS TOTAL, [43PosicionAlbaranProveedor].Borrado FROM 43PosicionAlbaranProveedor GROUP BY [43PosicionAlbaranProveedor].IdPosicionPedidoProveedor, [43PosicionAlbaranProveedor].Borrado HAVING ((([43PosicionAlbaranProveedor].Borrado)<>-1))")
   SQL2 = "SELECT [38PedidosProveedores].IdPedidoProveedor, [39PosicionPedidoProveedores].NºPosicion, [38PedidosProveedores].ID, [39PosicionPedidoProveedores].IdProducto, [39PosicionPedidoProveedores].DatosProducto, [38PedidosProveedores].FechaPedido, [39PosicionPedidoProveedores].Cantidad,"
    SQL2 = SQL2 & "Nz([TotalesPORPosiciones].TOTAL,'0') AS HAY,"
    SQL2 = SQL2 & "[Cantidad]-Nz([TotalesPORPosiciones].TOTAL,'0') AS FALTAN,"
    SQL2 = SQL2 & "[39PosicionPedidoProveedores].IdPosicionPedidoProveedor FROM 38PedidosProveedores INNER JOIN (39PosicionPedidoProveedores LEFT JOIN TotalesPORPosiciones ON [39PosicionPedidoProveedores].IdPosicionPedidoProveedor = [TotalesPORPosiciones].IdPosicionPedidoProveedor) ON [38PedidosProveedores].IdPedidoProveedor = [39PosicionPedidoProveedores].IdPedidoProveedor WHERE ((([Cantidad]-Nz([TotalesPORPosiciones].TOTAL,'0'))>0))"
    Me.RecordSource = SQL2
    miQd.Close
    miBd.Close
Exit_Form_Open:
    Exit Sub
Err_Form_Open:
    MsgBox Err.Description
    Resume Exit_Form_Open
End Sub
Compilo el proyecto, creo archivo .MDE y me funciona. Pero al copiarlo en un tercer ordenador no me aparece ningún valor. ¿Por qué ocurre esto?.
Muchas gracias.

1 Respuesta

Respuesta
1
Si la BD te funciona en un ordenador y en otro no, el problema, lógicamente no es de la BD. Por empezar por algo lógico. ¿Has comprobado en el ordenador en la que no te funciona, que las tablas están bien vinculadas? ¿Has comprobado que tienes el acceso correcto al servidor?
Un saludo.
Perdón la tardanza.
La tablas están bien vinculadas.
Y me imagino que el acceso al servidor es correcto porque el resto de la BD funciona correctamente.
¿Podría se algo sobre el Access instalado en el ordenador en el que no funciona correctamente la BD? ¿Si esta completamente instalado? ¿O sobre la version?
Muchas gracias
Pues realmente ¡no lo se!. Si es como tu dices... ¿No te da ningún error?. Yo tengo varias aplicaciones (estoy hablando de entre 15 o 20), que realize en su día en access 2003 y hoy están funcionando en access 2007 o 2010 sin ningún problema. Pero lógicamente algo hay. Dices que el resto de tu BD funciona correctamente, entiendo que lo único que te falla es ese formulario. Podría ser una referencia, entre versiones cambian, pero esto te arrojaría un error, por eso mi pregunta ¿Te da algún mensaje de error?, o simplemente no te salen los datos.
Un saludo.
Es cierto. Me sale un mensaje "Cancelo la operación anterior".
Va a ser lo que tu dices, porque lo he probado en otro ordenador y no me da error/mensaje.
Muchas gracias
¿Hay alguna solución?
¿Solución? Posiblemente, pero entiéndeme... Si la Bd te funciona en un ordenador y en otro no, no es problema de la BD. Habría que determinar cual es el problema para intentar ponerle solución. Intentar determinar el problema no es nada sencillo, y menos en un foro.
Entiendo que el problema te lo da al abrir un determinado formulario. Mira a ver que "tienes" en el evento al cargar o al abrir de dicho formulario y "estudia" que es lo que puede estar fallando. Desde la distancia me es muy difícil ayudarte.
Un saludo.-

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas