Office中国论坛/Access中国论坛

标题: 以下代码为何追加不了记录,如何修改? [打印本页]

作者: 付谦    时间: 2005-6-27 03:18
标题: 以下代码为何追加不了记录,如何修改?
     我用"党员-积极分子"表建立了一个窗体,本想当在"标识"字段文本框中输入"预备党员"时.自动将该记录的有关内容添加到"党员-在册"表中,可是执行不了,提示:"标准表达式中数据类型不区配".(如果建立追加查询用同样的字段可以追加  )  查两个表中的字段名及属性都是相同的,除有年月二字的字段为日期型外,其余都是文本型.不知以下代码错在哪里?如何改错,赐教.

Private Sub 标识_BeforeUpdate(Cancel As Integer)



Select Case [标识]

    Case "列入计划"

       Me.发展计划年季 = Format(Now(), "YYYY" & "-")

      

    Case "提交讨论"

      Me.支部讨论年月 = Format(Now(), "YYYY") & "-1-1"

      Me.总支通过年月 = Format(Now(), "YYYY") & "-1-1"

   

    Case "预备党员"

      Me.加入年月 = Me.支部讨论年月

      Me.流动类型 = "发展"

      Me.流动年月 = Format(Now(), "YYYY-MM") & "-1"

strsql = "INSERT INTO [党员-在册] ( 工作单位, 单位代码, 姓名, 职务, 职务代码, 标识, 性别, 民族, 出生年月, 工作年月, 加入年月, 职称, 职称代码, 籍贯, 现学历, 流动类型, 流动方向, 流动代码, 流动年月, 现学历代码, 备注 ) VALUES ('" & 工作单位 & "', '" & 单位代码 & "', '" & 姓名 & "', '" & 职务 & "', '" & 职务代码 & "', '" & 标识 & "', '" & 性别 & "', '" & 民族 & "', '" & 出生年月 & "', '" & 工作年月 & "', '" & 加入年月 & "', '" & 职称 & "', '" & 职称代码 & "', '" & 籍贯 & "', '" & 现学历 & "', '" & 流动类型 & "', '" & 流动方向 & "', '" & 流动代码 & "', '" & 流动年月 & "', '" & 现学历代码 & "', '" & 备注 & "')"



CurrentProject.Connection.Execute strsql

End Select

End Sub


作者: zyp    时间: 2005-6-27 03:33
SQL语法看不出什么错误,不过你取得日期的方法还是用以下的方法好点:Me.支部讨论年月 = Format(Now(), "YYYY") & "-1-1"改为:Me.支部讨论年月 = dateserial(year(date),1,1)
作者: eyewitnes    时间: 2005-6-27 06:11
应该就是有年月两字的字段问题吧,你可以试试把有年月两字的全部去掉看看能不能执行
作者: 付谦    时间: 2005-6-29 04:01
去掉日期型字段也不行,请高手指点
作者: 海狸先生    时间: 2005-6-29 04:32
最好上传你的文件。
作者: eyewitnes    时间: 2005-6-29 09:13
在strsql = "INSERT INTO [党员-在册] ( 工作单位, 单位代码, 姓名, 职务, 职务代码, 标识, 性别, 民族, 出生年月, 工作年月, 加入年月, 职称, 职称代码, 籍贯, 现学历, 流动类型, 流动方向, 流动代码, 流动年月, 现学历代码, 备注 ) VALUES ('" & 工作单位 & "', '" & 单位代码 & "', '" & 姓名 & "', '" & 职务 & "', '" & 职务代码 & "', '" & 标识 & "', '" & 性别 & "', '" & 民族 & "', '" & 出生年月 & "', '" & 工作年月 & "', '" & 加入年月 & "', '" & 职称 & "', '" & 职称代码 & "', '" & 籍贯 & "', '" & 现学历 & "', '" & 流动类型 & "', '" & 流动方向 & "', '" & 流动代码 & "', '" & 流动年月 & "', '" & 现学历代码 & "', '" & 备注 & "')"

这段代码之前加上一行 debug.print  "INSERT INTO [党员-在册] ( 工作单位, 单位代码, 姓名, 职务, 职务代码, 标识, 性别, 民族, 出生年月, 工作年月, 加入年月, 职称, 职称代码, 籍贯, 现学历, 流动类型, 流动方向, 流动代码, 流动年月, 现学历代码, 备注 ) VALUES ('" & 工作单位 & "', '" & 单位代码 & "', '" & 姓名 & "', '" & 职务 & "', '" & 职务代码 & "', '" & 标识 & "', '" & 性别 & "', '" & 民族 & "', '" & 出生年月 & "', '" & 工作年月 & "', '" & 加入年月 & "', '" & 职称 & "', '" & 职称代码 & "', '" & 籍贯 & "', '" & 现学历 & "', '" & 流动类型 & "', '" & 流动方向 & "', '" & 流动代码 & "', '" & 流动年月 & "', '" & 现学历代码 & "', '" & 备注 & "')"

然后将在即时窗口中所显示的东西贴上来看看?会不会是你其中一个字段的值是空的,所以出问题?


作者: zyp    时间: 2005-7-1 03:03
请检查一下你的字符中是否包含有单引号和#
作者: 付谦    时间: 2005-7-5 17:12
现将数据库附上,请协助
作者: 付谦    时间: 2005-7-5 17:30
[attach]11690[/attach]

现将数据库附上,其中一语句输错了,应改为strsql2 = "INSERT INTO [党员-在册] ( 工作单位, 单位代码, 姓名, 职务, 职务代码, 标识, 性别, 民族,  职称, 职称代码, 籍贯,出生年月,工作年月,加入年月,流动年月,流动类型,流动方向, 流动代码,现学历, 现学历代码, 备注 ) VALUES ('" & 工作单位 & "', '" & 单位代码 & "', '" & 姓名 & "', '" & 职务 & "', '" & 职务代码 & "', '" & 标识 & "', '" & 性别 & "', '" & 民族 & "', '" & 职称 & "', '" & 职称代码 & "','" & 籍贯 & "', '" & 出生年月 & "', '" & 工作年月 & "', '" & 加入年月 & "', '" & 流动年月 & "','" & 流动类型 & "', '" & 流动方向 & "', '" & 流动代码 & "','" & 现学历 & "','" & 现学历代码 & "', '" & 备注 & "')"

另外,我已经找出了出错原因是1."党员-在册"表中部分文本字段属性是否允许空值设成了否,当对应的追加字段值为空时出错,将"否"设为"是"这一问题解决.  2..当追加到"党员-在册"表中的日期型字段为空值时,出错信息为".....数据类型不匹配,",如不是空值,程序运行正常.在"党员-在册"表中的日期型字段属性中又没有设的地方,这问题如何解决,请各位赐教

[此贴子已经被作者于2005-7-5 16:10:22编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3