Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucke SkyWalker

Uso do ADODB co DAO

Recommended Posts

Caros amigos do forum... 22/04/2008

 

Eu voltei, demorei um pouco para postar devido ao tempo corrido do dia a dia.

 

Meus problemas com o sistema que estou escrevendo ainda continuam e eu voltei a mexer nele esta semana. O site do Macorati ajudou muito, porém, o erro agora está aqui nesta linha.

 

Private Sub Form_Load()

 

banco.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\HMTR\Desktop\SESMT\hmtr\hmtr.mdb;Persist Security Info=False"

 

tabela.Open "hmtr", banco, adOpenForwardOnly, adLockReadOnly, adcmstoredproc

 

banco.CursorLocation = adUseClient

 

Set tabela = New ADODB.Recordset

If tabela.EOF And tabela.BOF Then "O erro aparece nesta linha, mas acho que falta alguma coisa antes dela"

(O erro apresentado é o Run-time error "3704" Operação não permitida quando o objeto está fechado)

 

Labcod.Caption = 1

 

Else

tabela.MoveNext

Labcod.Caption = tabela!ficha + 1

End If

tabela.AddNew

banco.Close

alterar.Enabled = False

conalteracao.Enabled = False

gravar.Enabled = False

Command3.Enabled = False

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala !!!

Realmente você está misturando o modelo ADO e DAO...É só reparar nas declarações.

qto a formatar uma data...

Pq não formata assim:"format(txtdata.text,"dd/mm/yyyy")"

Abracao....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exclui aquele seu outro tópico, tava igual a esse, era só perguntar aqui.

 

Se puderem me ajudar colquem uma forma de escrever esses códigos em ADODB.

 

A questão da data é que você ta colocando sem as '/' né?

O VB vai tratar como um inteiro e tentar jogar em data. Dai vai da overflow.

Faz uma função pra pegar a sua data '03032008' e transformar em '03/03/2008', Se você não tem nenhuma noções de como fazer procure sobre a função Mid.

 

Eu não entendi bem o que você quer no BD.

Veja se esse link te ajuda: http://www.macoratti.net/dao_ado.htm

Caso não pode voltar aki, se der certo volta aqui tambem e avisa :D

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exclui aquele seu outro tópico, tava igual a esse, era só perguntar aqui.

 

Se puderem me ajudar colquem uma forma de escrever esses códigos em ADODB.

 

A questão da data é que você ta colocando sem as '/' né?

O VB vai tratar como um inteiro e tentar jogar em data. Dai vai da overflow.

Faz uma função pra pegar a sua data '03032008' e transformar em '03/03/2008', Se você não tem nenhuma noções de como fazer procure sobre a função Mid.

 

Eu não entendi bem o que você quer no BD.

Veja se esse link te ajuda: http://www.macoratti.net/dao_ado.htm

Caso não pode voltar aki, se der certo volta aqui tambem e avisa :D

 

Flw

 

Não dá para colocar o modelo do campo data neste post, não é que eu esteja com preguiça de procurar mas não encontrei nada em lugar nenhum.

Quanto ao link do Macoratti eu dei uma olhada ainda não mexi com nada mas acho que vai funcionar. Qualquer coisa eu retorno a ligação OK.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Somente hoje vi esse seu tópico, me desculpe, mas vejo que já está sendo bem ajudado ai, que bom.

 

Mas realmente, você está misturando DAO com ADO, espero que o link que o Scorpio te passou te resolva.

 

Quanto a função que ele mencionou, sobre mid, é o seguinte: o mid serve para você pegar partes de uma string, indicando a partir de onde quer que comece a pegar os dados e quantas casas irá pegar. Um exemplo abaixo:

 

 

mid("abacaxi",2,3) = "bac", ou seja, ele irá pegar a partir da segunda casa, até a terceira casa seguinte.

 

mid("banana",3,4) = "nana"

 

Então quando você tem '03032008', você sabe que as duas primeiras casas refere-se ao dia, as duas próximas ao mês e as quatro últimas ao ano.

 

A partir dai consegue passar a data ao banco da forma como deve ser passada:

 

text1.text = "03032008"

