Saltar al contenido

cadena de conexion acces 2010


diegopaula

Recommended Posts

publicado

Buenos dias me pregunto si me pudiesen ayudar tengo una macro que se conecta a una base de datos de acces 2010 y me conecta bien pero en el momento que le coloco contraseña a la base de datos de acces 2010

no me reconoce la contraseña y se pierde la conexion me gustaria seber como resolverlo esta es l aconexion que utilizo:

.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0; " & "data source=" & ThisWorkbook.path & "\BDFERRYSERVICES.accdb;" & "Jet OLEDB:Database Password=SYSWORK2012;"

Muchas gracias

publicado
Hola:

Aparentemente la cadena esta bien, pero ¿que error exacto te sale? Quizás también si se viese más de tu conexión podría ayudar.

Muchas gracias por la ayuda que me puedas brindar voy a subir la macro con la tabla de access, en estos momentos la tabla de access esta sin contraseña y funcional la conexion pero cuando le pongo la contraseña me saca un error que dise contraseña no valida

MACRO.rar

publicado

Olvídalo, fue un lapsus pensando en Access 2003. Abre primero la BD, alog así:

Set cnn = New ADODB.Connection

cnn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\DatosDirectorio.mdb" & ";" & _
"Jet OLEDB:Database Password=xxx"
cnn.Open

Y después recién usa tu recordset, ejemplo:

Set rst = New ADODB.Recordset

sql$ = "select Provincia from Ubigeos where Region='" & Combo2 & "' Group by provincia"

With rst
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open sql$, cnn, , , adCmdText
End With
[/php]

comentas

Abraham

publicado
Olvídalo, fue un lapsus pensando en Access 2003. Abre primero la BD, alog así:

Set cnn = New ADODB.Connection

cnn.ConnectionString = _

"Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & App.Path & "\DatosDirectorio.mdb" & ";" & _

"Jet OLEDB:Database Password=xxx"

cnn.Open

Y después recién usa tu recordset, ejemplo:

Set rst = New ADODB.Recordset

sql$ = "select Provincia from Ubigeos where Region='" & Combo2 & "' Group by provincia"

With rst

.CursorLocation = adUseClient

.CursorType = adOpenKeyset

.LockType = adLockOptimistic

.Open sql$, cnn, , , adCmdText

End With

comentas

Abraham

no me funciona dice que necesito un objeto

  • 1 month later...
publicado

Hola AValencia, el problema que tiene diegopaula es que la conexión no es a una base MDB, sino a una ACCDB que es el formato que maneja tanto Office 2007 así como Office 2010, precisamente he estado viendo tus distintos foros, hasta tu actual web (webcindario) y vi unos ejemplos que aplican a lo que necesito hacer, pero el problema es que es con bases de datos MDB.

He buscado en muchos foros (en inglés incluso) para ver la conexión con ACCDB, pero incluso los foros en inglés ponene una liga donde viene el procedimiento para hacerlo como MDB, en lugar de poner un procedimiento con ACCBD, vamos, ya saldrá el Office 2013, ya tendrímos tres versiones de Office con esas extenciones de archivos y no es posible que sigamos usando el MDB, quiero aprovechar las ventajas de almacenamiento y de cálculos del Office 2007, por ende me rehuso a utilizar los MDB y XLS que ponene en los ejemplos quiero un archivo XLSB (Binario) con mis 64 anidamientos de formulas, con funciones como si.error además de formatos condicionales.

AValencia, he visto que eres un reconocido programador y que incluso tienes un Microsoft MVP, espero nos puedas ayudar a diegopaula y a mi a poder realizar esta tarea.

Saludos cordiales desde México!!

publicado

Gracias por todo lo escrito :courage:

Para una conexión con un archivo Access *accdb sin contraseña de apertura:


"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\BDFERRYSERVICES.accdb;Persist Security Info=False;"
[/CODE]

Para una conexión con un archivo Access *accdb con contraseña de apertura:

[CODE]
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.Path & "\BDFERRYSERVICES.accdb;" & _
"Jet OLEDB:Database Password=aquilaclave;"
[/CODE]

