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

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

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

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

谢谢!

【问题讨论】:

    标签: sql ms-access forms listbox ms-access-2003


    【解决方案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:“现在我的意思不是从下到上颠倒顺序”的哪一部分在原始问题中不清楚?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-27
        • 1970-01-01
        相关资源
        最近更新 更多