Auxilio: No encuentro el error de .NEt para abrir un archivo access .MDB sobre Windows 98, pero que si funciona perfectamente en Windows XP

18/11/2005 - 22:16 por amigo | Informe spam
Hola amigos:
Tengo una aplicacion que usa un metodo que permite abrir un formulario
access, yo uso Windows XP y no da ningun problema pero cuando lo instalo en
otros equipos conWindows 98 SE , no permite abrir objetos acces MDB , aunque
sin embargo me permite abrir Proyectos Access .ADP
y me permite abrir formularios. Al parecer me falta algo cuando abro objetos
MDB, puesto que no encuntra el archivo MDB y por lo tanto no se instancia:
el mensaje de error:
"Referencia Objeto no establecida como instancia de un objeto"

¿Como puedo depurar el error en esa otra maquina queno tiene VS.NET?
Esta es mi funcion y funciona perfectamente en Windows XP, así es que se las
dejo, a mí me sirve mucho. solo tengo que descubrir que pasa en otro equipo
con Windows 98 que no abr los archivo MDB

Public Sub AbrirFormAccess(ByVal sForm As String, ByVal Archivo As String,
ByVal tipo As Boolean)

Try

Dim oAccess As Access.Application

Dim oForm As Access.Form

Dim oReport As Access.Report

Dim sDBPath As String

oAccess = New Access.ApplicationClass

If Not oAccess.Visible Then oAccess.Visible = True

'sDBPath = oAccess.SysCmd(Action:=Access.AcSysCmdAction.acSysCmdAccessDir)

sDBPath = "C:\"

sDBPath = sDBPath & Archivo

If tipo Then

oAccess.OpenCurrentDatabase(filepath:=sDBPath, Exclusive:=False)

Else

oAccess.OpenAccessProject(filepath:=sDBPath, Exclusive:=False)

End If

For Each oForm In oAccess.Forms

oAccess.DoCmd.Close(ObjectType:=Access.AcObjectType.acForm, _

ObjectName:=oForm.Name, _

Save:=Access.AcCloseSave.acSaveNo)

Next

If Not oForm Is Nothing Then

System.Runtime.InteropServices.Marshal.ReleaseComObject(oForm)

End If

oForm = Nothing

oAccess.DoCmd.SelectObject(ObjectType:=Access.AcObjectType.acForm, _

ObjectName:=sForm, InDatabaseWindow:=True)

oAccess.RunCommand(Command:=Access.AcCommand.acCmdAppMaximize)

oAccess.DoCmd.OpenForm(FormName:=sForm, View:=Access.AcView.acViewNormal)

oAccess.DoCmd.Maximize()

oAccess.CommandBars("Menu Bar").Enabled = False

If Not oAccess.UserControl Then oAccess.UserControl = True

System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)

oReport = Nothing

oAccess = Nothing

Catch ex As Exception

MsgBox(ex.InnerException.ToString & ex.Message)

Finally

End Try

End Sub

gracias, se despide cordialmente,

amigo
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
19/11/2005 - 16:03 | Informe spam
La computadora donde no funciona, ¿tiene instalado Access? Si esta
instalado, ¿es la misma version que usaste para generar la aplicacion?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Preguntas similares