Resumen Usar ADO para acceder a una base de datos Access 97/2000 local   (3 mensajes )

Holas Pep!

Creo que ya encontré la manera de que el VB genere correctamente el instalador.
Las pruebas las hice con una aplicación simple (Lee y agrega registros de una base Access 2000 por medio del provider Jet 4.0), usando Visual Basic 6, Enterprise Edition (con VS SP 2 instalado), y habiendo instalado los Data Access Components 2.1

Inicialmente el Package and Deplyment Wizard me dijo que iba a incluir el archivo MDAC_TYP.EXE del directorio redist, pero encontré que pese haber instalado MDAC 2.1, ese archivo era del MDAC 2.0. Así que sobrescribí el archivo del directorio redist con el que bajé de internet.

Aparentemente (ya instalé el programa en un par de PCs) todo salió bien. Las PCs "víctimas" tienen Windows 98.
El setup instala los Data Access Components mientras instala tu aplicación.
No sé si se fija en el asunto del DCOM 95 (se requiere DCOM 95 en Win95 para que los MDAC funcionen).

Salu2!

Pablo Dotro
Sistemas
Establecimiento Gráfico WECALO S.A.
www.wecalo.com.ar/sistemas
sistemas@wecalo.com.ar

Hola Pablo,
Mira como lo hacemos nosotros

En un "modulo.bas" tenemos la siguiente definición:
Global objConn As ADODB.Connection

y el siguiente procedimiento:
Sub Abrir_BD(Permisos As Integer)
    Dim tmp$

    tmp = UNIDAD & DIRTRABAJO & DIRAPLICACION & BASEDATOS & Format$(EMPRESA, "00") & ".mdb"

    If objConn.State = adStateOpen Then objConn.Close
    Set objConn = New ADODB.Connection
    objConn.Provider = "Microsoft.jet.OLEDB.3.51"
    objConn.Properties("Jet OLEDB:System database") = UNIDAD & "System.mdw"
    objConn.ConnectionString = "Data Source=" & tmp & "; User Id=tuUsuario; Password=tuPassword"
    objConn.Mode = Permisos
    objConn.Open
End Sub

Despues puedes utilizar esto para abrir una tabla:
Incluyes la siguiente definicien en el apartado "General" de un formulario:
Dim TblClientes As ADODB.Recordset

y despues incluyes los siguiente el el "activate" del formulario:
Private Sub Form_Activate()
    If Estado > 0 Then Exit Sub
    Estado = 1
    'Abrir las tablas
    Set TblClientes = New ADODB.Recordset
    TblClientes.CacheSize = 1
    TblClientes.CursorLocation = adUseServer
    TblClientes.Open "Clientes", objConn, adOpenKeyset, adLockOptimistic,
adCmdTable
End Sub

Puedes ir a la ayuda para ver las posibilidades del "método Open"


Saludos
Jose Luis Palau
SACHA LONDON, S.L.
03600-ELDA (Alicante)
ESPAÑA

Hola Pep!

Al fin lo solucioné, luego de buscar y buscar por todos lados, encontré el siguiente documento:

http://www.microsoft.com/data/ado/adotechinfo/dao2ado.htm

Donde describe cómo se usa. Acá va un pequeño ejemplo:

en declarations:
dim cn as adodb.connection
dim rs as adodb.recordset

en el proc de apertura, p. ejemplo un command:
private sub Command1_click

cn.provider= "Microsoft.Jet.OLEDB.4.0"
cn.connectionstring= "c:\mis documento\db1.mdb" 'path y archivo de la base
de datos
cn.open

rs.open "SELECT * FROM [Table] ORDER BY [RegID]", cn, adOpenKeyset,
adLockOptimistic 'en la cadena SQL puede ir cualquier sentencia de Jet SQL válida que devuelva un recordset.

end sub

Luego usas addnew, y update como con los recordset de DAO para agregar registros.

Todavía no probé demasiado distribuir la aplicación, pero aparentemente, el generador de instaladores del VB incluye las DLLs y controles necesarios automáticamente.

Pablo Dotro
Sistemas
Establecimiento Gráfico WECALO S.A.
www.wecalo.com.ar/sistemas
sistemas@wecalo.com.ar



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com