MS Access 2003 - 自动在表单的列表框中显示最后一条记录,而不是第一条

Posted

技术标签:

【中文标题】MS Access 2003 - 自动在表单的列表框中显示最后一条记录,而不是第一条【英文标题】:MS Access 2003 - Automatically show last records in list box on a form rather than first 【发布时间】:2010-02-26 17:20:02 【问题描述】:

所以我有一个表单,它有一个像分类帐一样显示的列表框。我的问题是如何让它显示最后的记录(或者让滚动条默认位于底部而不是顶部),而不是默认的前几个。

现在我并不是说从下到上而不是从上到下颠倒顺序(尽管学习如何做这将是一件很酷的事情),只是简单地拥有列表的底部(就滚动而言bar) 显示和默认值,因此它始终显示最后 10 条左右的记录(基于我制作列表框的大小)。

所以我认为这很简单,但话又说回来,我显然不知道?!?!

谢谢!

【问题讨论】:

【参考方案1】:

在合适的事件中,比如当前事件:

 Me.ListX.Selected(Me.ListX.ListCount - 1) = True

【讨论】:

【参考方案2】:

您可以在表单加载事件中添加一些代码,以便它执行此操作:

YourListBox.SetFocus
YourListBox.ListIndex = YourListBox.ListCount - 1
YourListBox.Selected(YourListBox.ListCount - 1) = False

它基本上选择了列表框中的最后一项,所以它会向下滚动到它,然后取消选择它。

【讨论】:

所以...这正是我一直在寻找的想法。但是这会导致错误:运行时错误 7777:您错误地使用了 ListIndex 属性。 谢谢!我很感激;这就是我所追求的……一旦我能成功! 在我把 SetFocus 线放在那里之前,我遇到了同样的错误。 在单步执行时我注意到它在第二行代码中被抛出错误.... 我是说当我取出第一行(ListBox.SetFocus)时,我得到了你提到的同样的错误。放入后,错误没有出现。所以请确保它在那里正确。【参考方案3】:

我知道这是以后的事,但也许这会对将来遇到此线程的人有所帮助。这是我用来转到最后一条记录然后取消选择最后一条记录的代码。

 YourListBox.SetFocus
 YourListBox.Selected(YourListBox.ListCount - 1) = True
 YourListBox.Selected(YourListBox.ListCount - 1) = False

【讨论】:

【参考方案4】:

您是如何设置列表框项的?它们来自数据库吗?如果是,那么您需要使用“order by columnName”更新 SQL 语句。

【讨论】:

是的,它是一个 sql 语句,它只选择我想要的数据集并且工作正常。但我并不是指从左到右的“排序依据”,等等......而是使列表框对象始终让滚动条从底部而不是顶部开始 @Gerardo Abdo:“现在我的意思不是从下到上颠倒顺序”的哪一部分在原始问题中不清楚?

以上是关于MS Access 2003 - 自动在表单的列表框中显示最后一条记录,而不是第一条的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2003 - 有没有办法以编程方式定义图表的数据?

MS Access 2003 - Access 表单上的嵌入式 Excel 电子表格

ms-access 2003:表单打不开!帮助!

MS Access 2003 - Unbound Form 使用 INSERT 语句保存到表中;子表单呢?

Ms Access,双击列表框元素以更新表单

MS Access 2003 - 格式化导致列表框问题