ATUALIZANDO CAMPO [DATA] VB6 / ACCEES

RIBEIROSA 18/03/2013 15:43:31
#420674
Boa tarde a todos,

Em minha tabela de certidões, o campo [data_vencimento] esta definido como [data abreviada],

A [data_vencimento] é montada em uma variável [LdtDataVencimento ,<date>], por valores inteiros selecionados em uma combo. [dd/mm/yyy].

LdtDataVencimento = 0
LdtDataVencimento = LinDiaVencimento & [Ô]/[Ô] & LinMesVencimento & [Ô]/[Ô] & LinAnoVencimento

O modulo de inserção funciona 100%.

No módulo de alteração, apesar da variável [LdtDataVencimento] conter o valor correto ao salvar no [Ô]Access[Ô], o valor salvo é sempre [Ô]30/12/1899[Ô].


Se alguém puder ajudar !

valeu a atenção !

Wagner
ANTONIOBSJ 18/03/2013 15:51:53
#420675
Na hora de gravar, passe no formato americano (MM/DD/YYYY), mesmo que esteja definido de outra forma.

LdtDataVencimento = 0
LdtDataVencimento = LinDiaVencimento & [Ô]/[Ô] & LinMesVencimento & [Ô]/[Ô] & LinAnoVencimento

LdtDataVencimento = FORMAT(LinDiaVencimento , [Ô]MM/DD/YYYY[Ô])
RIBEIROSA 18/03/2013 16:19:24
#420682
Valeu a atenção, [Ô]Antoniobsj[Ô],

Eu já estou fazendo isto : LstSQL = LstSQL & [Ô]Data_Vencimento = [Ô] & Format(LdtDataVencimento, [Ô]mm/dd/yyyy[Ô]) & [Ô] [Ô]

e mesmo assim o valor salvo no [Ô]BD[Ô] é [Ô]30/12/1899[Ô].

Existe outro problema que não consigo identificar.
MARCELO.TREZE 18/03/2013 16:36:08
#420685
ja que colocou data abreviada tentou salvar da maneira comum

Format(data,[Ô]dd/mm/yyyy[Ô])

ou

Format(data,[Ô]dd/mm/yy[Ô])

RIBEIROSA 18/03/2013 16:48:19
#420687
Valeu, Marcelo-Treze,

Cara já tentei sim, e o problema persiste.

Estou com esse problema a dois dias e não consigo resolver.

MARCELO.TREZE 18/03/2013 16:52:59
#420688
eu vi que para inserir funciona porem para alterar não funciona, então posta os dois módulos como estão

RIBEIROSA 18/03/2013 17:09:51
#420689
Montando datas

[ô]Emissão
LinDiaEmissao = 0
LinDiaEmissao = Val(Trim(cboDiaEmissao.Text))

LinMesEmissao = 0
LinMesEmissao = Val(Trim(cboMesEmissao.Text))

LinAnoEmissao = 0
LinAnoEmissao = Val(Trim(cboAnoEmissao.Text))

[ô]Vencimento
LinDiaVencimento = 0
LinDiaVencimento = Val(Trim(cboDiaVencimento.Text))

LinMesVencimento = 0
LinMesVencimento = Val(Trim(cboMesVencimento.Text))

LinAnoVencimento = 0
LinAnoVencimento = Val(Trim(cboAnoVencimento.Text))

[ô]Data_Vencimento
LdtDataVencimento = 0
LdtDataVencimento = LinDiaVencimento & [Ô]/[Ô] & LinMesVencimento & [Ô]/[Ô] & LinAnoVencimento

Modulo de inserção

[ô]Função pega próximo código
LinCodigoDocumento = 0
LinCodigoDocumento = fPegaProxNumero([Ô]Certidoes[Ô])

