Abrindo Base de dados.

Veremos como abrir e fechar uma base de dados padrão 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 código usando a DAO fica implícito 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 código 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 método Open e não como uma propriedade do objeto Connection. Na ADO você pode definir as propriedades do objeto Connection também como fazendo parte de uma string de conexão.

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 nível de usuário.

Abrindo uma base de dados que usa o arquivo de informação 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 conexão - connection - Jet OLEDB:System database, especifica o arquivo de segurança do sistema.
Observe que a propriedade Provider é definida como uma propriedade do objeto Connection e não como parte de um argumento da ConnectionString para o método Open.
O motivo é que antes de você referenciar propriedades para o provedor específico de uma coleção Properties do objeto Connection é necessário indicar qual provedor você esta usando. Se omitirmos a primeira linha de código , ocorrerá o erro 3265 (adErrItemNotFound).
A linha que define o arquivo de segurança 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