CONECTAR AUTO IT CON BASE DE DATOS ACCES

Antes de ir al Soporte consultame aquí, gracias
Responder
arzo
Mensajes: 5
Registrado: 31 Ago 2013, 04:04

CONECTAR AUTO IT CON BASE DE DATOS ACCES

Mensaje por arzo »

Que tal amigos mi siguiente aporte no es de mi autoria, lo vi en una web y me parecio interesante busque en este foro y no vi nada parecido, y como considero seria muy util pues decidi a postearlo al final dejo los creditos correspondientes:

#########################################################################################
AutoIt: Conectarse a bases de datos de acceso: mdb y archivos accdb
Alguna vez se preguntó cómo conectarse a la AutoIt a una base de datos de MS Access? AutoIt, para aquellos que no saben, es un programa para automatizar las pulsaciones de teclado y movimientos del ratón. Esto es en referencia a una entrada de blog sobre un problema que tenía para la conexión al acceso de AutoIt. Hay dos diferentes tipos de archivos en MS Access 2007. Access 2003, 2000 y versión más antigua que la mayoría utiliza un mdb. Tipo de archivo y que, Access 2007 puede utilizar. Accdb extensión de archivo / tipo. Te voy a mostrar algo de código de base que trabajan con ambas versiones. Para este ejemplo, sólo voy a recuperar un registro y un campo uno.

Primero vamos a crear primero algunas variables que contendrá el nombre del archivo de base de datos (ya sea. Mdb o. Accdb), el nombre de tabla y la consulta a ejecutar:

$ dbname = "C: UsersvkDocumentsdbMarketingarticleSubmissionsTutorialRef.mdb"
tblname $ = "artículos"
$ consulta = "SELECT * FROM" & & $ tblname "DONDE articleID = 4"

El y es simplemente una concatenación de las cuerdas.

Vamos a establecer la variable para el campo que queremos recuperar de la base de datos.

título local $

Muy sencillo hasta el momento, ¿no?

A continuación, cree la conexión con el ADODB:

ADOcon $ = ObjCreate ("ADODB.Connection")

A continuación, establezca el proveedor. Hay un proveedor diferente para cada extensión de archivo. Un archivo. Mdb tendrá su propio proveedor y un archivo. Accdb tendrá otro.

Esta es la proveedora de un mdb. Archivo:

adoCon.Open $ ("Driver = (Microsoft Access Driver (*. mdb)); DBQ =" & $ dbname)

Aquí está el Provider para. Accdb archivo:

adoCon.Open $ ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & $ dbname)

Ahora vamos a crear el objeto Recordset, establezca las opciones necesarias y luego ejecutar la consulta:

adoRs $ = ObjCreate ("ADODB.Recordset")
adoRs.CursorType $ = 1
adoRs.LockType $ = 3
$ consulta adoRs.Open ($, $ ADOcon)

Algunas notas sobre las propiedades CursorType y LockType. Que necesitaba para establecer estas con el fin de recuperar el valor del campo especificado.

Ajuste el tipo de cursor a un valor de '1 'significa adOpenKeyset ". CursorType se define en el MSDN como: "Establece o devuelve un valor CursorTypeEnum. El valor por defecto es 'adOpenForwardOnly. Utilice la propiedad CursorType para especificar el tipo de cursor que se debe utilizar al abrir el objeto Recordset. "El adOpenKeyset se define en el sitio MSDN de Microsoft como:" Utiliza un cursor de conjunto de claves. Al igual que un cursor dinámico, excepto que usted no puede ver los registros que otros usuarios añadir, aunque los registros que eliminar a otros usuarios son inaccesibles desde el conjunto de registros. cambios de datos por otros usuarios todavía son visibles ".

Por extraño que parezca, cuando traté de establecer el tipo de cursor a un valor de '2 'que significa' adOpenDynamic 'AutoIt no pudo recuperar el valor del campo. Era blanco, pero se produjo ningún error. "AdOpenDynamic 'se define como:" Utiliza un cursor dinámico. Las adiciones, cambios y eliminaciones por otros usuarios son visibles, y todo tipo de movimiento a través del conjunto de registros se les permite, a excepción de los marcadores, si el proveedor no los soporta ".

