Jose Ari Junior
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 26/03/2008 18:04 hs
fiz um cadastro simples no Visual Basic 6 com banco de dados access 2003, e tem um campo memo, porem ele não é obrigatorio... ao tentar consultar o registro e quando ele lê esse campo (memorando) às vezes ele lê... e às vezes ele considera como Null
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?! Entao 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 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????
Tentei explicar bem detalhado o problema....
veja o Print Screen que fiz pra exempificar o problema: http://juniorari.webng.com/bug_vb1.JPG http://juniorari.webng.com/bug_vb2.JPG
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2008 09:39 hs
Porque você não tenta com o Do While ao invés de If Not ex: Do While Not rsPaciente.EOF 'seus campos rsPaciente.Movenext Loop
|
|
|
Macaubal
|
MACAUBAL SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2008 12:00 hs
Verifique se o Evento Change do campo txtCodigo nao está limpando rs ou atribuindo outros valores para rsPaciente. Aproposito, rsPaciente é variavel criada noi Formulario ou no Lost do Campo?
|
|
|
Jose Ari Junior
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2008 17:58 hs
Treze,
o que o programa faz é quando sai do foco do txtPaciente (LostFocus) vai verificar se há paciente cadastrado, se existir (if Not rsPacientes.EOF - nao chegou ao fim do arquivo) entao preenche os campos correspondentes pra fazer alteracoes, se necessarias... tentei com o Do While Not e acontece o mesmo problema...
Macaubal, no evento Change não há nada... e a variável rsPaciente é criada no evento LostFocus do campo txtPaciente
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/03/2008 18:02 hs
O VB possui um problema sério com a função lostfocus, não se sabe o porque, o que você pode tentar é ao invés de colocar a função no lostfocus, colocar a mesma no evento gotfous do próximo campo tenta isso e retorna para dizer se funcionou.
|
|
|
Fábio
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 28/03/2008 08:08 hs
Desculpe, mas eu entendo o q o amigo está dizendo..... os dados somem do recordset.... eu tb passei por isso. não me lembro exatamente o q eu fiz, mas tinha relação com a forma como o recordset era aberto!
|
|
|