If LinCodigoDocumento <> 0 Then
LstSQL = [Ô][Ô]
LstSQL = [Ô]INSERT INTO Certidoes([Ô]
LstSQL = LstSQL & [Ô]codigo_Certidao, [Ô]
LstSQL = LstSQL & [Ô]Descriçao_certidao, [Ô]
LstSQL = LstSQL & [Ô]Complemento1, [Ô]
LstSQL = LstSQL & [Ô]Complemento2, [Ô]
LstSQL = LstSQL & [Ô]Complemento3, [Ô]
LstSQL = LstSQL & [Ô]Complemento4, [Ô]
LstSQL = LstSQL & [Ô]Dia_Emissao, [Ô]
LstSQL = LstSQL & [Ô]Mes_Emissao, [Ô]
LstSQL = LstSQL & [Ô]Ano_Emissao, [Ô]
LstSQL = LstSQL & [Ô]Dia_Vencimento, [Ô]
LstSQL = LstSQL & [Ô]Mes_Vencimento, [Ô]
LstSQL = LstSQL & [Ô]Ano_Vencimento, [Ô]
LstSQL = LstSQL & [Ô]Data_Vencimento, [Ô]
LstSQL = LstSQL & [Ô]Excluido, [Ô]
LstSQL = LstSQL & [Ô]tipo, [Ô]
LstSQL = LstSQL & [Ô]Usuario, [Ô]
LstSQL = LstSQL & [Ô]log[Ô]
LstSQL = LstSQL & [Ô]) VALUES ([Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LinCodigoDocumento & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & UCase(Trim(txtCertidao)) & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & UCase(Trim(txtComplemento1)) & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & UCase(Trim(txtComplemento2)) & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & UCase(Trim(txtComplemento3)) & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & UCase(Trim(txtComplemento4)) & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LinDiaEmissao & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LinMesEmissao & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LinAnoEmissao & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LinDiaVencimento & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LinMesVencimento & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LinAnoVencimento & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & LdtDataVencimento & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & 0 & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & [Ô]cadastro[Ô] & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & gstLoginChave & [Ô][ô],[Ô]
LstSQL = LstSQL & [Ô][ô][Ô] & Now & [Ô][ô][Ô]
LstSQL = LstSQL & [Ô])[Ô]
[ô]MsgBox [Ô]string : [Ô] & LstSQL
Err.Clear
myado.Execute LstSQL

Modulo de alteração

LstSQL = [Ô][Ô]
LstSQL = [Ô]UPDATE Certidoes SET [Ô]
LstSQL = LstSQL & [Ô]log = [ô][Ô] & Now & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Usuario = [ô][Ô] & gstLoginChave & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Tipo = [ô][Ô] & [Ô]alteração[Ô] & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Descriçao_certidao = [ô][Ô] & UCase(Trim(txtCertidao)) & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Complemento1 = [ô][Ô] & UCase(Trim(txtComplemento1)) & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Complemento2 = [ô][Ô] & UCase(Trim(txtComplemento2)) & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Complemento3 = [ô][Ô] & UCase(Trim(txtComplemento3)) & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Complemento4 = [ô][Ô] & UCase(Trim(txtComplemento4)) & [Ô][ô], [Ô]
LstSQL = LstSQL & [Ô]Dia_Emissao = [Ô] & LinDiaEmissao & [Ô], [Ô]
LstSQL = LstSQL & [Ô]Mes_Emissao = [Ô] & LinMesEmissao & [Ô], [Ô]
LstSQL = LstSQL & [Ô]Ano_Emissao = [Ô] & LinAnoEmissao & [Ô], [Ô]
LstSQL = LstSQL & [Ô]Dia_Vencimento = [Ô] & LinDiaVencimento & [Ô], [Ô]
LstSQL = LstSQL & [Ô]Mes_Vencimento = [Ô] & LinMesVencimento & [Ô], [Ô]
LstSQL = LstSQL & [Ô]Ano_Vencimento = [Ô] & LinAnoVencimento & [Ô], [Ô]
LstSQL = LstSQL & [Ô]Data_Vencimento = [Ô] & Format(LdtDataVencimento, [Ô]dd/mm/yyyy[Ô]) & [Ô] [Ô]
LstSQL = LstSQL & [Ô]Where codigo_Certidao = [Ô] & cc & [Ô] [Ô]
MsgBox [Ô]string : [Ô] & LstSQL
Err.Clear
myado.Execute LstSQL
RIBEIROSA 18/03/2013 17:15:25
#420692
Porque uso a data de vencimento de duas formas diferentes ?

Separado dia, mes, ano é um estilo que gosto de trabalhar.

Já o campo data_vencimento é usado para calcular o prazo de validade : gstSQL_Final = gstSQL_Final & [Ô] ct.data_vencimento - date() as prazo_validade [Ô]

Ok !!
MARCELO.TREZE 18/03/2013 18:11:08
#420697
tenta

  LstSQL = LstSQL & [Ô]Data_Vencimento = [Ô] & LdtDataVencimento & [Ô] [Ô]


na inserção vc não formata o campo tente também não formatar da alteração
RIBEIROSA 19/03/2013 07:52:56
#420722
Já havia testado sem formatação, mas testei outra vez e não funcionou !

Será algum bug do Access ?
RIBEIROSA 19/03/2013 08:20:23
#420724
Resolvido !!!!!


O código ficou assim .... LstSQL = LstSQL & [Ô]Data_Vencimento = #[Ô] & Format(LdtDataVencimento, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô]

Valeu a atenção de todos !!!!
Faça seu login para responder