LockType se define como "Indica el tipo de bloqueos colocados en los registros durante la edición. Establece o devuelve un valor LockTypeEnum. El valor predeterminado es adLockReadOnly. "Con su valor establecido en" 3 "que indica" adLockOptimistic '. "AdLockOptimistic 'es" Indica bloqueo optimista, registro por registro. El proveedor usa bloqueo optimista, bloqueando registros sólo cuando se llama al método Update ", que es bueno así que lo dejamos en ese valor.

Entonces sólo tiene que colocar el resultado en la variable $ titulo que declaramos anteriormente. Puede utilizar cualquiera de las dos líneas siguientes. El primero es el de recuperar el valor por el nombre del campo y la segunda es recuperar el orden numérico del campo. En esencia, es el número de la columna. números de la columna comienza en "0" (es decir, cero) y no "1" (es decir, uno). Así que si quieres agarrar el valor de la tercera columna, entonces usted podría utilizar el valor "2".:

adoRs.Fields $ titulo = $ ("title"). valor

adoRs.Fields $ titulo = $ (2). valor

Cerrar la conexión a menos que tenga un motivo concreto para salir de su conexión abierta:

adoCon.Close $

A continuación, probar los resultados con los MsgBox ():

MsgBox (0, "pruebas", $ titulo)

Así que aquí está el código completo:

título local $
ADOcon $ = ObjCreate ("ADODB.Connection")
; AdoCon.Open $ ("Driver = (Microsoft Access Driver (*. mdb)); DBQ =" & $ dbname); utilizar esta línea si el uso de MS Access 2003 y menor
adoCon.Open $ ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & $ dbname); utilizar esta línea si el uso de MS Access 2007 y utilizar el accdb extensión de archivo.
adoRs $ = ObjCreate ("ADODB.Recordset")
adoRs.CursorType $ = 1
adoRs.LockType $ = 3
$ consulta adoRs.Open ($, $ ADOcon)
adoRs.Fields $ titulo = $ ("title"). valor, valor Recuperar a un campo de nombre
; $ Titulo = $ adoRs.Fields (2). Valor, valor recuperar por la columna número
adoCon.Close $
MsgBox (0, "pruebas", $ titulo)

En este artículo mostramos cómo conectarse a una base de datos de Access 2007 o 2003 con AutoIt. Este artículo trata sobre cómo recuperar un registro o una fila y una única zona. En un próximo artículo, vamos a describir cómo recuperar varios registros en una matriz.

#####################################################################################################
Info extraida de:
http://www.infosum.net/es/programming/a ... accdb.html

Espero les sea de ayuda
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2086
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: CONECTAR AUTO IT CON BASE DE DATOS ACCES

Mensaje por BasicOs »

Hola Gracias por el Aporte para conectar access.

Aquí un enlace con la busqueda que tambien había otros tópicos sobre el tema: LINK

También es recomendable y más potente el sqlite en el estilo de access de fichero local, :smt020 :smt020
o bien bases de datos remotas como mysql,

Salu22:)
qpongo
Hacker del Foro
Mensajes: 110
Registrado: 10 Abr 2013, 15:53
Ubicación: Madrid

Re: CONECTAR AUTO IT CON BASE DE DATOS ACCES

Mensaje por qpongo »

El tema, manejar Access con Autoit me interesa mucho.

No sé si he soñado (uff a veces creo que confundo los sueños con la realidad) que había una UDF parecida a la de Excel ...
¿sabéis algo del tema?

Muchas gracias...

qpongo
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: CONECTAR AUTO IT CON BASE DE DATOS ACCES

Mensaje por Dany »

  • ............................................Imagen
    ......................................Imagen
qpongo
Hacker del Foro
Mensajes: 110
Registrado: 10 Abr 2013, 15:53
Ubicación: Madrid

Re: CONECTAR AUTO IT CON BASE DE DATOS ACCES

Mensaje por qpongo »

Dany escribió:aquí hay una simple udf.

http://www.autoitscript.com/forum/topic ... ntry747961

saludos

Muchas gracias Dani
Responder