access解决组合框无法满足大量数据的问题

access解决组合框无法满足大量数据的问题

  问题

  

   Access里面有组合框 可以很快地从多行记录中选择所需要的数据 但是如果记录超过 呢?选择就非常不方便了 我该怎么办?

  

  回答

  

  其实很多数据都可以分类(分层)来选择 而且我们可以预先筛选数据

  以下这个示例就是用重复打开同一个窗体类来完成多层次数据的选择

  当然 还包括预先筛选数据功能

  

  好了 现在开始

   建立一个窗体(testForm) 里面有一个文本框(text ) 一个按钮(Command )

   建立一个窗体(selectForm) 里面有一个列表框(list )

   在testForm中的文本框的 更新后 事件中写入以下代码以打开品名选择窗体(selectForm) 并对其中的列表框(list )的行来源(RowSource)进行赋值

  Private Sub Text _AfterUpdate()

    DoCmd OpenForm selectform

     这行代码就实现了BTYPE表的模糊检索 使用的是 WHERE 子句中的 LIKE 关键字进行通配

    Forms( selectform ) List RowSource = SELECT btype soncount btype UserCode btype FullName btype typeId FROM btype WHERE btype fullname like * & Text Value & *

  End Sub

  

  

   在testForm中的命令按钮的 单击 事件中写入以下代码以打开品名选择窗体 按分类检索

   然后再在testForm中输入以下代码以完成多次打开窗体本身并显示子类中数据的功能

  为了能够使代码重复利用 写了两个通用过程

  

  Option Compare Database

  Dim f

  

  Private Sub Form_KeyDown(KeyCode As Integer Shift As Integer)

     先设定窗体的 键预览 属性为 是

     本过程将加快你的输入速度

     如果按 ESCAPE 键 就关闭窗体

    If KeyCode = vbKeyEscape Then

      closeAllSelectForm SelectForm

    End If

  End Sub

  

  Private Sub List _DblClick(Cancel As Integer)

    checkYouSelect

  End Sub

  

  Private Sub List _KeyPress(KeyAscii As Integer)

     本过程实现全键盘操作

    If KeyAscii = Then

      checkYouSelect

    End If

  End Sub

  

  Sub closeAllSelectForm(strFormName As String)

     通用过程

     本过程用来关闭所有的指定名称的窗体

    For Each objForm In Forms

      If objForm Name = strFormName Then

        DoCmd Close acForm objForm Name

      End If

    Next objForm

  End Sub

  

  Sub checkYouSelect()

     通用过程

     检测你的选择

     如果发现 suncount 列为 (表示没有下一层了)

     就可以把你选定的产品名称放到文本框中了

    On Error Resume Next

    Set f = New Form_SelectForm

    Dim objForm As Form

    If List Column( ) = Then

      Forms( testform ) Text Value = List Column( )

      closeAllSelectForm SelectForm

    Else

      f Visible = True

      f List RowSource = SELECT btype soncount btype UserCode btype FullName btype typeId FROM btype WHERE parid= & List Value &

    End If

  End Sub

access解决组合框无法满足大量数据的问题

相关文章:

你感兴趣的文章:

标签云: