设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 怎样读取子窗体记录,无法移动指针啊(access 编程)

[复制链接]
跳转到指定楼层
1#
发表于 2006-1-11 01:04:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎样读取子窗体记录,无法移动指针啊(access 编程)



Private Sub Form_Current()   '当此子窗体打开为当前时,显示已有的记录数,并读取相关记录
Dim strsource As String
Dim intscount As Integer
Dim rspeicur As Recordset
'Set rspeicur = Me.Recordclone

'我本想如此获取的记录集,之后准备运行rspeicur.movenext代码读取记录,编译时'Set rspeicur = Me.Recordclone出现错误为“方法或成员未找到”

intscount = Recordset.RecordCount
'统计当前子窗体记录数

Debug.Print intpeicount
If 原料批号.value <> Null Then strsource = 原料批号.value '这只是第一条记录的值,如何读取之后的记录值?

请各位神雕侠帮忙,我已经头都破了,一无所展!!!!

我的邮箱:lengshuikgh@msn.com

救命,拜托!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-1-11 01:12:00 | 只看该作者
你这些代码都是复制过来的吧,只有代码没有例子很难分析的,初步知道是你没有Recordclone这个文本框

3#
 楼主| 发表于 2006-1-11 04:13:00 | 只看该作者

不需要recordclone这个文本框吧?

Private Sub Form_current()  '子窗体的当前事件
Dim strsource As Variant
Dim intpeicount As Integer
Dim rspeicur As Recordset


Set rspeicur = Me.Form.RecordsetClone
rspeicur.Requery
intpeicount = rspeicur.RecordCount '统计当前子窗体记录数

If intpeicount = 0 Then GoTo rsnull
rspeicur.MoveFirst
Debug.Print intpeicount

strsource = DoubleQuote(原料批号.Value) '在此处,主窗体跳转记录后,会出现:原料批号.value=<没有记录。>的错误。

'现在问题解决一半了,子窗体第一次当前事件时可以读取数据,但是当主窗体跳转记录后,又无法读取出记录了
If intpeicount > 1 Then

    For i = 2 To intpeicount
            rspeicur.MoveNext
            strsource = strsource + "or " + DoubleQuote(rspeicur(1).Value)
            Debug.Print strsource
    Next i
End If
rspeicur.Close   '我看帮助文件说明:recordsetclone是副本,关闭后,可能就找不到正确的值了
rsnull:
Exit Sub

end sub



谁来救救我????????????
4#
发表于 2006-1-11 04:14:00 | 只看该作者
把库传上来,光这样看不明白。

5#
 楼主| 发表于 2006-1-11 04:57:00 | 只看该作者

我给个截图吧,库里的数据太多了



我想是在主窗体配料表里对应显示出子窗体内的数据,同时,当 配料明细 子窗体不断成为当前时,把主要的原料批号的信息读取出来以便使用。

但是,记录在主窗体跳转后,就无法读取子窗体内的记录了。

还有就是    原料批号.value 必须改为 rspeicur(1).Value, 否则只能读取第一行的数据

请斑竹指点一二,不胜感激!

[此贴子已经被作者于2006-1-10 20:59:55编辑过]

本帖子中包含更多资源

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

x
6#
发表于 2006-1-11 05:11:00 | 只看该作者
"我给个截图吧,库里的数据太多了"

是想对例子保密还是什么?不可以简化传上来吗?你要知道没有具体问题不可能作深入分析的,按常规不会出现你这种情况的,算了,不传也不免强你了

[此贴子已经被作者于2006-1-10 21:12:41编辑过]

7#
 楼主| 发表于 2006-1-11 05:48:00 | 只看该作者

获取子窗体记录的数据库文件简化版

以下是引用一点通在2006-1-10 21:11:00的发言:


"我给个截图吧,库里的数据太多了"

是想对例子保密还是什么?不可以简化传上来吗?你要知道没有具体问题不可能作深入分析的,按常规不会出现你这种情况的,算了,不传也不免强你了


[em04]诚恳求教!

本帖子中包含更多资源

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

x
8#
发表于 2006-1-11 06:11:00 | 只看该作者
看过你的例子,但还不明你在问什么?跳转是什么意思?打印什么?最终结果又是什么呢?
9#
 楼主| 发表于 2006-1-11 06:56:00 | 只看该作者

斑竹, 您好!是这样子的

我想当主窗体配料表移到下一条记录时,可以获取配料明细子窗体中的原料批号信息,并且在立即窗口中打印出来。

配料表批号记录为06时

也就是当子窗体第一次成为当前时

有明细记录条数:                                        2
明细的原料批号为即rspeicur(1):'05002'or '05003'


而当主窗体移到第二条记录:060105时

有记录明细条数:                                        1

明细的原料批号为更新后的记录集中的原料批号rspeicur(1):'05033'

但是,实现不了,不能把第二条记录的明细原料批号记录打印在立即窗口里



我有用断点检测过,此时rspeicur(1).value 的值 为  没有记录

斑竹,拜托了,我已经苦想了很久了,实在难以解决。头发都快掉光了

10#
发表于 2006-1-11 21:02:00 | 只看该作者


在主窗体的成为当前事件中加上以下代码,然后将子窗体的所有代码删除。我将子窗体名称改为了“配料明细”。

Private Sub Form_Current()
Dim strSource As String
Dim intScount As Integer

Set rs = Me![配料明细].Form.Recordset
    intScount = rs.RecordCount

Do While Not rs.EOF
      
        strSource = strSource & " " & rs("原料批号")
        rs.MoveNext
Loop

MsgBox "配料明细记录数量:" & intScount & "   原料批号为:" & strSource

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

本版积分规则

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

GMT+8, 2024-11-16 14:44 , Processed in 0.080349 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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