HOUVE UM ERRO NA CONEXÃO COM O BANCO DE DADOS

DS2T 07/02/2016 02:22:34
#457264
Se está indo pra parte de [Ô]Update[Ô] é porque você tem registro no seu banco de dados para alterar (ou então, seu código não está passando pelo evento LostFocus do textbox).

Seja como for, seu Update não era pra dar erro. Apenas seria uma Query que não afetaria nenhuma linha do seu banco de dados. Acredito que seja erro na hora de montar o UPDATE SET.

Olha isso:


.CommandText = [Ô]update Usuarios set [Ô] & [Ô]NomeUsuario = [ô][Ô] & txtNomeUsuario.Text & [Ô][ô],[Ô] & [Ô]Endereco = [ô],[Ô] & txtEndereco.Text & [Ô][ô],[Ô] & [Ô]Cidade = [ô],[Ô] & txtCidade.Text & [Ô][ô],[Ô] & [Ô]Estado = [ô],[Ô] & txtEstado.Text & [Ô][ô],[Ô] & [Ô]CEP = [ô],[Ô] & txtCEP.Text & [Ô][ô],[Ô] & [Ô]Telefone = [ô],[Ô] & txtTelefone.Text & [Ô][ô] [Ô] & [Ô]where CodUsuario = [Ô] & txtCodUsuario.Text & [Ô];[Ô]


Esse Update Set tá todo estranho. Em todos os campos você tá fazendo isso:

[Ô]Endereco = [ô][txt-color=#e80000],[/txt-color][Ô] & txtEndereco.Text & [Ô][ô],[Ô]

Pra que essa vírgula em vermelho? Em todos os campos você tá fazendo isso...



Agora se o problema está aqui (object variable or with block...)

Set rsSelecao = .Execute

Se está dando erro nessa linha, significa que nem chegar na parte do Insert/Update chegou ainda. Está apenas consultando o código do cliente nessa parte. Você pode verificar o estado da conexão.


Sobre o tratamento de erro: Eu particularmente gosto de fazer o código funcionar primeiro, para só depois colocar os tratamentos de erro. Fica mais fácil debugar o projeto.
Se você colocar um breakpoint nessa linha:

If .EOF And .BOF Then


Vai disparar?
JACKTRINTA 07/02/2016 10:29:04
#457274
Colocando o breakpoint na linha mencionada ele dispara e vInclusao se torna true mas mesmo assim esta indo para o comando update, antes do breakpoint estava dando false na vInclusão, como resolver ?
Referente ao tratamento de erros, não estou conseguindo tirar ou melhor deixar como comentários nessas linhas, e esta escrito na apostila do vb.
DS2T 07/02/2016 10:41:10
#457275
Então você tá dizendo que tá entrando dentro dessa condição, correto?

If .EOF And .BOF Then [ô]verifica o inicio e final do registro-
[ô]Se o recordset esta vazio, não retornou registro com esse código:
LimparDados
[ô]Identifica a operação como inclusão:
vInclusao = True


Quando na verdade, não deveria... porque não existe registro com tal código.
é isso mesmo?

Faça um teste então:

Antes da linha:

If .EOF And .BOF Then

Coloque o seguinte código:

Msgbox .RecordCount


Se essa propriedade vir maior do que 0, significa necessariamente que você já tem um registro com esse código.
Já olhou no banco de dados pra ver se realmente não existe um registro correspondente ao código?
JACKTRINTA 07/02/2016 10:56:05
#457277
O banco de dados está vazio e mesmo colocando o comando informado ocorre o mesmo erro e não retorna nada.
JACKTRINTA 10/02/2016 23:21:59
#457460
Help.
OMAR2011 11/02/2016 09:17:05
#457470
Vamos lá.
Disponibiliza seu projeto para o pessoal verificar.Se o banco estiver vazio ou cheio e como ele é aberto pode causar erro no valor do RecordCount.
Outra.
If [txt-color=#e80000]txtCidade.Text = Empty [/txt-color]Then [ô] Isto causa falha e não erro.Basta pressionar a tecla de espaço uma ou duas vezes.[Ô][Ô] e Empty foi para o espaço.
MsgBox [Ô]A cidade não foi preenchido.[Ô], vConfMsg, [Ô]Erro[Ô]
vErro = True
End If
A forma para mim mais correta é Trim(txtCidadade.Text)
JACKTRINTA 11/02/2016 21:00:43
#457531
Ok, segue o banco.
JACKTRINTA 22/02/2016 21:36:20
#458060
Help.
OMAR2011 22/02/2016 23:02:24
#458061
Quando postou seu projeto logo baixei.
Abertura do banco de dados.
[Ô]Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\Projeto\Visual Basic\Bibliotecario\Biblio.mdb;[Ô]
Para mim nem pensar.
db.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\Biblio.mdb[Ô].
Mais simples e fácil.
ADODB.Command deixe um pouco de lado, depois mexa.
Não pode cadastrar um Usuário simplesmente pela Chave primária sendo ela numeração automática.
Vários joão,josé,pedro com o mesmo nome.
Para registrar um novo usuário,btnnovo.
JACKTRINTA 23/02/2016 07:41:25
#458066
Eu deixei dessa forma por que na apostila esta assim.
O que pode ser feito neste caso ?
Página 2 de 5 [42 registro(s)]
Tópico encerrado , respostas não são mais permitidas