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.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Current Donation Goals

    • Raised 0.00 EUR of 130.00 EUR target
  • Archivos

  • Estadísticas de descargas

    • Archivos
      189
    • Comentarios
      99
    • Revisiones
      29

  • Crear macros Excel

  • Mensajes

    • Hola Buenas Noches, Me podrán ayudar a resolver un problema con una planilla que tengo, les comento brevemente. Tengo un archivo que cuenta con 2 hojas, la primera se llama "Movimientos" que básicamente muestra los productos con quiebres que se presentan y la hoja "Producción" que como su nombre lo dice son las producciones de cada producto según fecha de creación. Lo que necesito es lo siguiente: Cada vez que agregue una producción en la hoja "producción", debo ingresar el código creado su cantidad y lote respetivamente, además de la fecha en que se realiza la producción, en caso que sea mayor a las 12:00 se considera PM sino AM. Lo complejo es acá en la otra hoja llamada Movimientos: Esta hoja contiene una columna que se llama "Saldo", que básicamente es la diferencia de lo producido vs el quiebre en esa fecha. Una columna llamada "Cumple", que significa que ese pedido lleva si o no el producto con quiebre. Y una columna "Se preparo", que es si el pedido se preparo o no. Lo complicado viene acá es que si la fecha de la producción que ingrese en la hoja "Produccion", se hace después de la fecha de la hoja movimientos no me debe contar esa producción para efecto de la columna Saldos, si la fecha es igual o menor si se considera y ese saldo que queda disponible se puede ocupar para futuros ingresos de pedidos. Otra conducción es que las producciones siempre se deben asignar al pedido más antiguo de ese código salvo que la fecha de entrega ya haya pasado. La columna "Cumple" es básicamente para poder generar un KPI donde me indique cuales producciones se cumplieron con el plazo y cuales No. Espero me puedan ayudar ya que tengo la siguiente formula pero no sirve ya que me toma las unidades totales y no cumple con la restricción del horario. =SUMAR.SI(Produccion!A:A; $A2; Produccion!C:C) - SUMAR.SI.CONJUNTO($E$2:$E2; $A$2:$A2; A2)) Muchas gracias. Ejemplo..xlsx
    • Hola a ambos, Prueba con: =BYROW(G5:G6;LAMBDA(x;UNIRCADENAS(" - ";1;FILTRAR(E5:E10;B5:B10=x)))) Saludos,
    • Si tienes office 365 puedes usar algo como FILTER ó TEXTJOIN y si no tienes, entonces se puede jugar con las formulas, pero no te recomiendo mucho si son muchos datos, de todas maneras te dejo una fórmula y en vba, ya tu decides cual ocupar, vale Saludos BUSCAR.xlsm
    • Buenos días mis estimados Familia ayudaexcel,  Favor quisiera solicitar su gentil soporte con lo siguiente: Necesito una formula que al buscar encuentre el valor inicial de busqueda y dea todo los resultados encontrado en una celda como ejemplo. si este producto tienes 4 cantidades esta al hacer una formula de busqueda me dea el resultado de las 4 en una celda, dejo el adjunto a espera de su gran soporte.   BUSCAR.xlsx
    • Saludos Sr @Israel Cassales espero este bien quise verificar bien su solución y que las modificaciones que hice funcionarán adecuadamente y al respecto debo decir que su aporte es excelente ya que no solo me ayudo a resolver lo que necesitada sino que también me ayudo a solventar dos cosas más por lo cual estoy muy agradecido 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.