在窗体上用Adodc1将数据库abc.mdb中的表[da]中的日期型字段‘出生日期’与TextBox连接,另有“添加”command1、“修改”command2、“保存”command3按钮。
Private Sub Text1_KeyPress(KeyAscii As Integer) '检测输入格式,允许日期型或空值,回车转下格
If KeyAscii = 13 Then
If Text6.Text <> "" Then
If IsDate(Text1) = False Then
MsgBox "格式不对!应输入日期格式(yyyy-mm-dd)", , "警告"
Text1.Text = ""
Text1.SetFocus
Else
Text2.SetFocus
End If
Else
Text2.SetFocus
End If
End If
End Sub
Private Sub Command1_Click() '添加按钮
Adodc1.Recordset.AddNew
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command2_Click() '修改按钮
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command3_Click() '保存按钮
Adodc1.Recordset.Update
Text1.Locked = True
Command1.Visible = True
Command2.Visible = True
Command3.Visible = False
End Sub
按下“添加”command1时,执行Adodc1.Recordset.AddNew,然后按“保存”command2按钮,Adodc1.Recordset.Update,保存数据,此时,TextBox1中填入日期或不填值(为空),均可保存新添记录,还会出错;但如果用“修改”,将TextBox1中原来的日期清除为空,再“保存”时,系统就会提示出错,主要是因为Access数据库日期型字段不能设为空值。本人参阅了许多帖子,但仍未得到较好解决,请高手指教,如何修改?
27 个解决方案
#1
Access日期型字段空值更新问题,搜索了许多帖子,但始终没有解决。(上有错字,重发)
在窗体上用Adodc1将数据库abc.mdb中的表[da]中的日期型字段‘出生日期’与TextBox连接,另有“添加”command1、“修改”command2、“保存”command3按钮。
Private Sub Text1_KeyPress(KeyAscii As Integer) '检测输入格式,允许日期型或空值,回车转下格
If KeyAscii = 13 Then
If Text1.Text <> "" Then
If IsDate(Text1) = False Then
MsgBox "格式不对!应输入日期格式(yyyy-mm-dd)", , "警告"
Text1.Text = ""
Text1.SetFocus
Else
Text2.SetFocus
End If
Else
Text2.SetFocus
End If
End If
End Sub
Private Sub Command1_Click() '添加按钮
Adodc1.Recordset.AddNew
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command2_Click() '修改按钮
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command3_Click() '保存按钮
Adodc1.Recordset.Update
Text1.Locked = True
Command1.Visible = True
Command2.Visible = True
Command3.Visible = False
End Sub
按下“添加”command1时,Adodc1.Recordset.AddNew,然后按“保存”command2按钮,Adodc1.Recordset.Update,保存数据,此时,TextBox1中填入日期或不填值(为空),均可保存新添记录,不会出错;但如果用“修改”,将TextBox1中原有的日期清除为空,再“保存”时,系统就会提示出错,主要是因为Access数据库日期型字段不能设为空值。本人参阅了许多帖子,但仍未得到较好的解决方案,请高手指教,如何修改?
在窗体上用Adodc1将数据库abc.mdb中的表[da]中的日期型字段‘出生日期’与TextBox连接,另有“添加”command1、“修改”command2、“保存”command3按钮。
Private Sub Text1_KeyPress(KeyAscii As Integer) '检测输入格式,允许日期型或空值,回车转下格
If KeyAscii = 13 Then
If Text1.Text <> "" Then
If IsDate(Text1) = False Then
MsgBox "格式不对!应输入日期格式(yyyy-mm-dd)", , "警告"
Text1.Text = ""
Text1.SetFocus
Else
Text2.SetFocus
End If
Else
Text2.SetFocus
End If
End If
End Sub
Private Sub Command1_Click() '添加按钮
Adodc1.Recordset.AddNew
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command2_Click() '修改按钮
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command3_Click() '保存按钮
Adodc1.Recordset.Update
Text1.Locked = True
Command1.Visible = True
Command2.Visible = True
Command3.Visible = False
End Sub
按下“添加”command1时,Adodc1.Recordset.AddNew,然后按“保存”command2按钮,Adodc1.Recordset.Update,保存数据,此时,TextBox1中填入日期或不填值(为空),均可保存新添记录,不会出错;但如果用“修改”,将TextBox1中原有的日期清除为空,再“保存”时,系统就会提示出错,主要是因为Access数据库日期型字段不能设为空值。本人参阅了许多帖子,但仍未得到较好的解决方案,请高手指教,如何修改?
#2
请高手指点。
#3
建议用DTPicker控件代替文本框,几乎不用编程
#4
up
#5
我也是用DTPicker控件
#6
直接修改Access数据库文件,将该日期型字段设置为允许空值
#7
关键就是: Access数据库日期型字段不能设置为允许空值呀!!!
#8
用DTPicker控件与textbox合用,在text2中显示DTPicker内的日期,为何无反映?
Private Sub Text2_KeyPress(KeyAscii As Integer)
On Error GoTo err1:
If KeyAscii = 13 Then
If IsDate(Text2) = True Then
DTPicker1.Value = Text2
Else
If Text2 = "" Then
DTPicker1.Value = Null
Else
MsgBox "输入格式错误!", 16
End If
End If
End If
Exit Sub
err1:
MsgBox "日期输入错误!", 16
End Sub
Private Sub DTPicker1_Change()
If DTPicker1.Value = Null Then
Text2.Text = ""
GoTo 5
End If
Text2.Text = DTPicker1.Value
5 End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
On Error GoTo err1:
If KeyAscii = 13 Then
If IsDate(Text2) = True Then
DTPicker1.Value = Text2
Else
If Text2 = "" Then
DTPicker1.Value = Null
Else
MsgBox "输入格式错误!", 16
End If
End If
End If
Exit Sub
err1:
MsgBox "日期输入错误!", 16
End Sub
Private Sub DTPicker1_Change()
If DTPicker1.Value = Null Then
Text2.Text = ""
GoTo 5
End If
Text2.Text = DTPicker1.Value
5 End Sub
#9
关键就是: Access数据库日期型字段不能设置为允许空值呀!!!
------------------------------------------------------------
你理解错了。。。我是让你在Access2000或Access2002下直接修改数据库文件,
在设计视图模式下,将该字段在常规选项中“必填字段”设为“否”。。
------------------------------------------------------------
你理解错了。。。我是让你在Access2000或Access2002下直接修改数据库文件,
在设计视图模式下,将该字段在常规选项中“必填字段”设为“否”。。
#10
将该字段在常规选项中“必填字段”设为“否”即可
#11
日期型字段可以通过设置为Null来填为空数据.
#12
& ""
#13
始终未能解决,请哪位高手具体指导一下,顶楼的代码如何来改?
#14
保存之前先对字段做一次判断,就行了
#15
具体怎么做?请指教!!!
#16
纠正你一个认识上的错误。Null 是不可回写的。
在数据库中,字段值为 Null 是表示没有写过值。一旦写过,就不可恢复了(即使是字符型,也只能写成空串,而不是 Null),除非数据库允许这样做。你可以有下列选择:
1 如果一定要把一条记录的某字段搞回 Null,就把数据复制出来,删除原记录,重新添加一条记录,将数据(除要设置Null的以外)写进去。没有写的就是 Null。
2 日期值是数值型的。0 代表 1889-12-30。不妨将需要写 Null 的日期记录写 0。显示的时候判断一下,是 Int(日期值)=0 就不显示。当然,你的记录中不能有出生与 1889-12-30 的人。
在数据库中,字段值为 Null 是表示没有写过值。一旦写过,就不可恢复了(即使是字符型,也只能写成空串,而不是 Null),除非数据库允许这样做。你可以有下列选择:
1 如果一定要把一条记录的某字段搞回 Null,就把数据复制出来,删除原记录,重新添加一条记录,将数据(除要设置Null的以外)写进去。没有写的就是 Null。
2 日期值是数值型的。0 代表 1889-12-30。不妨将需要写 Null 的日期记录写 0。显示的时候判断一下,是 Int(日期值)=0 就不显示。当然,你的记录中不能有出生与 1889-12-30 的人。
#17
同意of123()
#18
TO 楼主、of123(),找到一个解决方法:
先将日期型字段的默认值设置为 Null ,程序中用IF语句判断一下,就OK了(我程序中的相关代码“BirthAge”是日期类型字段):
With rs
......
.Fields("Name") = Trim(Text1(4).Text)
.Fields("Gender") = Trim(Text1(5).Text)
If Testtxt(Text1(6)) Then
.Fields("BirthAge") = Format(Text1(6).Text, "yy-mm-dd")
Else
.Fields("BirthAge") = Null
End If
......
End With
rs.Update
rs.Requery
rs.Close
Set rs = Nothing
先将日期型字段的默认值设置为 Null ,程序中用IF语句判断一下,就OK了(我程序中的相关代码“BirthAge”是日期类型字段):
With rs
......
.Fields("Name") = Trim(Text1(4).Text)
.Fields("Gender") = Trim(Text1(5).Text)
If Testtxt(Text1(6)) Then
.Fields("BirthAge") = Format(Text1(6).Text, "yy-mm-dd")
Else
.Fields("BirthAge") = Null
End If
......
End With
rs.Update
rs.Requery
rs.Close
Set rs = Nothing
#19
建议将错就错把ACCESS数据库文件日期型直接改为文本型,判断输入数据是否为日期型直接用代码实现,这是一种最懒的方法,有时候我懒的时候也会用!
代码如下:
'判断日期格式是否正确
If Text1.Text <> "" And Not IsDate(Trim(Text1.Text)) Then
MsgBox "报价日期格式不正确或不完整", vbOKOnly + vbExclamation, "警告"
Text1.SetFocus
Exit Sub
End If
Form1.Adodc1.Recordset.AddNew
Text1.Text = Format(Trim(Text1.Text), "yyyy-m-d") & ""
Form1.Adodc1.Recordset.update
代码如下:
'判断日期格式是否正确
If Text1.Text <> "" And Not IsDate(Trim(Text1.Text)) Then
MsgBox "报价日期格式不正确或不完整", vbOKOnly + vbExclamation, "警告"
Text1.SetFocus
Exit Sub
End If
Form1.Adodc1.Recordset.AddNew
Text1.Text = Format(Trim(Text1.Text), "yyyy-m-d") & ""
Form1.Adodc1.Recordset.update
#20
实验了一下:
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
#21
不推荐使用字符型字段保存日期,会给以后条件查询带来后患。
#22
果然,不用设置默认值。
不错,小有收获。
同意楼上。
不错,小有收获。
同意楼上。
#23
---------------------------------------------------------
实验了一下:
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
----------------------------------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
实验了一下:
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
----------------------------------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
#24
Required 属性
返回一个值,用以指示字段是否需要一个非 Null 的值。
Required 属性的返回值是:
值 描述
True 不允许 Null 值。
False 允许 Null 值。
Required 属性可以与 AllowZeroLength 属性一起使用,来确定Value 属性设置的有效性。如果 Required 被置为 False,该列除了能包含 Null 值,也能包含满足由 AllowZeroLength 属性的设置所指定条件的值。
返回一个值,用以指示字段是否需要一个非 Null 的值。
Required 属性的返回值是:
值 描述
True 不允许 Null 值。
False 允许 Null 值。
Required 属性可以与 AllowZeroLength 属性一起使用,来确定Value 属性设置的有效性。如果 Required 被置为 False,该列除了能包含 Null 值,也能包含满足由 AllowZeroLength 属性的设置所指定条件的值。
#25
js_jdc(海风):
我试过了,写入日期数据后,再
rs!sdate = Null
rs.Update
没有问题。而且数据库中日期字段也被清空。
cn.execute "Update table1 Set sdate = Null" 也同样有效。
我试过了,写入日期数据后,再
rs!sdate = Null
rs.Update
没有问题。而且数据库中日期字段也被清空。
cn.execute "Update table1 Set sdate = Null" 也同样有效。
#26
我说什么来着?又讨论回来了吧?哈哈
--------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
--------------------------------
If Not IsDate(Text1.Text) Then
Rs("日期")=CDate(Text1.Text)
Else
Rs("日期")=Null
End If
--------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
--------------------------------
If Not IsDate(Text1.Text) Then
Rs("日期")=CDate(Text1.Text)
Else
Rs("日期")=Null
End If
#27
今天比较困,不给你试过了,如果Null不行的话,试试用VbNull
#1
Access日期型字段空值更新问题,搜索了许多帖子,但始终没有解决。(上有错字,重发)
在窗体上用Adodc1将数据库abc.mdb中的表[da]中的日期型字段‘出生日期’与TextBox连接,另有“添加”command1、“修改”command2、“保存”command3按钮。
Private Sub Text1_KeyPress(KeyAscii As Integer) '检测输入格式,允许日期型或空值,回车转下格
If KeyAscii = 13 Then
If Text1.Text <> "" Then
If IsDate(Text1) = False Then
MsgBox "格式不对!应输入日期格式(yyyy-mm-dd)", , "警告"
Text1.Text = ""
Text1.SetFocus
Else
Text2.SetFocus
End If
Else
Text2.SetFocus
End If
End If
End Sub
Private Sub Command1_Click() '添加按钮
Adodc1.Recordset.AddNew
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command2_Click() '修改按钮
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command3_Click() '保存按钮
Adodc1.Recordset.Update
Text1.Locked = True
Command1.Visible = True
Command2.Visible = True
Command3.Visible = False
End Sub
按下“添加”command1时,Adodc1.Recordset.AddNew,然后按“保存”command2按钮,Adodc1.Recordset.Update,保存数据,此时,TextBox1中填入日期或不填值(为空),均可保存新添记录,不会出错;但如果用“修改”,将TextBox1中原有的日期清除为空,再“保存”时,系统就会提示出错,主要是因为Access数据库日期型字段不能设为空值。本人参阅了许多帖子,但仍未得到较好的解决方案,请高手指教,如何修改?
在窗体上用Adodc1将数据库abc.mdb中的表[da]中的日期型字段‘出生日期’与TextBox连接,另有“添加”command1、“修改”command2、“保存”command3按钮。
Private Sub Text1_KeyPress(KeyAscii As Integer) '检测输入格式,允许日期型或空值,回车转下格
If KeyAscii = 13 Then
If Text1.Text <> "" Then
If IsDate(Text1) = False Then
MsgBox "格式不对!应输入日期格式(yyyy-mm-dd)", , "警告"
Text1.Text = ""
Text1.SetFocus
Else
Text2.SetFocus
End If
Else
Text2.SetFocus
End If
End If
End Sub
Private Sub Command1_Click() '添加按钮
Adodc1.Recordset.AddNew
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command2_Click() '修改按钮
Text1.Locked = False
Command1.Visible = False
Command2.Visible = False
Command3.Visible = True
End Sub
Private Sub Command3_Click() '保存按钮
Adodc1.Recordset.Update
Text1.Locked = True
Command1.Visible = True
Command2.Visible = True
Command3.Visible = False
End Sub
按下“添加”command1时,Adodc1.Recordset.AddNew,然后按“保存”command2按钮,Adodc1.Recordset.Update,保存数据,此时,TextBox1中填入日期或不填值(为空),均可保存新添记录,不会出错;但如果用“修改”,将TextBox1中原有的日期清除为空,再“保存”时,系统就会提示出错,主要是因为Access数据库日期型字段不能设为空值。本人参阅了许多帖子,但仍未得到较好的解决方案,请高手指教,如何修改?
#2
请高手指点。
#3
建议用DTPicker控件代替文本框,几乎不用编程
#4
up
#5
我也是用DTPicker控件
#6
直接修改Access数据库文件,将该日期型字段设置为允许空值
#7
关键就是: Access数据库日期型字段不能设置为允许空值呀!!!
#8
用DTPicker控件与textbox合用,在text2中显示DTPicker内的日期,为何无反映?
Private Sub Text2_KeyPress(KeyAscii As Integer)
On Error GoTo err1:
If KeyAscii = 13 Then
If IsDate(Text2) = True Then
DTPicker1.Value = Text2
Else
If Text2 = "" Then
DTPicker1.Value = Null
Else
MsgBox "输入格式错误!", 16
End If
End If
End If
Exit Sub
err1:
MsgBox "日期输入错误!", 16
End Sub
Private Sub DTPicker1_Change()
If DTPicker1.Value = Null Then
Text2.Text = ""
GoTo 5
End If
Text2.Text = DTPicker1.Value
5 End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
On Error GoTo err1:
If KeyAscii = 13 Then
If IsDate(Text2) = True Then
DTPicker1.Value = Text2
Else
If Text2 = "" Then
DTPicker1.Value = Null
Else
MsgBox "输入格式错误!", 16
End If
End If
End If
Exit Sub
err1:
MsgBox "日期输入错误!", 16
End Sub
Private Sub DTPicker1_Change()
If DTPicker1.Value = Null Then
Text2.Text = ""
GoTo 5
End If
Text2.Text = DTPicker1.Value
5 End Sub
#9
关键就是: Access数据库日期型字段不能设置为允许空值呀!!!
------------------------------------------------------------
你理解错了。。。我是让你在Access2000或Access2002下直接修改数据库文件,
在设计视图模式下,将该字段在常规选项中“必填字段”设为“否”。。
------------------------------------------------------------
你理解错了。。。我是让你在Access2000或Access2002下直接修改数据库文件,
在设计视图模式下,将该字段在常规选项中“必填字段”设为“否”。。
#10
将该字段在常规选项中“必填字段”设为“否”即可
#11
日期型字段可以通过设置为Null来填为空数据.
#12
& ""
#13
始终未能解决,请哪位高手具体指导一下,顶楼的代码如何来改?
#14
保存之前先对字段做一次判断,就行了
#15
具体怎么做?请指教!!!
#16
纠正你一个认识上的错误。Null 是不可回写的。
在数据库中,字段值为 Null 是表示没有写过值。一旦写过,就不可恢复了(即使是字符型,也只能写成空串,而不是 Null),除非数据库允许这样做。你可以有下列选择:
1 如果一定要把一条记录的某字段搞回 Null,就把数据复制出来,删除原记录,重新添加一条记录,将数据(除要设置Null的以外)写进去。没有写的就是 Null。
2 日期值是数值型的。0 代表 1889-12-30。不妨将需要写 Null 的日期记录写 0。显示的时候判断一下,是 Int(日期值)=0 就不显示。当然,你的记录中不能有出生与 1889-12-30 的人。
在数据库中,字段值为 Null 是表示没有写过值。一旦写过,就不可恢复了(即使是字符型,也只能写成空串,而不是 Null),除非数据库允许这样做。你可以有下列选择:
1 如果一定要把一条记录的某字段搞回 Null,就把数据复制出来,删除原记录,重新添加一条记录,将数据(除要设置Null的以外)写进去。没有写的就是 Null。
2 日期值是数值型的。0 代表 1889-12-30。不妨将需要写 Null 的日期记录写 0。显示的时候判断一下,是 Int(日期值)=0 就不显示。当然,你的记录中不能有出生与 1889-12-30 的人。
#17
同意of123()
#18
TO 楼主、of123(),找到一个解决方法:
先将日期型字段的默认值设置为 Null ,程序中用IF语句判断一下,就OK了(我程序中的相关代码“BirthAge”是日期类型字段):
With rs
......
.Fields("Name") = Trim(Text1(4).Text)
.Fields("Gender") = Trim(Text1(5).Text)
If Testtxt(Text1(6)) Then
.Fields("BirthAge") = Format(Text1(6).Text, "yy-mm-dd")
Else
.Fields("BirthAge") = Null
End If
......
End With
rs.Update
rs.Requery
rs.Close
Set rs = Nothing
先将日期型字段的默认值设置为 Null ,程序中用IF语句判断一下,就OK了(我程序中的相关代码“BirthAge”是日期类型字段):
With rs
......
.Fields("Name") = Trim(Text1(4).Text)
.Fields("Gender") = Trim(Text1(5).Text)
If Testtxt(Text1(6)) Then
.Fields("BirthAge") = Format(Text1(6).Text, "yy-mm-dd")
Else
.Fields("BirthAge") = Null
End If
......
End With
rs.Update
rs.Requery
rs.Close
Set rs = Nothing
#19
建议将错就错把ACCESS数据库文件日期型直接改为文本型,判断输入数据是否为日期型直接用代码实现,这是一种最懒的方法,有时候我懒的时候也会用!
代码如下:
'判断日期格式是否正确
If Text1.Text <> "" And Not IsDate(Trim(Text1.Text)) Then
MsgBox "报价日期格式不正确或不完整", vbOKOnly + vbExclamation, "警告"
Text1.SetFocus
Exit Sub
End If
Form1.Adodc1.Recordset.AddNew
Text1.Text = Format(Trim(Text1.Text), "yyyy-m-d") & ""
Form1.Adodc1.Recordset.update
代码如下:
'判断日期格式是否正确
If Text1.Text <> "" And Not IsDate(Trim(Text1.Text)) Then
MsgBox "报价日期格式不正确或不完整", vbOKOnly + vbExclamation, "警告"
Text1.SetFocus
Exit Sub
End If
Form1.Adodc1.Recordset.AddNew
Text1.Text = Format(Trim(Text1.Text), "yyyy-m-d") & ""
Form1.Adodc1.Recordset.update
#20
实验了一下:
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
#21
不推荐使用字符型字段保存日期,会给以后条件查询带来后患。
#22
果然,不用设置默认值。
不错,小有收获。
同意楼上。
不错,小有收获。
同意楼上。
#23
---------------------------------------------------------
实验了一下:
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
----------------------------------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
实验了一下:
在 Access 2000 下创建的数据库,只要日期类型字段不设置为“必填字段”(Required = False),日期是可以回写为 Null 的。与默认值无关。
----------------------------------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
#24
Required 属性
返回一个值,用以指示字段是否需要一个非 Null 的值。
Required 属性的返回值是:
值 描述
True 不允许 Null 值。
False 允许 Null 值。
Required 属性可以与 AllowZeroLength 属性一起使用,来确定Value 属性设置的有效性。如果 Required 被置为 False,该列除了能包含 Null 值,也能包含满足由 AllowZeroLength 属性的设置所指定条件的值。
返回一个值,用以指示字段是否需要一个非 Null 的值。
Required 属性的返回值是:
值 描述
True 不允许 Null 值。
False 允许 Null 值。
Required 属性可以与 AllowZeroLength 属性一起使用,来确定Value 属性设置的有效性。如果 Required 被置为 False,该列除了能包含 Null 值,也能包含满足由 AllowZeroLength 属性的设置所指定条件的值。
#25
js_jdc(海风):
我试过了,写入日期数据后,再
rs!sdate = Null
rs.Update
没有问题。而且数据库中日期字段也被清空。
cn.execute "Update table1 Set sdate = Null" 也同样有效。
我试过了,写入日期数据后,再
rs!sdate = Null
rs.Update
没有问题。而且数据库中日期字段也被清空。
cn.execute "Update table1 Set sdate = Null" 也同样有效。
#26
我说什么来着?又讨论回来了吧?哈哈
--------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
--------------------------------
If Not IsDate(Text1.Text) Then
Rs("日期")=CDate(Text1.Text)
Else
Rs("日期")=Null
End If
--------------------------------
这是不错。添加新记录时,空值(textbox不填任何字符)是可以的,但在修改记录时,将textbox中原来的日期删除为空值,如入党时间原来是1986-12-26,现在将其删除为空,在更新记录时(Adodc1.Recordset.Update)就会出现错误。
--------------------------------
If Not IsDate(Text1.Text) Then
Rs("日期")=CDate(Text1.Text)
Else
Rs("日期")=Null
End If
#27
今天比较困,不给你试过了,如果Null不行的话,试试用VbNull