Esta apostila esta em ingles:
Utilizando o ADO - [Básico]
Esta dica mostra os passos básicos p/ se usar o ADO ao invés do DAO.
A. Abertura de Banco de Dados e de Tabelas
'1º - Criar uma Conexão
Dim Conexão As ADODB.Connection
Set Conexão = New ADODB.Connection
'2º - Criar uma Recordset
Dim Tabela As ADODB.Recordset
Set Tabela = New ADODB.Recordset
'3º - Criar uma Variável para SQL
Dim SQLString As String
'4º - Abrir o Banco de Dados (Definir o SGBD a ser Utilizado)
Conexão.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "Banco.MDB"
'5º - Definir o Valor Inicial para a Variável de SQL
SQLString = "Select * From Tabela"
'6º - Abrir o Recordset (Tabela)
Tabela.Open SQLString, Conexão, [CursorType], [LockType]
Explicações:
[CursorType]: Opcional. Um valor CursorTypeEnum que determina o tipo de cursor que o provedor deve usar ao abrir o Recordset. Pode ser uma das seguintes constantes:
Constante Descrição
adOpenForwardOnly Cursor somente progressivo. Padrão. Idêntico ao cursor estático exceto pelo fato de que é possível somente efetuar rolagem progressiva pelos registros. Isso melhora o desempenho em situações em que é necessária somente uma passagem pelo recordset.
adOpenKeyset Cursor do conjunto de teclas. Como um cursor dinâmico, exceto pelo fato de que não é possível consultar os registros que outros usuário adicionaram, embora os registros excluídos por outros usuários sejam inacessíveis a partir do recordset. As alterações nos dados feitas por outros usuários permanecem visíveis.
adOpenDynamic Cursor dinâmico. Adições, alterações e exclusões feitas por outros usuários são visíveis e todos os tipos de movimentos pelo recordset são permitidos, exceto indicadores, se o provedor não der suporte a eles.
adOpenStatic Cursor estático. Uma cópia estática de um recordset que pode ser usada para localizar dados ou gerar relatórios. Adições, alterações ou exclusões feitas por outros usuários não são visíveis.
[LockType]: Opcional. Um valor LockTypeEnum que determina qual tipo de bloqueio (simultaneidade) o provedor deve usar ao abrir o Recordset. Pode ser uma das seguintes constantes:
Constante Descrição
adLockReadOnly Padrão. Somente leitura - não é possível alterar os dados.
adLockPessimistic Bloqueio pessimista, registro por registro - o provedor faz o que for necessário para garantir o êxito da edição dos registros, em geral, bloqueando-os na fonte de dados imediatamente acima de uma edição.
adLockOptimistic Bloqueio otimista, registro por registro - o provedor usa o bloqueio otimista, bloqueando os registros somente quando o método Update for chamado.
adLockBatchOptimistic Atualizações em lotes otimistas - necessárias para o modo de atualização em lotes em oposição ao modo de atualização imediata.
B. Manipulação de Dados
A manipulação continua idem ao do DAO, com a diferença de não existir mais o metodo Edit.
Veja os exemplos:
Adicionando um Registro:
Tabela.AddNew
Tabela![Campo1] = Valor1
Tabela![Campo2] = Valor2
Tabela![Campo3] = Valor3
Tabela![Campo4] = Valor4
Tabela.Update
Alterando um Registro:
Tabela![Campo1] = NovoValor1
Tabela![Campo2] = NovoValor2
Tabela![Campo3] = NovoValor3
Tabela![Campo4] = NovoValor4
Tabela.Update
Excluindo um Registro:
Dim RES
RES = MsgBox("Deseja excluir o registro atual?", _
48 + vbYesNo, "Excluir???")
If RES = vbYes Then
Tabela.Delete
If Not Tabela.EOF Then
Tabela.MoveMin
'Sub que joga os valores dos campos da
'tabela p/ os TextBoxes
MostraDados
End If
End If
Movendo entre Registros:
Coloque 4 botões no Form, com Captions "|<", "<", ">" e ">|", todos com o nome cmdMove, formando assim um array de botões de indices 0 à 3.
No evento Click deste array de botões, coloque o seguinte código:
Private Sub cmdMove_Click(Index As Integer)
Select Case Index
Case 0
Tabela.MoveMin
Case 1
If Not Tabela.BOF Then Tabela.MovePrevious
If Tabela.BOF Then
Tabela.MoveMin
End If
Case 2
If Not Tabela.EOF Then Tabela.MoveNext
If Tabela.EOF Then
adoPrimaryRS.MoveMax
End If
Case 3
Tabela.MoveMax
End Select
End Sub