Saludos

Abraham

publicado

ok muy bueno

y en red seria algo asi.

"Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source=" & "\\" & servidor & "\" & directorio & "\BDFERRYSERVICES.accdb;" & _"Jet OLEDB:Database Password=aquilaclave;"

Esto cuando la Pc Servidor no Tiene User ni Contraseña.

si no Cambiaria la Cadena

Atentamente

publicado

Hola:

El signo "&" solo se hace necesario usarlo cuando para una misma instruccion (larga por lo general) se usaran diferentes lineas (ademas del signo '_' ) o cuando se concatenan variables y/o similares por lo que en el código que has enviado en algunos casos no se harían necesarios, por si acaso

Saludos

Abraham

publicado

Buen día, antes que nada muchas gracias por las atenciones y responder, pero sigo revuelto, te anexo el código que trato de utilizar y que tome de tu página para adaptarlo a mis necesidades, el archivo en el que intenté basarme se llama: "con_access", y este es el código que intento modificar:

Sub Exporta()

' Exportará los datos de la hoja de calcula a una tabla de Access

Dim cn As ADODB.Connection, rs As ADODB.Recordset, n As Long

Dim nfila As String

If [b2] = Empty Then

MsgBox prompt:="No hay datos para exportar", Buttons:=vbOKOnly + vbCritical, Title:="Campos vacios"

Exit Sub

End If

' Conecta a la base de datos

Set cn = New ADODB.Connection

cn.Open "Microsoft.ACE.OLEDB.12.0;Data Source; " & "data source=" & ThisWorkbook.Path & "\DB.accdb;Persist Security Info=False;"

' Abrir la grabadora

Set rs = New ADODB.Recordset

rs.Open "Datos", cn, adOpenKeyset, adLockOptimistic, adCmdTable

n = 2

Do While Range("b" & n) <> Empty

With rs

' Seleccionamos los campos.

.AddNew

.Fields("Fecha") = Range("b" & n).Value

.Fields("RFC") = Range("c" & n).Value

.Fields("Nombre") = Range("d" & n).Value

.Fields("Correo") = Range("e" & n).Value

.Fields("Tipo") = Range("f" & n).Value

.Fields("Moral") = Range("g" & n).Value

.Fields("Fisica") = Range("h" & n).Value

.Fields("Corto") = Range("i" & n).Value

.Fields("Poder") = Range("j" & n).Value

.Fields("INAPAM") = Range("k" & n).Value

End With

n = n + 1

Loop

With rs

.AddNew

.Fields("Fecha") = Range("b" & n).Value

.Fields("RFC") = Range("c" & n).Value

.Fields("Nombre") = Range("d" & n).Value

.Fields("Correo") = Range("e" & n).Value

.Fields("Tipo") = Range("f" & n).Value

.Fields("Moral") = Range("g" & n).Value

.Fields("Fisica") = Range("h" & n).Value

.Fields("Corto") = Range("i" & n).Value

.Fields("Poder") = Range("j" & n).Value

.Fields("INAPAM") = Range("k" & n).Value

End With

Set rs = Nothing

cn.Close

Set cn = Nothing

MsgBox prompt:="Los datos fueron enviados correctamente", Buttons:=vbOKOnly, Title:="Exportación Exitosa"

If [b3] = Empty Then

Range("b2", Selection.End(xlToRight)).ClearContents

Exit Sub

End If

nfila = Range("B1048576").End(xlUp).Row

Range("b2:k" + nfila).ClearContents

End Sub

Espero tu valiosa ayuda!!

publicado

Que no puedo hacer que me traiga los datos de Access 2007 (Las bases de datos con la Extención ACCDB), ese el el código que estoy intentando usar para exportar los datos.

publicado

¿Los datos de Access? En teoría ese código lo que hace es crear nuevos registros en Access en base a los datos ingresados en Excel. ¿Eso es lo que quieres hacer? Si es así y solo usaste mal las palabras, entonces ¿en que linea te marca error? ¿que mensajes te sale? ¿que es lo que sucede exactamente?

Abraham

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.