Abrindo Base de dados.

------------------------------------------------------------------------

Veremos como abrir e fechar uma base de dados padro Microsoft JET ( access
) , usaremos como exemplo a Biblio.mdb.

Abrindo a base de dados em modo compartilhado

DAO

Dim db as DAO.Database

Dim db = DBEngine.OpenDatabase ("c:\Biblio.mdb" )

............... fechando a base

db.close

ADO

Dim cnn As new ADODB.Connection

cnn.Open "Provider = Microsoft.Jet.OLEDB.3.51;Data Source =
C:\Biblio.mdb;"

..................fechando a base

cnn.Close
A novidade aqui fica por conta da string Connection , ela neste exemplo
tem duas partes: o descritor Provider que indica qual provedor OLE DB
estamos usando e o descritor Source que indica qual base de dados abrir.

No cdigo usando a DAO fica implcito que a base de dados  uma base de
dados Microsoft JET , mas com a ADO temos que especificar que queremos
abrir uma base de dados Microsoft Jet.

Abrindo a base de dados em modo exclusivo e somente para leitura

DAO

Dim db as DAO.Database

Dim db = DBEngine.OpenDatabase ("c:\Biblio.mdb , False , True)

............... fechando a base

db.close

ADO

Dim cnn As new ADODB.Connection

cnn.Mode = adModeRead

cnn.Open "Provider = Microsoft.Jet.OLEDB.3.51;Data Source =
C:\Biblio.mdb;"

..................fechando a base

cnn.Close
Aqui a propriedade Mode do objeto Connection foi definida usando a
constante adModeRead como somente para leitura.

Poderiamos ter escrito o cdigo em uma nica linha :

Dim cnn As new ADODB.Connection

    cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _

        "Data Source=C:\nwind.mdb;Mode=" & adModeRead

..................fechando a base

cnn.Close
Aqui a propriedade Mode foi escrita como parte da string Connection para o
mtodo Open e no como uma propriedade do objeto Connection.

Na ADO voc pode definir as propriedades do objeto Connection tambm como
fazendo parte de uma string de conexo.

Abrindo a base de dados protegida com uma senha

DAO

Dim db as DAO.Database

Dim db = DBEngine.OpenDatabase ("c:\Biblio.mdb , False , False, _

";pwd = senha ")

............... fechando a base

db.close

ADO

Dim cnn As new ADODB.Connection

    cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _

        "Data Source=C:\biblio.mdb;Jet OLEDB:Database Password=password;"

..................fechando a base

cnn.Close
A propriedade Jet OLEDB:Database Password define a senha da base de dados

Abrindo a base de dados protegida com uma senha a nvel de usurio.

Abrindo uma base de dados que usa o arquivo de informao de grupo de
trabalho : sysdb.mdw.

DAO

     Dim wks As DAO.Workspace

     Dim db As DAO.Database

     DBEngine.SystemDB = "c:\sysdb.mdw"

     Set wks = DBEngine.CreateWorkspace("", "Admin", "password")

     Set db = wks.OpenDatabase("c:\Biblio.mdb")

ADO

     Dim cnn  As New ADODB.Connection

     cnn.Provider = "Microsoft.Jet.OLEDB.3.51"

     cnn.Properties("Jet OLEDB:System database") = "c:\sysdb.mdw"

     cnn.Open "Data Source=c:\nwind.mdb;User Id=Admin;Password=password;"
 Neste exemplo a propriedade da conexo - connection - Jet OLEDB:System
 database, especifica o arquivo de segurana do sistema.
 Observe que a propriedade Provider  definida como uma propriedade do
 objeto Connection e no como parte de um argumento da ConnectionString
 para o mtodo Open.
 O motivo  que antes de voc referenciar propriedades para o provedor
 especfico de uma coleo Properties do objeto Connection  necessrio
 indicar qual provedor voc esta usando. Se omitirmos a primeira linha de
 cdigo , ocorrer o erro 3265 (adErrItemNotFound).
 A linha que define o arquivo de segurana pode ser omitida se voc usar o
 arquivo atual do Microsoft Jet WorkGroup definido no arquivo de registro
 do windows, na chave SystemDB.

Acessando base de dados externas

Vejamos como acessar uma planilha do Excel (c:\teste.xls) .. Podemos
acessar praticamente qualquer fonte de dados usando os drivers ISAM.

DAO

    Dim db As DAO.Database

    Set db = DBEngine.OpenDatabase("C:\Teste.xls", False, False, "Excel
8.0;")

...................

    db.Close

ADO

    Dim cnn As New ADODB.Connection

    cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51;" & _

        "Data Source=C:\Sales.xls;Extended Properties=Excel 8.0;"

...........................

    cnn.Close
O tipo da fonte de dados  especificada na propriedade Extended Properties
do objeto Connection .
Vejamos a seguir uma tabela com as strings para especificar a base externa
ISAM que se deseja abrir:
 Database           String

 dBASE III          dBASE III;
 dBASE IV           dBASE IV;
 dBASE 5            dBASE 5.0;
 Paradox 3.x        Paradox 3.x;
 Paradox 4.x        Paradox 4.x;
 Paradox 5.x        Paradox 5.x;
 Excel 3.0          Excel 3.0;
 Excel 4.0          Excel 4.0;
 Excel 5.0/Excel 95 Excel 5.0;
 Excel 97           Excel 97;
 Excel 2000         Excel 8.0;
 HTML Import        HTML Import;
 HTML Export        HTML Export;
 Text               Text;
 ODBC               ODBC;
                    DATABASE=database;
                    UID=user;
                    PWD=password;
                    DSN=datasourcename;
------------------------------------------------------------------------

                                  retorna

[Image]
