RECORDSET COM VALORES VAZIOS.

USUARIO.EXCLUIDOS 13/11/2004 15:26:32
#50211
Por favor, precisa da ajuda de vocês. Estou colocando em um recordset todos os valores de uma tabela do access. O problema é que na hora de carregar nos campos os valores, onde tem campo vazio ele dá erro. Como faço para que, mesmo com algum campo sem valor, ele passe para o próximo até carregar todos os campos?
Muito obrigado.

Sub MostraCampos()

txtNProtocolo.Text = RSProtocolo!NumeroProtocolo
cmbTipo.Text = RSProtocolo!TipoDocumento
txtNDocumento.Text = RSProtocolo!NumeroDocumento
txtDataEmissao.Text = RSProtocolo!DataEmissao
cmbAssunto.Text = RSProtocolo!assunto
txtEndereco.Text = RSProtocolo!endereco
txtBairro.Text = RSProtocolo!bairro
cmbMunicipio.Text = RSProtocolo!municipio
txtRC.Text = RSProtocolo!rc
txtObservacao.Text = RSProtocolo!observacao

End Sub
USUARIO.EXCLUIDOS 13/11/2004 16:56:53
#50222
Resposta escolhida
Use With, End With conforme exemplo abaixo ou repita a variavel recordset em todas as linhas onde vc referencia um campo:

Sub MostraCampos()
With RSProtocolo
Do While Not .EOF

If Not IsNull(!NumeroProtocolo) = True Then txtNProtocolo.Text = !NumeroProtocolo
If Not IsNull(!TipoDocumento) = True Then cmbTipo.Text = !TipoDocumento
If Not IsNull(!NumeroDocumento) = True Then txtNDocumento.Text = !NumeroDocumento
If Not IsNull(!DataEmissao) = True Then txtDataEmissao.Text = !DataEmissao
If Not IsNull(!assunto) = True Then cmbAssunto.Text = !assunto
If Not IsNull(!endereco) = True Then txtEndereco.Text = !endereco
If Not IsNull(!bairro) = True Then txtBairro.Text = !bairro
If Not IsNull(!municipio) = True Then cmbMunicipio.Text = !municipio
If Not IsNull(!rc) = True Then txtRC.Text = !rc
If Not IsNull(!observacao) = True Then txtObservacao.Text = !observacao
If Not IsNull(!funcionario) = True Then cmbFuncionario.Text = !funcionario
If Not IsNull(!DataServico) = True Then txtDataServico.Text = !DataServico
If Not IsNull(!TipoServico) = True Then cmbTipoServico.Text = !TipoServico
If Not IsNull(!Estado) = True Then cmbEstado.Text = !Estado

Loop
End With
End Sub

Ah. Troque esse sinhal de exclamação para ponto, essa sintaxe já foi descontinuada nas versões mais recentes de DAO.
USUARIO.EXCLUIDOS 13/11/2004 17:35:04
#50227
Tem mais um erro de lógica no programa ! Você esqueceu de avançar o recordset a cada iteração no LOOP.

Altere essa parte do código:
If Not IsNull(!Estado) = True Then cmbEstado.Text = !Estado
!MoveNext
Loop
End With

Sem o uso do Movenext o seu recordset jamais saira do primeiro registro e o programa ficara em loop !
E como vc esta atualizando sempre as mesmas text boxes dentro de um loop somente as informações do último registro estarão visiveis no form.
USUARIO.EXCLUIDOS 13/11/2004 20:11:05
#50240
DANSGO,
Sei que vc é novo no site, mais sempre que uma pergunta sua for respondida no fórum a mesma deve ser encerrada, pois assim as pessoas que auxiliam o fórum não perderam tempo abrindo tópicos solucionados.
USUARIO.EXCLUIDOS 13/11/2004 20:37:59
#50245
Tem uma "check box" logo abaixo da caixa de texto onde vc digita suas mensagens para encerrar o tópico.
Procure essa check box com a seguinte descrição: "Encerrar este tópico ao gravar a resposta"

Note que o ícone as lado das mensagensno fórum é diferente para mensagens fechadas e abertas.
Tópico encerrado , respostas não são mais permitidas