Ir para conteúdo

Arquivado

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

kauebranco

Erro muito estranho ...

Recommended Posts

eu to fazendo um form onde trago os registros do banco e os jogo nas text box ....embaixo coloquei akeles famosos 4 botões: PRIMEIRO ANTERIOR PROXIMO ULTIMOai coloco akele codigo ..RS.MOVEFIRST ..e por ai ..quando eustou no primeiro registro e aperto para ir pro ultimo usando o código ...

Private Sub cmdUltimo_click()RS.MoveLastCall MostraDadosEnd Sub

da um erro assim

Run time error '-2147217884':O conjunto de linhas não oferece suporte para busca regressiva.

algume saberia me explicar o que acontece ????referencie essa biblioteca ..

Microsoft ActiveX Data Objects 2.8 Library

isso significa como ja devem saber que estou usando o ADO ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

declarei ele num modulo assim

Public RS as new adodb.recordset

no form_load faço assim

CN.Open "Provider......."SQL = "SELECT * from tabela"rs.open SQL, CN

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu coloquei na hora de abrir o RECORDSET adOpenDYnamic assimRS.Open SQL, CN, adOpenDynamic ... e começou a pegarr ..brigado pela atenção ...flww

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara agora ta acontecendo o seguintequando eu aperto o botão incluir ponho no código dele assim RS.AddNewdai da esse erro

Run time error '-2147217911 (80040e09)':Cannot update. Database or object is read-only.

o que poderia ser?? .....ja olhei nas propriedades do banco e não está definido só para leitura..... todas as pastas que tem a ver com o banco estão com permissão total ...e deu esse erro ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!!

Este RS que você abriu foi somente de consulta (Select).

Para inserir registros sem problemas o legal é utilizar o INSERT INTO.

 

Ex:

(CN é a conexão né? o.O)

 

CN.Execute "INSERT INTO TABELA1 (Nome, Idade) Values ('Teste',22)"

 

e depois dá um Requery no recordset, ex:

RS.Requery

daí é só fazer a navegação.

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais eu num fiz INSERT nenhum ainda .. o código do botão INCLUIR está assim

Private Sub cmdIncluir_Click()Dim qtd As IntegerRS.AddNewSQL = "SELECT count(*) AS qtd FROM tabela_locadora"RS.Open SQL, CNqtd = RS!qtdtxtCodigo = qtd + 1Call LimpaTelaINSERTouUPDATE = "insert"Call DestravaTelaCall MostraGravarCancelarcmdIncluirFoto.Enabled = TrueEnd Sub

eu só vou tratar de dar o INSERT no botão GRAVAR quando eu verifico o valor da variavel INSERTouUPDATE pra saber se é uma alteração ou inclusão ....dai da erro nakele RS.AddNew ....vcs acham que não é necessário por esse RS.AddNew ????pq dai se o cara apertasse no botão CANCELAR colocaria RS.CancelUpdate.............

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom...

Eu utilizo o ADO, visando a trabalhar com dados não vinculados, quer dizer, sem associar os objetos a DataControl ou algo do tipo.

 

Naum sei se você está utilizando assim, pq pelo visto você chama uma rotina MostraDados e lá deve preencher os campos lendo o RS. (é?)

 

Então você não precisaria usar o .AddNew, em vez disso cria o botão Novo e Alterar.

E no gravar, sabendo qual das duas opções foi selecionada, daria o comando UPDATE ou INSERT no banco.

 

Ex: (Novo)

cn.execute "INSERT INTO TABELA (CODIGO,NOME) VALUES (1,'Nome do Usuário');"

RS.Requery

RS.MoveLast

(Atualizar)

cn.execute "UPDATE TABELA SET NOME = 'Novo Nome do Usuário' WHERE CODIGO = 1;"

RS.Requery

Assim, não precisa utilizar as .AddNew, .Update, .CancelUpdate.

Eu utilizo desta maneira, mas estuda algumas matérias sobre o ADO:

http://www.macoratti.net/ado.htm#adoexemp

http://www.macoratti.net/dao_ado.htm

 

Pode t ajudar tbm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

po cara brigado ...você me ajudou bastante ....brigadaum pela atenção ..deu uma força mesmo ..e sobre a rotina MOSTRADADOS é isso mesmo eu coloco em cada TEXTBOX da tela o valor do recordset correspondente ... eu me resolvi aqui ..rs vlw t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Run time error '-2147217911 (80040e09)':Cannot update. Database or object is read-only.

Este erro refere-se a permissão, verifique se possui acesso a pasta onde está o BD.

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.