DUVIDA DE INICIANTE EM ADO
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
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
tenta setar a recordset
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
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?
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 ?
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 ?
O erro ocorre porque ao terminar de carregar o form principal você manda fechar e destruir a instância do objeto recordset, nessas linhas:
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.
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
amigos eu tentei fazer isso mas não deu certo, vou postar o arquivo zip, alguem pode dar uma olhada Agradeço
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
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?
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