Problema al abrir conexión activa con ADOX

04/09/2006 - 20:17 por xavendano | Informe spam
Saludos,

Tengo una aplicación que manipula una base de datos de Access.
El error se presenta solamente cuando el archivo ya existe y deseo
utilizarlo para incluir nuevas estructuras de datos, o datos en el archivo.

La instrucción original es:
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
C:\MapInfo.mdb"

El error que me presenta la app es el siguiente:

Arguments are of the wrong type, are out of acceptable range, or are in
conflic with one another.

¿cómo puedo obtener el valor correcto a asignar en el ActiveConnection?



Tomé el ejemplo del siguiente link: (por demás excelente)
http://www.mvp-access.com/softjaen/...index.htm, pero me presentó
esta situación particular.

Pero este



Estoy utilizando VS2005.

De antemano, gracias a todos..

Preguntas similare

Leer las respuestas

#1 Robinson.Moscoso
04/09/2006 - 20:35 | Informe spam
Hola como esta:

Esta es la cadena de coneccion que utilizo para conectarme a una base de
datos de access:

"Provider=Microsoft.Jet.OLEDB.4.0;Password=contraseña;User ID=usuario;Data
Source=C:\basededatos.mdb;Persist Security Info=True"

Pero te sugiero que para crearla hagas lo siguiente: crea un archivo txt en
blanco en una carpeta de tu pc, y cambiale la extensión a udl :

coneccion.txt > coneccion.udl

luego haces doble clic sobre el archivo y configuras la coneccion, despues
abres el archivo con un editor de texto como el notepad y ahi tienes la
cadena de coneccion lista para copiar en el archivo config de tu aplicacion.

Ojo tienes que compartir la carpeta donde esta la base de datos en el
servidor para el caso de archivos access, para conectarte a SQL server lo
tienes que configurar para que acepte conecciones TCP-IP.

Cualquier cosa me comentas, ahh y otra cosa... por solidaridad con los demas
integrantes del grupo es mejor trabajar todo por aca por el foro... uno
nunca sabe cuando alguien más tiene el mismo problema ;-)

Un saludo

Róbinson Moscoso
Colombia


"xavendano" escribió en el mensaje
news:%
Saludos,

Tengo una aplicación que manipula una base de datos de Access.
El error se presenta solamente cuando el archivo ya existe y deseo
utilizarlo para incluir nuevas estructuras de datos, o datos en el
archivo.

La instrucción original es:
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
C:\MapInfo.mdb"

El error que me presenta la app es el siguiente:

Arguments are of the wrong type, are out of acceptable range, or are in
conflic with one another.

¿cómo puedo obtener el valor correcto a asignar en el ActiveConnection?



Tomé el ejemplo del siguiente link: (por demás excelente)
http://www.mvp-access.com/softjaen/...index.htm, pero me
presentó esta situación particular.

Pero este



Estoy utilizando VS2005.

De antemano, gracias a todos..




Respuesta Responder a este mensaje
#2 xavendano
04/09/2006 - 20:59 | Informe spam
Gracias por tu pronta respuesta amigo.

El construir la cadena de conexión no es problema, sino simplemente el
realizar la asignación de un "string" a la propiedad "ActiveConnection", del
objeto Catalog

Es decir, genere la cadena de conexión siguiendo tus sugerencias pero me
presentó el mismo error.



"Robinson.Moscoso" wrote in message
news:%
Hola como esta:

Esta es la cadena de coneccion que utilizo para conectarme a una base de
datos de access:

"Provider=Microsoft.Jet.OLEDB.4.0;Password=contraseña;User ID=usuario;Data
Source=C:\basededatos.mdb;Persist Security Info=True"

Pero te sugiero que para crearla hagas lo siguiente: crea un archivo txt
en
blanco en una carpeta de tu pc, y cambiale la extensión a udl :

coneccion.txt > coneccion.udl

luego haces doble clic sobre el archivo y configuras la coneccion, despues
abres el archivo con un editor de texto como el notepad y ahi tienes la
cadena de coneccion lista para copiar en el archivo config de tu
aplicacion.

