Office中国论坛/Access中国论坛

标题: DoCmd.GoToRecord函数应用问题? [打印本页]

作者: linevver123    时间: 2009-1-20 01:57
标题: DoCmd.GoToRecord函数应用问题?
DoCmd.GoToRecord acDataForm, "Employees", acGoTo, 7
关于使用这个函数时,出现了一些问题,就是我在窗1使用这个函数来跳转到窗2的记录(相同记录的位置)
我是这样子写的:DoCmd.GoToRecord acDataForm, "窗2!Employees", acGoTo, 7 这个写在窗体1的一个点击事件中.
就是点击时,让窗体2跳到第7条记录,不过不知道为什么,一直提示:窗2!Employees 无法打开,哪位高人知道的,帮忙一下,谢谢了!

[ 本帖最后由 linevver123 于 2009-1-20 14:08 编辑 ]
作者: todaynew    时间: 2009-1-20 07:01
是不是先要:DoCmd.SelectObject acForm, "窗2!Employees"?
作者: Henry D. Sy    时间: 2009-1-20 07:12
Forms!窗体2.SetFocus
    DoCmd.GoToRecord , , acGoTo, 7
作者: kelind    时间: 2009-1-20 09:12
窗体2 打开了吗?
一直提示:窗2!Employees 无法打开?
作者: tz-chf    时间: 2009-1-20 09:32
DoCmd.GoToRecord , , acGoTo, 7
缺省的参数怎么用的
作者: linevver123    时间: 2009-1-20 09:37
GoToRecord 方法
参阅应用于示例特性在 Visual Basic 中,GoToRecord 方法执行 GoToRecord 操作。

expression.GoToRecord(ObjectType, ObjectName, Record, Offset)
expression      必需。返回“应用于”列表中的一个对象的表达式。

ObjectType   可选 AcDataObjectType 型。

AcDataObjectType 可以是下列 AcDataObjectType 常量之一:
acActiveDataObject 默认
acDataForm
acDataFunction
acDataQuery
acDataServerView
acDataStoredProcedure
acDataTable

ObjectName     可选 Variant 型。字符串表达式,表示 objecttype    参数所选类型的对象的有效名称。

Record   可选 AcRecord。

AcRecord 可以是下列 AcRecord 常量之一:
acFirst
acGoTo
acLast
acNewRec
acNext 默认
acPrevious
如果将该参数留空,将采用默认常量 (acNext)。


Offset     可选 Variant 型。数值表达式,如果将 record    参数指定为 acNext 或 acPrevious,则该表达式表示向前或向后移动的记录数。如果将 record 参数指定为 acGoTo,则该表达式表示移动到的记录编号。该表达式的值必须在有效记录数范围之中。

说明
有关该操作及其参数如何使用的详细信息,请参阅该操作的主题。

如果将 objecttype 和 objectname 参数留空(默认常量 acActiveDataObject,假设 objecttype 的值),则将假定用活动对象。

语法中的可选参数允许留空,但是必须包含参数的逗号。如果有一个或多个位于末端的参数留空,则在指定的最后一个参数后面不必使用逗号。

示例
下面的示例使用 GoToRecord 方法将“雇员”窗体中的第七条记录变为当前活动对象。

DoCmd.GoToRecord acDataForm, "Employees", acGoTo, 7
作者: linevver123    时间: 2009-1-20 09:38
GoToRecord 操作
使用 GoToRecord 操作可以使打开着的表、窗体或查询结果集中的指定记录变成当前记录。

设置
GoToRecord 操作具有以下参数:

操作参数 说明
对象类型 包含要作为当前记录的对象类型。可以在“宏”窗口“操作参数”节中的“对象类型”框中选择“表”、“查询”、“窗体”、“服务器视图”、“存储过程”或“函数”。将该参数留空可以选择活动对象。
对象名称 包含要作为当前记录的对象名称。“对象名称”框中显示了当前数据库中由“对象类型”参数所选择的全部对象。如果“对象类型”参数为空,则也将该参数留空。
记录 要作为当前记录的记录。可在“记录”框中单击“向前移动”、“向后移动”、“首记录”、“尾记录”、“定位”或“新记录”。默认值为“向后移动”。
偏移量 整型数或结果为整型的表达式。表达式前必须有等号 (=)。该参数指定要用作当前记录的记录。有两种使用“偏移量”参数的方式:
当“记录”参数为“向前移动”或“向后移动”时,Microsoft Access 将记录编号向前或向后移动由“偏移量”参数指定的数。
当“记录”参数为“定位”时,Access 将移动到其编号与“偏移量”参数值相等的记录。记录编号显示在窗口底部的记录编号框中。
注释  如果对“记录”参数使用“首记录”、“尾记录”或“新记录”,Access 将忽略“偏移量”参数。如果输入的“偏移量”参数过大,Access 会显示错误信息。此外,不能在“偏移量”参数中输入负数。


说明
如果焦点处于某个记录的特定控件中,该操作将使焦点停留在新记录的相同控件中。

将“记录”参数设置为“新记录”,可以移到窗体或表底部的空记录中,这样就可以输入新的数据。

该操作与单击“编辑”菜单上的“定位”结果类似。“定位”命令的“首记录”、“尾记录”、“下一记录”、“上一记录”和“新记录”子命令对所选对象的效果与“记录”参数的“首记录”、“尾记录”、“向前移动”、“向后移动”和“新记录”设置相同。也可以使用窗口底部的浏览按钮移到所需记录。

如果在“对象类型”和“对象名称”参数中指定了隐藏窗体,则可以使用 GoToRecord 操作使隐藏窗体上的记录变成当前记录。

若要在 Microsoft Visual Basic 中运行 GoToRecord 操作,请使用 DoCmd 对象的 GoToRecord 方法。
作者: linevver123    时间: 2009-1-20 09:42
标题: to版主
谢谢版主,我试试看行不?之前好像有试过了,好像行不通

[ 本帖最后由 linevver123 于 2009-1-20 09:50 编辑 ]
作者: linevver123    时间: 2009-1-20 09:49
标题: to:todaynew
DoCmd.SelectObject acForm, "窗2!Employees"?
我没用这个语句,我直接
Set DBS(0) = CurrentDb
SQL(0) = "SELECT * form XXXX  "     
Set RST(0) = DBS(0).OpenRecordset(SQL(0), dbOpenDynaset)
然后使用那条函数!

[ 本帖最后由 linevver123 于 2009-1-20 09:51 编辑 ]
作者: linevver123    时间: 2009-1-20 10:16
标题: to:版主
我试了一下,不行啊.是不是我技术没到家啊.
有空帮我看看!
回复里不能发附件,我把附件发到,最顶楼,谢谢!!!
作者: Henry D. Sy    时间: 2009-1-20 11:10
到底问题在哪里
作者: linevver123    时间: 2009-1-20 14:05
不好意思,忘了说关键了:我在窗体1("数据分析1"窗体页1)的"姓名"上单击后,窗体2(就是"数据分折",也就是页2),会自动同步到相应的记录,我在窗体1("数据分析1"窗体页1)的"姓名"上做了,单击触发事件,可是运行出时错了,说是找一引用的窗体!

版主,我把附档发在一楼,你有空帮我看看.
作者: Henry D. Sy    时间: 2009-1-20 21:25
Private Sub 姓名_Click()
    Dim intCurrentRcd As Integer
    intCurrentRcd = CInt(Me.员工ID1)
    Me.Parent.数据分析2.SetFocus
    DoCmd.GoToRecord , , acGoTo, intCurrentRcd
End Sub




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