DUVIDA DE INICIANTE EM ADO

GESSINGER 11/03/2010 23:53:35
#336693
tenho 2 forms
Form1 = tela inicial e frmCadastro
no form1 tenho um botão chamado [Ô]cmdCadastrar[Ô] q vai chamar o frmCadastro com o
seguinte codigo: frmCadastrar.show

quando clico nele(cmdCadastrar), da esse erro - Operação não permitida quando o objeto esta aberto
como vou fechar o recordset, se ja fechei no form frmCadastrar?

olha meu codigo abaixo

Dim conex As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub cmdGravar_Click()
rs.AddNew
rs!Afazer = Trim(txtAfazer.Text)
rs!Data = txtData.Text
rs!Obs = txtObs.Text


rs.Update


MsgBox [Ô]Registro incluido com sucesso...[Ô], vbInformation, [Ô]Aviso[Ô]
cmdNovo.Visible = True

End Sub

Private Sub cmdNovo_Click()

txtAfazer.Text = [Ô][Ô]
txtData.Text = [Ô][Ô]
txtObs.Text = [Ô][Ô]

cmdNovo.Visible = False
cmdGravar.Visible = True
End Sub

Private Sub Form_Load()
conex.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Wilton\Desktop\Tarefas\Banco.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]Select * from Tab order by Afazer[Ô], conex, adOpenKeyset, adLockOptimistic

txtAfazer.Text = rs!Afazer
txtData.Text = rs!Data
txtObs.Text = rs!Obs

rs.Close
Set rs = Nothing [ô] aqui fechei

End Sub

MOREIRA 12/03/2010 00:26:07
#336694
tenta setar a recordset
SMANUT 12/03/2010 07:28:58
#336702
Não sei se entendi direito mais o erro não tem nada haver com o recordset, pois vc esta querendo abrir o form, e se for isso de que modo esta fechando ele, pode ter ficado aberto. Mais de qualquer forma podia explicar melhor para poder te ajudar
SINKERTEC 12/03/2010 10:01:21
#336735

Cara

N entendi..o pq disso?

Private Sub Form_Load()
conex.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Wilton\Desktop\Tarefas\Banco.mdb;Persist Security Info=False[Ô]
rs.Open [Ô]Select * from Tab order by Afazer[Ô], conex, adOpenKeyset, adLockOptimistic

txtAfazer.Text = rs!Afazer
txtData.Text = rs!Data
txtObs.Text = rs!Obs

rs.Close
Set rs = Nothing [ô]

explica?
GESSINGER 12/03/2010 17:09:03
#336827
cara como o proprio titulo do topico diz [Ô] DUVIDA DE INICIANTE EM ADO[Ô].
eu aprendi assim
eu coloco isso :

txtAfazer.Text = rs!Afazer
txtData.Text = rs!Data
txtObs.Text = rs!Obs
para q seja carrgadas as txt, entendeu ?
eu vi isso numa materio do Macoratti.

se estiver errado pode me ajudar ?
FFCOUTO 12/03/2010 21:47:38
#336851
O erro ocorre porque ao terminar de carregar o form principal você manda fechar e destruir a instância do objeto recordset, nessas linhas:

rs.Close
Set rs = Nothing [ô] aqui fechei


Comente ou apague estas linhas que o problemas se resolverá.

Porém você deve fechar o recordset ao sair, então passe essas duas linhas para o Form_QueryUnload, ficando assim.

Private Sub Form_QueryUnload(UnloadMode As Integer)
[ô]Verifica se o recordset está fechado, se sim não precisa fechar.
If rs.State <> 0 Then rs.Close
Set rs = Nothing [ô]Destrói a instância do objeto
End Sub


GESSINGER 12/03/2010 23:46:31
#336857
amigos eu tentei fazer isso mas não deu certo, vou postar o arquivo zip, alguem pode dar uma olhada Agradeço
GESSINGER 12/03/2010 23:55:35
#336858
peço por favor q alguem faça isso pois eu to acostumado a programar usanso Adodc1 e to começando no ado agora valew
ROBIU 13/03/2010 08:31:06
#336866
Resposta escolhida
Pronto Acertei vários pontos do seu projeto, mas há muito a fazer, ainda.
Criei um módulo para colocar o código da conexão. A conexão precisa ficar em um módulo para ser usada por todos os forms do projeto. Esse módulo serve para qualquer projeto, pastando trocar o nome do banco.
Outro ponto corrigido é o fato de apontar o caminho fixo do Banco. Se você mover ou renomear a pasta do projeto de lugar, vai dá erro pois não vai encontrar o banco. Isso tambem foi acertado no módulo.
adicionei os códigos completos do butões próximo e anterior, adicionei os butões primeiro e último e incluir uma label para verificar a posição e a quantidade de registros.
Também inclui a codificação completa do butão excluir. (Verificar se existe registro, Confirmar exclusão, etc)

Só uma curiosidade: Por que fundo Rosa?
Tópico encerrado , respostas não são mais permitidas