Ojo tienes que compartir la carpeta donde esta la base de datos en el
servidor para el caso de archivos access, para conectarte a SQL server lo
tienes que configurar para que acepte conecciones TCP-IP.

Cualquier cosa me comentas, ahh y otra cosa... por solidaridad con los
demas
integrantes del grupo es mejor trabajar todo por aca por el foro... uno
nunca sabe cuando alguien más tiene el mismo problema ;-)

Un saludo

Róbinson Moscoso
Colombia


"xavendano" escribió en el mensaje
news:%
Saludos,

Tengo una aplicación que manipula una base de datos de Access.
El error se presenta solamente cuando el archivo ya existe y deseo
utilizarlo para incluir nuevas estructuras de datos, o datos en el
archivo.

La instrucción original es:
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
C:\MapInfo.mdb"

El error que me presenta la app es el siguiente:

Arguments are of the wrong type, are out of acceptable range, or are in
conflic with one another.

¿cómo puedo obtener el valor correcto a asignar en el ActiveConnection?



Tomé el ejemplo del siguiente link: (por demás excelente)
http://www.mvp-access.com/softjaen/...index.htm, pero me
presentó esta situación particular.

Pero este



Estoy utilizando VS2005.

De antemano, gracias a todos..








Respuesta Responder a este mensaje
#3 Robinson.Moscoso
04/09/2006 - 22:31 | Informe spam
Hola como estas...

mmmm no se cual podrá ser el error, pero por ahi mirando encontré estos
articulos que meustran como conectarse no se si intentas esto a ver como te
va...

http://www.functionx.com/ado/Lesson02.htm
http://support.microsoft.com/?scid=kb;es;317867

otra cosa es que pues no se que vas a hacer con tu base de datos, pero en
mis aplicaciones yo utilizo oledb para acceder a mi base de datos, te copio
a ca la funcion que utilizo para tal proposito, espero te sirva.

Function sql_nonquery(ByVal sentencia_sql As String)
'antes de utlizar debes usar el namesapce System.Data.OleDb
'Imports System.Data.OleDb

dim myconnection As OleDbConnection
dim connectionString As String =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=basededatos.mdb;Persist
Security Info=False"

Try
myconnection = New OleDbConnection(connectionString)
myconnection.Open()
Dim mycomando As New OleDbCommand(sentencia_sql)
mycomando.Connection = myconnection
mycomando.ExecuteNonQuery()
mycomando.Connection.Close()
myconnection.Close()
Catch ex As Exception
MsgBox("Error en la conección:" & Chr(13) & ex.ToString, )
End Try
Return True
End Function




Un saludo

Róbinson Moscoso
Colombia



"xavendano" escribió en el mensaje
news:
Gracias por tu pronta respuesta amigo.

El construir la cadena de conexión no es problema, sino simplemente el
realizar la asignación de un "string" a la propiedad "ActiveConnection",
del objeto Catalog

Es decir, genere la cadena de conexión siguiendo tus sugerencias pero me
presentó el mismo error.



"Robinson.Moscoso" wrote in message
news:%
Hola como esta:

Esta es la cadena de coneccion que utilizo para conectarme a una base de
datos de access:

"Provider=Microsoft.Jet.OLEDB.4.0;Password=contraseña;User
ID=usuario;Data
Source=C:\basededatos.mdb;Persist Security Info=True"

Pero te sugiero que para crearla hagas lo siguiente: crea un archivo txt
en
blanco en una carpeta de tu pc, y cambiale la extensión a udl :

coneccion.txt > coneccion.udl

luego haces doble clic sobre el archivo y configuras la coneccion,
despues
abres el archivo con un editor de texto como el notepad y ahi tienes la
cadena de coneccion lista para copiar en el archivo config de tu
aplicacion.

Ojo tienes que compartir la carpeta donde esta la base de datos en el
servidor para el caso de archivos access, para conectarte a SQL server lo
tienes que configurar para que acepte conecciones TCP-IP.

Cualquier cosa me comentas, ahh y otra cosa... por solidaridad con los
demas
integrantes del grupo es mejor trabajar todo por aca por el foro... uno
nunca sabe cuando alguien más tiene el mismo problema ;-)

Un saludo

Róbinson Moscoso
Colombia


