TRATANDO DATAS

CLEVERTON 12/12/2003 00:13:39
#748
por favor quem me responder, mande para meu e-mail
cleverton.n@pop.com.br

estou com um pequeno probleminha de tratamento de datas.
minha tabela é o seguinte
meu BD e 2.0
campo0 = tipo longo(autonumeração)
campo1 = tipo data/hora
campo2 = tipo texto

meu problema é o seguinte:
quando adiciono e gravo um registro sem informar a data tudo bem, mas quando eu tento
editar o registro e não informo a data, ele dá erro 3421,(que é um erro de tipo inválido de dados)
como eu faço agora para editar esse registro sem dár esse erro.
vamos supor que eu queira editar o registro, mas deixo o campo de data vazio.
como faço para gravar sem dar esse erro

abaixo está o código do meu teste

Option Explicit
Dim db As Database
Dim tb As Recordset

Private Sub cmd_add_update_Click()
On Error Resume Next
tb.AddNew
tb(1) = Text2
tb(2) = Text3
tb.Update
End Sub

Private Sub cmd_avancar_Click()
tb.MoveNext
If tb.EOF Then
tb.MovePrevious
End If
mostrar

End Sub

Private Sub cmd_del_Click()
tb.Delete
cmd_voltar_Click
End Sub

Private Sub cmd_editar_Click()
tb.Edit
If Not IsNull(Text2.Text) Then
tb(1) = ""
Else
tb(1) = Text2
End If
tb(2) = Text3
tb.Update

End Sub

Private Sub cmd_voltar_Click()
tb.MovePrevious
If tb.BOF Then
tb.MoveNext
End If
mostrar
End Sub

Function mostrar()
On Error GoTo erro
Text1 = tb(0)
If Not IsNull(tb(1)) Then
Text2 = tb(1)
Else
Text2 = ""
End If
If Not IsNull(Text3 = tb(2)) Then
Text3 = tb(2)
Else
Text3 = ""
End If
Label1.Caption = (tb.AbsolutePosition + 1)
erro:
If err.Number 0 Then MsgBox err.Number
End Function


Private Sub Form_Load()
Set db = OpenDatabase(App.Path & "    estedata.mdb")
Set tb = db.OpenRecordset("tabela", 2)
Label1.Caption = (tb.AbsolutePosition + 1)
Text1 = tb(0)
If Not IsNull(tb(1)) Then
Text2 = tb(1)
Else
Text2 = ""
End If
If Not IsNull(Text3 = tb(2)) Then
Text3 = tb(2)
Else
Text3 = ""
End If

End Sub
USUARIO.EXCLUIDOS 12/12/2003 00:43:36
#749
Resposta escolhida
Cleverton, campos da tabela que são datas devem ser gravados como nulo para não gerar erro. Aspas simples o sistema reconhece como string.



Private Sub cmd_editar_Click()
tb.Edit
tb(1) =iif( isdate(text2.text),text2.text,null)
tb(2) = Text3
tb.Update

Private Sub cmd_add_update_Click()
On Error Resume Next
tb.AddNew
tb(1) = iif( isdate(text2.text),text2.text,null)
tb(2) = Text3
tb.Update
End Sub



Maier
Tópico encerrado , respostas não são mais permitidas