设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 求助:带子窗体纯代码数据录入(有一条向左联接的表查询中修改记录时出错)

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-8 16:48:30 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 4848 于 2009-3-8 18:18 编辑

1、先返回主窗体记录的自动编号用于关联子窗体;
2、录入一对多关系的字段时先提示表中有没有要录入的值,没有的先加入主表中;
3、循环将子窗体记录插入新表中;
4、在保存一对多关系的两张表中的数据时出错。
    strSQL = "UPDATE (select * from 保险表 left join 车辆档案表 on 保险表.车牌号码=车辆档案表.车牌号码) "
    strSQL = strSQL & "SET 保险表.车牌号码='" & Me.车牌号码 & "',车型=" & Me.车型.Column(0) & ",行驶证车主='" & Me.行驶证车主
    strSQL = strSQL & "',保单号码='" & Me.保单号码 & "',保费合计='" & Me.保费合计
    strSQL = strSQL & "' WHERE 保险表.出单编号=" & Me.出单编号 & ";"
    CurrentProject.Connection.Execute strSQL
    用代码修改记录时提示“索引或主关键字不能包含一个空值”,但直接打开查询(在例子里叫“机动车辆保险出单”)又可以录入或修改数据。






请高手帮忙看一下是什么问题?或有没有其它办法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2009-3-9 12:26:24 | 显示全部楼层
问题还没解决,请大家帮忙看一下.
3#
 楼主| 发表于 2009-3-9 14:54:42 | 显示全部楼层
因为保险表中自动编号是先添加的所以不要用insert而用update,车辆档案表中的记录因为每年都有可能改变,所以每次在录资料时都是先调出车辆档案表的记录如果车辆档案有改变则直接在录入保险单资料时进行更改而不要写成两条查询语句.
4#
 楼主| 发表于 2009-3-9 15:08:46 | 显示全部楼层
没看清你的逻辑,先想保存哪些数据,在你的
CurrentProject.Connection.Execute strSQL
打了个断点,然后看strSQL内容为
UPDATE (select * from 保险表 left join 车辆档案表 on 保险表.车牌号码=车辆档案表.车牌 ...
ACMAIN_CHM 发表于 2009-3-9 13:00

当车辆档案表中没有要录入的车牌号码时则要向车辆档案中先添加车牌号码,当车辆档案表中有要录入的车牌号码的资料时,则先调出来看一下,如果与要录入的资料不同则在保存资料时进行修改.
5#
 楼主| 发表于 2009-3-11 11:06:35 | 显示全部楼层
再顶一下,问题真希望能够解决,大家帮帮忙.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-24 14:41 , Processed in 0.112276 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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