access数据库SQL中insert语句中value某个参数用select获得,如何实现?

insert的数据有多个参数,其中有几个参数想通过查询语句查出来,但把select写入value语句中,运行时会说“查询输入必须包含至少一个表或查询”代码如下------... insert的数据有多个参数,其中有几个参数想通过查询语句查出来,但把select写入value语句中,运行时会说“查询输入必须包含至少一个表或查询”
代码如下
-------------------------------------------------------------------------------------------------------------------------
INSERT INTO 房屋报修维修表 ( 报修时间, 小区名, 楼层数, 报修房间, 报修房主姓名, 报修房主联系方式, 报修项目1, 报修项目2, 报修项目3, 维修费用, 是否交款 )
VALUES (FormatDateTime(now(),0), forms![住户报修登记]!combo1, forms![住户报修登记]!楼层, forms![住户报修登记]!房间号,
//就这里会出错,单独拿出来没问题的
(select 住户表.住户姓名 from 住户表 where( 住户表.住户所在小区=forms![住户报修登记]!combo3 and 住户所在楼层=forms![住户报修登记]!楼层 and 住户表.住户所在房间号=forms![住户报修登记]!房间号 and 住户表.是否为户主=true)),
(select 住户表.住户联系方式 from 住户表 where (住户表.住户所在小区=forms![住户报修登记]!combo3 and 住户表.住户所在楼层=forms![住户报修登记]!楼层 and 住户表.住户所在房间号=forms![住户报修登记]!房间号 and 住户表.是否为户主=true)),
forms![住户报修登记]!combo9,
forms![住户报修登记]!combo11,
forms![住户报修登记]!combo13,
(select sum(收费表.收费价格) from 收费表 where( 收费表.报修项目=forms![住户报修登记]!combo9 or 收费表.报修项目=forms![住户报修登记]!combo11 or 收费表.报修项目=forms![住户报修登记]!combo13)),
false);
展开
 我来答
badkano
推荐于2018-05-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部

按如下方式获得:

如,access库中有以下两张表:

现要将测试表1的数据追加到测试表中,其中测试表1的NAME列为参数,AGE为固定值20,需要select获得。

可用如下语句:

insert into 测试表(name,age) select name,20 from  测试表1

追加后的结果:

ybbudukpgf
2013-11-29 · 超过27用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:46.9万
展开全部
给你个思路 将你所需要得到的参数写一个方法 你看看那个报修时间还不一样是用方法得到的 很傻很简单的方法就是将你所需要的每一个参数都写一个方法 然后方法的返回值就是你所需要的参数
比如function string a(int id)
{
stirng sql="select name from user where id="+id;
DataTable dt=...; 这里将查询的结果放入表中

return dt.Rows[0];

}
然后在插入语句中的报修房主姓名的参数写a(id)
如果你所需要的参数在同一张表 你可以查询你所需要的所有参数 然后放入一张内存表中 自己编辑列名 这样就可以只需写一个方法
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cfce594
2013-11-29 · TA获得超过107个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:197万
展开全部
多写一点语句,
先执行查询,将查询得到的字体结果读入到到变量,然后用AddNew方法,
with 房屋报修维修表
.AddNew
.Fields("报修时间")=...
.Fields("报修房主姓名")=读出姓名的变量名
....
.Update
追问
是写查询还是直接加到事件里面呢,写到查询里面是错的呀
追答
你是ACCESS,可以写到事件里
Dim xRst As New ADODB.Recordset
Dim pName As String
dim xPhone as String '假定联系方式是字符型的字段
dim xExpense as Double
xRst.Open "select 住户表.住户姓名,住户表.住户联系方式 from 住户表 where( 住户表.住户所在小区=forms![住户报修登记]!combo3 and 住户所在楼层=forms![住户报修登记]!楼层 and 住户表.住户所在房间号=forms![住户报修登记]!房间号 and 住户表.是否为户主=true)" , CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If xRst.RecordCount > 0 Then
'没有这个住户
Msgbox "没有这个住户 "
else
pname=xrst.fields("住户姓名")
xPhone=xrst.fields("住户联系方式")
endif
xRst.Open "select sum(收费表.收费价格) from 收费表 where( 收费表.报修项目=forms![住户报修登记]!combo9 or 收费表.报修项目=forms![住户报修登记]!combo11 or 收费表.报修项目=forms![住户报修登记]!combo13)", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If xRst.RecordCount > 0 Then
'没有这个住户
Msgbox "没有查找到收费 "
else
xExpense=xrst.fields(0)
endif
with 房屋报修维修表
.AddNew
.Fields("报修时间")=...
.Fields("报修房主姓名")=pName
.Fields("维修费用")= xExpense
....
.Update
end with
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
行走的小泥鳅
2013-11-29 · TA获得超过187个赞
知道答主
回答量:218
采纳率:0%
帮助的人:75.9万
展开全部
这个可以处理
追问
具体一点,谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式