text1.text = mid(text1.text,1,2) & "/" & mid(text1.text,3,2) & "/" & mid(text1.text,5,4)

resultado: text1.text = "03/03/2008"

 

Depois que olhar o link do macoratti, diz ai se conseguiu se achar.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezados amigos se houver algum erro em minha postagem me desculpem pelo mal jeito, mas peço ajuda mais uma vez.

 

preciso resolver o problema do ADO com DAO criando um rotina de inclusão automatica do numero do registro como segue abaixo.

 

Private Sub Form_Load()
banco.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\hmtr\hmtr.mdb;Persist Security Info=False"
tabela.Open "hmtr", banco, adOpenForwardOnly, adLockReadOnly, adcmstoredproc
3 - tabela.CursorLocation = adUseClient
tabela.Open "select * from cutomers", banco, adOpenKeyset, adLockOptimistic, adCmdText
Debug.Print tabela.AbsolutePosition
If tabela.EOF And tabela.BOF Then
Labcod.Caption = 1
Else
tabela.MoveLast
Labcod.Caption = tabela!ficha + 1
End If
tabela.AddNew
alterar.Enabled = False
conalteracao.Enabled = False
gravar.Enabled = False
Command3.Enabled = False
End Sub
O erro

Operação não permitida quando o objeto está aberto.

 

19/03/2008

Amigo Scorpio olhando no código acima na linha 3 eu ja havia colocado a sua sugestão porem o erro continua o mesmo. Tem alguma outra idéia.

 

Linha 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque isso

tabela.CursorLocation = adUseClient
antes de abrir a tabela.

 

Flw

 

Ata-

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos do forum... 22/04/2008

 

Eu voltei, demorei um pouco para postar devido ao tempo corrido do dia a dia.

 

Meus problemas com o sistema que estou escrevendo ainda continuam e eu voltei a mexer nele esta semana. O site do Macorati ajudou muito, porém, o erro agora está aqui nesta linha.

 

Private Sub Form_Load()

 

banco.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\HMTR\Desktop\SESMT\hmtr\hmtr.mdb;Persist Security Info=False"

 

tabela.Open "hmtr", banco, adOpenForwardOnly, adLockReadOnly, adcmstoredproc

 

banco.CursorLocation = adUseClient

 

Set tabela = New ADODB.Recordset

If tabela.EOF And tabela.BOF Then "O erro aparece nesta linha, mas acho que falta alguma coisa antes dela"

(O erro apresentado é o Run-time error "3704" Operação não permitida quando o objeto está fechado)

 

Labcod.Caption = 1

 

Else

tabela.MoveNext

Labcod.Caption = tabela!ficha + 1

End If

tabela.AddNew

banco.Close

alterar.Enabled = False

conalteracao.Enabled = False

gravar.Enabled = False

Command3.Enabled = False

End Sub

 

25 de Junho de 2008

 

Prezados Amigos do Forum eu não postei mais porque não tive mais tempo para mexer no sistema que estava escrevendo mas agora peço-lhes que me ajudem pelo amor de Deus olhando o código acima e o erro apresentado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Private Sub Form_Load()

banco.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\HMTR\Desktop\SESMT\hmtr\hmtr.mdb;Persist Security Info=False"
Set tabela = New ADODB.Recordset
tabela.Open "hmtr", banco, adOpenForwardOnly, adLockReadOnly, adcmstoredproc

banco.CursorLocation = adUseClient


If tabela.EOF And tabela.BOF Then "O erro aparece nesta linha, mas acho que falta alguma coisa antes dela"
(O erro apresentado é o Run-time error "3704" Operação não permitida quando o objeto está fechado)

Labcod.Caption = 1

Else
tabela.MoveNext
Labcod.Caption = tabela!ficha + 1
End If
tabela.AddNew
banco.Close
alterar.Enabled = False
conalteracao.Enabled = False
gravar.Enabled = False
Command3.Enabled = False
End Sub

Tente isso.

Você tava 'recriando' o objeto tabela depois de ter aberto ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom você mandou abrir o banco. resta saber se você chamou a função de conexão com o banco no form load do seu formulario.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.