设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2553|回复: 11
打印 上一主题 下一主题

[窗体] 窗体里ADODB查询两个表不同字段报错的问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-24 09:16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 紫风 于 2011-6-24 09:18 编辑

问题:表A 和 表B 有若干个字段,我想从表A里取字段A,B,C,从表B里取字段E,F,G。
有劳各位帮解决一下,谢谢!!!
有问题的代码如下(报错:至少一个参数没有被指定值):
Private Sub cmd查询_Click()
On Error GoTo 0
    Dim STemp As String
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
        
        Me.Form.Refresh
        STemp = "SELECT [tbl入库].* FROM [tbl入库] WHERE 入库ID = '" & Me.入库号 & "'"
        rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            With rs
                Me.卸车单号 = ![卸车单号]
                Me.日期 = ![日期]
                Me.客户名称 = ![公司名称]
                Me.工作号 = ![工作号]
                Me.入库车牌 = ![车牌号码]
                Me.入库柜号 = ![入库柜号]
                Me.入库操作 = ![操作人]
            End With
        rs.Close
        
        STemp = "SELECT [tbl卸货派工].* FROM [tbl卸货派工] WHERE 入库号 = '" & Me.入库号 & "'"
        rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            With rs
                Me.预到数 = ![预到数]
                Me.实到数 = ![实到数]
                Me.主班 = ![主班]
                Me.副班 = ![副班]
                Me.下单时间 = ![下单时间]
                Me.完工时间 = ![完工时间]
             End With
        rs.Close
        Set rs = Nothing
End Sub

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-6-24 09:51:04 | 只看该作者
按LZ的代码只能取到部分值……因为记录集已经被关闭了。如果要同时取到两个表的值,应该建立两个记录集。必要的话,请上传附件。
3#
发表于 2011-6-24 09:53:22 | 只看该作者
入库ID = '" & Me.入库号 & "'"

入库号 = '" & Me.入库号 & "'"
中有一个是错的。
4#
 楼主| 发表于 2011-6-24 10:06:28 | 只看该作者
todaynew 发表于 2011-6-24 09:53
入库ID = '" & Me.入库号 & "'"

入库号 = '" & Me.入库号 & "'"

这个问题已经找到,应该是入库ID=入库号,但结果还是一样。

具体情况:
如果tbl卸车派工里有相应记录,则不报错;如果没有派工记录,则报错内容一样。
5#
 楼主| 发表于 2011-6-24 10:08:47 | 只看该作者
roych 发表于 2011-6-24 09:51
按LZ的代码只能取到部分值……因为记录集已经被关闭了。如果要同时取到两个表的值,应该建立两个记录集。必 ...

回版主:

尝试过2个RS,但报错一样。
如果tbl卸车派工里已经有派工记录,则不报错;如果该表内未有与入库ID相符的记录,系统才会报错。
6#
发表于 2011-6-24 10:28:18 | 只看该作者
紫风 发表于 2011-6-24 10:06
这个问题已经找到,应该是入库ID=入库号,但结果还是一样。

具体情况:

用nz函数:
nz(me.入库单.value,0)
7#
 楼主| 发表于 2011-6-24 10:31:23 | 只看该作者
todaynew 发表于 2011-6-24 10:28
用nz函数:
nz(me.入库单.value,0)

这个……
版主,NZ没用过,请问能不能具体点?谢谢!!
8#
发表于 2011-6-24 10:42:14 | 只看该作者
本帖最后由 todaynew 于 2011-6-24 10:48 编辑
紫风 发表于 2011-6-24 10:31
这个……
版主,NZ没用过,请问能不能具体点?谢谢!!


STemp = "SELECT [tbl入库].* FROM [tbl入库] WHERE 入库ID = '" & nz(Me.入库号,"") & "'"


其实不必大费周章,直接用Dlookup就可以了。比如:
Me.卸车单号.value = nz(Dlookup("卸车单号","tbl入库","入库ID=" & nz(me.入库号.value,0)),"")
Me.日期.value = nz(Dlookup("日期","tbl入库","入库ID=" & nz(me.入库号.value,0)),"")
Me.客户名称.value = nz(Dlookup("公司名称","tbl入库","入库ID=" & nz(me.入库号.value,0)),"")
Me.工作号.value = nz(Dlookup("工作号","tbl入库","入库ID=" & nz(me.入库号.value,0)),"")
Me.入库车牌.value = nz(Dlookup("车牌号码","tbl入库","入库ID=" & nz(me.入库号.value,0)),"")
Me.入库柜号.value = nz(Dlookup("入库柜号","tbl入库","入库ID=" & nz(me.入库号.value,0)),"")
Me.入库操作.value = nz(Dlookup("操作人","tbl入库","入库ID=" & nz(me.入库号.value,0)),"")
Me.预到数.value = nz(Dlookup("预到数","tbl卸货派工","入库ID=" & nz(me.入库号.value,0)),"")
Me.实到数.value = nz(Dlookup("实到数","tbl卸货派工","入库ID=" & nz(me.入库号.value,0)),"")
Me.主班.value = nz(Dlookup("主班","tbl卸货派工","入库ID=" & nz(me.入库号.value,0)),"")
Me.副班.value = nz(Dlookup("副班","tbl卸货派工","入库ID=" & nz(me.入库号.value,0)),"")
Me.下单时间.value = nz(Dlookup("下单时间","tbl卸货派工","入库ID=" & nz(me.入库号.value,0)),"")
Me.完工时间.value = nz(Dlookup("完工时间","tbl卸货派工","入库ID=" & nz(me.入库号.value,0)),"")


9#
 楼主| 发表于 2011-6-24 12:02:44 | 只看该作者
todaynew 发表于 2011-6-24 10:42
STemp = "SELECT [tbl入库].* FROM [tbl入库] WHERE 入库ID = '" & nz(Me.入库号,"") & "'"

感谢版主帮忙!

不过,如果用了DLOOKUP+NZ后,就有别的报错,系统认为me.卸车单号不是空的,不允许下单了……

如果用RS,则无此报错,但报错:您为该字段输入的值无效。
10#
 楼主| 发表于 2011-6-24 12:18:45 | 只看该作者
我把文件上传上来,麻烦版主帮看一下,谢谢!

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 18:24 , Processed in 0.111081 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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