Office中国论坛/Access中国论坛

标题: 怎样读取子窗体记录,无法移动指针啊(access 编程) [打印本页]

作者: mildwheat    时间: 2006-1-11 01:04
标题: 怎样读取子窗体记录,无法移动指针啊(access 编程)
怎样读取子窗体记录,无法移动指针啊(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

救命,拜托!
作者: 一点通    时间: 2006-1-11 01:12
你这些代码都是复制过来的吧,只有代码没有例子很难分析的,初步知道是你没有Recordclone这个文本框


作者: mildwheat    时间: 2006-1-11 04:13
标题: 不需要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



谁来救救我????????????
作者: fan0217    时间: 2006-1-11 04:14
把库传上来,光这样看不明白。


作者: mildwheat    时间: 2006-1-11 04:57
标题: 我给个截图吧,库里的数据太多了
[attach]15267[/attach]

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

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

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

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

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


作者: 一点通    时间: 2006-1-11 05:11
"我给个截图吧,库里的数据太多了"

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

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


作者: mildwheat    时间: 2006-1-11 05:48
标题: 获取子窗体记录的数据库文件简化版
以下是引用一点通在2006-1-10 21:11:00的发言:


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

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

[attach]15269[/attach]
[em04]诚恳求教!
作者: 一点通    时间: 2006-1-11 06:11
看过你的例子,但还不明你在问什么?跳转是什么意思?打印什么?最终结果又是什么呢?
作者: mildwheat    时间: 2006-1-11 06:56
标题: 斑竹, 您好!是这样子的
我想当主窗体配料表移到下一条记录时,可以获取配料明细子窗体中的原料批号信息,并且在立即窗口中打印出来。

配料表批号记录为06时

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

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


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

有记录明细条数:                                        1

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

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



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

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


作者: fan0217    时间: 2006-1-11 21:02


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

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

作者: jackeylee    时间: 2007-3-23 18:52
标题: LIHAI
好啊[em17][em17][em17]




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