CLASSE QUE CARREGA DATAGRID

USUARIO.EXCLUIDOS 09/07/2005 11:37:06
#93082
Galera estou tentando carregar um datagrid com esse modulo de classe mas esta dando o seguinte erro:
Run-time error '7004'
The rowset is not bookmarkable.

O que esta acontecendo?

************************************************************************************************************
'Modulo de Classe
Option Explicit
Private cnn As ADODB.Connection
Private rsClientes As ADODB.Recordset

Private Sub Class_Initialize()
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:    este\Clientes.mdb;Persist Security Info=False"
Set rsClientes = New ADODB.Recordset

With rsClientes
.Source = "Select * from Clientes"
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:    este\Clientes.mdb;Persist Security Info=False"
.Open
End With

DataMembers.Add "Clientes"
End Sub

Private Sub Class_GetDataMember(DataMember As String, Data As Object)
Select Case DataMember
Case ""
Set Data = Nothing
Case "Clientes"
Set Data = rsClientes
Case Else
MsgBox "Erro de dados", vbCritical
End Select
End Sub
************************************************************************************************************

************************************************************************************************************
'Formulario
Option Explicit
Private clientesDados As clsClientes

Private Sub Form_Load()
Set clientesDados = New clsClientes
Set dg1.DataSource = clientesDados
dg1.DataMember = "Clientes"
End Sub

************************************************************************************************************
Fiz referencia as bibliotecas: Microsoft Activex...2.5 e Microsoft Data Binding Collection (VB6)
Auterei tb a propriedade DataSourceBehavior para 1- vbDataSource
USUARIO.EXCLUIDOS 09/07/2005 12:39:03
#93094
para carregar o datagrid basta vc passar o recordset para a propriedade DataSource e mais nada.

Set DataGrid.DataSource = recordset.

Experimente fazer um teste, faça um select qualquer, pegue o recordset retornado e adicione no datagrid é pra funcionar.

- Outra coisa! pode ser que a sua classe não esteja retornando um volume de dados do tipo recordset.

+ uma coisa vc não precisa alterar nenhuma propriedade do datagrid.
USUARIO.EXCLUIDOS 10/07/2005 10:40:19
#93196
estava tentando montar essa rotina com o exemplo do macoratti: http://www.macoratti.net/vb_cfd1.htm

mas não entendo pq esse erro, o codigo no exemplo esta todo pronto, pq não funciona na minha maquina?
WEBMASTER 10/07/2005 20:20:54
#93233
Resposta escolhida
Na sua máquina não sei porque não funciona, talvez possa ser a versão do vb ou do sistema operacional ja que no win98 roda o que não roda em xp, tente o metodo do recordset pq é bem mais simples e com certeza dará certo
Tópico encerrado , respostas não são mais permitidas