RECORDSET COM VALORES VAZIOS.
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
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
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.
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.
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.
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.
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.
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.
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.
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