设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1070|回复: 5
打印 上一主题 下一主题

[窗体] 类型不匹配问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-14 10:40:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很郁闷,在刚做好新增资料时,新增资料没有任何问题,但在后面一步步完善其它代码时,反而新增这个出问题了用 MsgBox "姓名" & VarType(Me.姓名)  测试,文本框居然都变为日期类,对“姓名”等,好说,我可以用cstr涵数转换,但对日期类型就不知道怎么办好了,代码如下:
Private Sub cmsave_Click()
If Trim(Me.工号) = "" Or Trim(Me.姓名) = "" Or Trim(Me.性别) = "" Or Trim(Me.出生年月) = "" Or Trim(Me.身份证) = "" Or Trim(Me.进厂时间) = "" Then
    MsgBox "内容未填写完整!工号、姓名、性别、出生年月、身份证、进厂时间为必填内容。"
    Exit Sub
End If
If IsNull(Trim(Me.工号)) Or IsNull(Trim(Me.姓名)) Or IsNull(Trim(Me.性别)) Or IsNull(Trim(Me.出生年月)) Or IsNull(Trim(Me.身份证)) Or IsNull(Trim(Me.进厂时间)) Then
    MsgBox "内容未填写完整!工号、姓名、性别、出生年月、身份证、进厂时间为必填内容。"
    Exit Sub
End If

     Dim rs As ADODB.Recordset
     Set rs = New ADODB.Recordset
     rs.Open "员工资料", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
     rs.AddNew
     rs("工号") = Val(Me.工号)
     rs("姓名") = CStr(Trim(Me.姓名))
     rs("性别") = CStr(Trim(Me.性别))
     rs("出生年月") = Me.出生年月  '这个字段为必填,所以ACCESS没有报类型不匹配错误   
         
     rs("进厂时间") = Me.进厂时间  '必填字段
     rs("离职日期") = Me.离职日期  '非必填字段,当保留空白时,程序在这里报“类型不匹配”错误
     rs("离职原因") = CStr(Trim(Me.离职原因))
     rs("联系电话") = CStr(Trim(Me.联系电话))
     rs.Update
     rs.Close
     Set rs = Nothing
     Me.员工资料查询子窗体.Requery
     MsgBox "记录已成功添加!"
End If
End Sub

在报错字段处改为
If Trim(Me.姓名) <> "" And IsNull(Trim(Me.姓名)) = False Then rs("离职日期") = Me.离职日期
还是不行。这里应该怎么改?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-5-14 10:52:28 | 只看该作者
Trim(Me.姓名) <> "" And IsNull(Trim(Me.姓名)) = False 改为nz(Trim(Me.姓名),"")<>""试试。
3#
 楼主| 发表于 2009-5-14 11:14:48 | 只看该作者
If Nz(Trim(Me.姓名)) <> "" Then rs("离职日期") = Me.离职日期
还是不行
4#
发表于 2009-5-14 13:49:27 | 只看该作者
试试
rs("离职日期") =cdate( Me.离职日期)
5#
 楼主| 发表于 2009-5-14 13:54:07 | 只看该作者
rs("离职日期") =cdate( Me.离职日期)
还是不行。。
6#
 楼主| 发表于 2009-5-14 14:00:00 | 只看该作者
试试
rs("离职日期") =cdate( Me.离职日期)
todaynew 发表于 2009-5-14 13:49


谢谢大家出谋划策,在todaynew的启发下,我查了关于cdate的函数,发现这样写后就可以了:
     If IsDate(Me.离职日期) Then rs("离职日期") = CDate(Me.离职日期)

结贴!结贴!结贴!N高兴的,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-14 16:00 , Processed in 0.081781 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表