Programación General > Visual Basic 6.0 e inferiores
palabra "new"
Nebire:
Estás usando una clase connection no un objeto.
Por ejemplo , tu puedes hacer este código:
--- Código: Visual Basic --- dim f as form pero no puedes hacer esto:
--- Código: Visual Basic --- set f= new form puesto que form no es un objeto, es necesario adjudicarle uan referencia de instancia,
lo correcto sería algo como esto:
--- Código: Visual Basic --- Set f= new form1
Ahora bien, tu dices que cuando ejecutas el código (supongo que el proyecto de ejemplo original) el código funciona correctamente, por lo que entiendo que lo que te fallan son las referencias.
Así si tu haces una referencia a 'DAO' (Microsoft DAO 3'51 Object library), te ocurrirá este error, porque la clase connection es 'PublicNotCreatable' (valor 2) cuando se diseño, lo que implica que no puede usarse New ni CreateObject. Para las clases con la propiedad Instancing que fueron diseñadas con el valor 'PublicNotCretable', significa que la aplicación crea las clases que necesite, externamente sólo podremos utilizarlas pero no crear nuevas instancias, sólo referencias a las que el objeto ActiveX permita.
En DAO primero tienes que crear un objeto workspace, (luego si se requiere, opcionalmente, un objeto Database con el objeto workspace creado) y finalmente con el objeto workspace creado obtienes un objeto connection al abrir la conexión. ejemplo:
--- Código: Visual Basic --- Dim cn As Connection Dim ws As Workspace Set ws = DAO.CreateWorkspace("MiEspacioTrabajo", "nombreUsuario", "contraseña", dbUseJet) Set cn = ws.OpenConnection("MiConexion", , , "ODBC:DATAASE=xxx;UID=Usuario;PWD=contraseña;DSN=siseutiliza")
Por tanto es asumible que tu estás empleando un objeto connection que no es el que utiliza la aplicación original, por ejemplo si usaras una referencia al objeto ADODB (Microsoft ActiveX Data Objects 2.5 Library), si que permitirá crear instancias del objeto connection directamente, porque al crear esta librería en su diseño a las clases en la propiedad instancing se declaró 'MultiUse' (valor 5).
Revisa tu proyecto y muestra una captura de las referencias que tienes en el proyecto y otra captura de las referencias del proyecto original, verás (y nosotros si nos enseñas la captura) que al menos una referencia (librería) que contiene una clase Connection no coinncide con la otra. Para ser más explícito ya en el proyecto se explica
--- Citar ---I have used dataenvironment
'and Microsoft Jet.OLEDB 3.51 ver in this case.
--- Fin de la cita ---
...
Para otra ocasión explicita que tipos de objetos tienes, no basta a veces con señalar la clase también es necesario señalar la librería, ya que yo puedo crear infinitas librerías con una clase Connection de modo que nada tengan que ver entre sí aparte del nombre.
Te adjunto una imagen para que '''veas''' las diferencias entre ambos objetos connection, cómo pertenecen a diferentes librerías y sobretodo las propiedades que tiene cada uno... fíjate como la clase connection de DAO no tiene el método Open, lo que debería servirte de guía para saber que no es esa referencia la que se está utilizando (en el proyecto original).
Navegación
[*] Página Anterior
Ir a la versión completa