"xavendano" escribió en el mensaje
news:%
Saludos,

Tengo una aplicación que manipula una base de datos de Access.
El error se presenta solamente cuando el archivo ya existe y deseo
utilizarlo para incluir nuevas estructuras de datos, o datos en el
archivo.

La instrucción original es:
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
C:\MapInfo.mdb"

El error que me presenta la app es el siguiente:

Arguments are of the wrong type, are out of acceptable range, or are in
conflic with one another.

¿cómo puedo obtener el valor correcto a asignar en el ActiveConnection?



Tomé el ejemplo del siguiente link: (por demás excelente)
http://www.mvp-access.com/softjaen/...index.htm, pero me
presentó esta situación particular.

Pero este



Estoy utilizando VS2005.

De antemano, gracias a todos..












Respuesta Responder a este mensaje
#4 SoftJaén
05/09/2006 - 18:24 | Informe spam
"xavendano" escribió:

Tengo una aplicación que manipula una base de datos de Access.
El error se presenta solamente cuando el archivo ya existe y deseo
utilizarlo para incluir nuevas estructuras de datos, o datos en el
archivo.

La instrucción original es:
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
C:\MapInfo.mdb"

El error que me presenta la app es el siguiente:

Arguments are of the wrong type, are out of acceptable range, or are in
conflic with one another.

¿cómo puedo obtener el valor correcto a asignar en el ActiveConnection?



Hola:

En Visual Basic .net, si tienes activada la instrucción «Option Strict», no
puedes asignar directamente una cadena de conexión a la propiedad
«ActiveConnection» de un objeto ADOX.Catalog, porque obtendrás el error que
nos estás comentando. Deberás de asignar explícitamente un objeto
ADODB.Connection:

Dim cnn As New ADODB.Connection

cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= C:\MapInfo.mdb"
cnn.Open()

cat.ActiveConnection = cnn

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#5 xavendano
05/09/2006 - 19:41 | Informe spam
Excelente SoftJaen
Gracias por tu respuesta...pero eso genera una duda adicional.

En mi app, ciertamente estoy utilizando ambas referencias ADODB y ADOX, con
una acceso al objeto de datos y puedo ejecutar mi instrucción .Open sin
problemas, y con la otra puedo manipular las estructuras que tendrá esa base
de datos. Hasta aquí todo sin problemas.

El problema se presenta al momento de instalar dicha aplicación en un
cliente. Realizo la instalación con un proyecto de tipo Setup con VS2005
para desktop, que funciona perfectamente salvo por el hecho que me presenta
un error al instanciar las librerias de ADODB. El error es algo asi como
como que no existen o no se pueden encontrar los ensamblados de ADODB.
Intenté luego instalar la versión 2.7 o 2.8 del MDAC_TYP pero fue un intento
fallido, el problema persiste.

1- Despierta mi curiosidad el por qué el setup no "empaqueta" tambien las
referencias de ADODB asi como cualquier otra referencia o componente sin
problema.
2- Que alternativa tengo para este tipo de situaciones. Debo instalar
MDAC_TYP previo al framework? o a la aplicación?.
3- En conclusión, como podría solucionar esta situación.



De antemano, gracias a todos.




"SoftJaén" wrote in message
news:
"xavendano" escribió:

Tengo una aplicación que manipula una base de datos de Access.
El error se presenta solamente cuando el archivo ya existe y deseo
utilizarlo para incluir nuevas estructuras de datos, o datos en el
archivo.

La instrucción original es:
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
C:\MapInfo.mdb"

El error que me presenta la app es el siguiente:

Arguments are of the wrong type, are out of acceptable range, or are in
conflic with one another.

¿cómo puedo obtener el valor correcto a asignar en el ActiveConnection?



Hola:

En Visual Basic .net, si tienes activada la instrucción «Option Strict»,
no puedes asignar directamente una cadena de conexión a la propiedad
«ActiveConnection» de un objeto ADOX.Catalog, porque obtendrás el error
que nos estás comentando. Deberás de asignar explícitamente un objeto
ADODB.Connection:

Dim cnn As New ADODB.Connection

cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= C:\MapInfo.mdb"
cnn.Open()

cat.ActiveConnection = cnn

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida