Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
Junior Ari

Erro ao ler campo memo no access

Question

será que é um bug ou é puramente bisonhice minha...

fiz um cadastro simples no Visual Basic 6 com banco de dados access 2003, e tem um campo memo, porem ele não é obrigatorio...

quando eu executo o programa com F8, ao tentar consultar o registro e quando ele lê esse campo (memorando) às vezes ele lê... e às vezes ele considera como Null, então depois de muita pesquisa consegui resolver assim:

antes era:

txtObs = rs!observacao --> esse dava o erro <Invalid Use of Null>

depois eu mudei para:

txtObs = rs!observacao & ""

é ae que acontece o bug...

tentei fazer no passo a passo (CTRL + F8) e vendo os campos um por um (com o F8) notei o seguinte: quando está lendo os outros campos ele vê normalmente, quando ponho o mouse a primeira vez em cima do campo correspondente ao campo memo a "caixinha amarela" (é assim que eu a chamo... rsrs :rolleyes:) pega normal o valor do campo dentro do banco de dados, porem ao passar para ler outro registro, com F8, e tentar ver de novo o campo memo a caixinha amarela dá o valor do campo como Null e, obviamente, não preenche meu textbox, mesmo sabendo que o campo não está vazio...

o interessante é o seguinte: quando tento cadastrar uma pessoa, no formulario de cadastro, que já existe no banco de dados ele le todos os campos e coloca os valores do cadastro dentro de cada textbox correspondente, e dessa forma ele preenche meu texbox com o campo memo. Nesse formulário ele preenche normal, porém tem outro formulario para consulta que quando eu consulto os clientes cadastrados e ao preencher os textbox com os valores do banco ele "nunca" preenche meu textbox com o campo memo correspondente...

tentei explicar o maximo possivel o problema... se alguém souber como corrigir esse problema.... vou ficar devendo o resto da vida... hehe :huh:

se esse erro não acontece com voces postem ae pelamordedeus.. tow desemperado.... :(

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Sinceramente dei uma travadinha ao ler, não entendi tão bem.. Mas vamos lá garoto!

Quando você está chamando os dados do campo 'memo' para os campos de texto do VB, ele irá tentar chamar também os dados que forem NULL (sem dados).

Você pode fazer um "IF" antes de chamar o rs!observacao ex:

If !observacao = "" Then

Else

txtObs.Text = !observacao

End If

Mais sinceramente, eu não entendi sua pergunta... Ai em cima, só dei uma rapidinha que talvez lhe dê uma idéia de como arrumar seu erro. Caso contrário da uma explicada melhor..

* Mas tipo, não da bug não.. Ele tem que ler sempre, nulo ou não. Seu Select está certinho? Faz uns testes separados só com este campo memo em outro projeto do vb..

Abração

Edited by Pinguimbera

Share this post


Link to post
Share on other sites
  • 0
Sinceramente dei uma travadinha ao ler, não entendi tão bem.. Mas vamos lá garoto!

Quando você está chamando os dados do campo 'memo' para os campos de texto do VB, ele irá tentar chamar também os dados que forem NULL (sem dados).

Você pode fazer um "IF" antes de chamar o rs!observacao ex:

If !observacao = "" Then

Else

txtObs.Text = !observacao

End If

Mais sinceramente, eu não entendi sua pergunta... Ai em cima, só dei uma rapidinha que talvez lhe dê uma idéia de como arrumar seu erro. Caso contrário da uma explicada melhor..

* Mas tipo, não da bug não.. Ele tem que ler sempre, nulo ou não. Seu Select está certinho? Faz uns testes separados só com este campo memo em outro projeto do vb..

Abração

Pinguimbera,

O que acontece é o seguinte:

quando vou debugar o programa eu executo linha por linha pra ver cada valor dos campos no passo a passo. Ao passar pela linha set rs = DB.execute(sSQL), ele monta na variavel rs os valores que eu passo em sSQL, correto?! então eu peço a variavel rs!paciente e ela me mostra o nome do paciente ao qual está associado em meu Banco de dados. Vou montando dentro dos TextBox os valores de cada campo correspondente na tabela: rs!paciente, rs!endereco, rs!nascimento, etc... nesses campos tudo funciona normal, porém ao analisar o campo (que no BD é memorando) rs!obs, passando o mouse em cima dele, (no modo debug) no primeiro momento ele mostra o valor... até ae tudo bem, mais se eu continuar olhando os outros valores e retornar novamente ao campo rs!obs ele já vai aparecer que o campo é Null... sendo que instantes antes ele me mostrou o valor do campo na tabela.... é ae que me confronto com o problema, por isso eu digo lá em cima que as vezes ele me dá o resultado e às vezes não dá, entendeu????

veja essas figuras ae:

bug_vb1.JPG

bug_vb2.JPG

Edited by Junior Ari

Share this post


Link to post
Share on other sites
  • 0

Junior,

Mas o que acontece no formulário? Ele aparece ou não...?

Outra coisa que pode fazer é não permitir que um registro seja inserido com este campo nulo...

Experimente fazer uma função mais ou menos assim

If Me.Obs=empty or me.obs="" then

Rs!Obs="Sem Ocorrências"

Else

Rs!Obs=me.Obs

End If

Retorne pra dizer que bicho que dá?

Att:

Felipe Ost

"Se fosse fácil achar o caminho das pedras, tantas pedras no caminho não seriam ruins"

Share this post


Link to post
Share on other sites
  • 0
Guest Junior Ari

RESOLVIDO!!!!!!!!

cara, uma coisa muito simples, quer dizer, simples não... apenas um "erro de cálculo" hehe :lol:

afinal de contas eu nunca fiz um curso de programação.. tudo q sei foi aprendido sozinho mesmo buscando apostilas e exemplos em CD´s de banca e na internet!!

mas vamos a solução:

antes tava assim quando chamava a tabela do banco:

Set rsPaciente = DB.Execute(sSQL)

mudei para assim:

rsPaciente.Open sSQL, DB, adOpenStatic, adLockReadOnly

e deu certo!!!!! agora não dá mais o erro Null que dava!!!

se alguém puder me explicar a diferenca das suas chamadas, eu agradeceria o resto da vida...... :blush: :P

valeu ae a galera q tentou me ajudar... valeu mesmo!!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148598
    • Total Posts
      644290
×
×
  • Create New...