Office中国论坛/Access中国论坛

标题: 如何用代码灵活更改Tab健顺序? [打印本页]

作者: goto2008    时间: 2009-12-6 12:45
标题: 如何用代码灵活更改Tab健顺序?
本帖最后由 goto2008 于 2009-12-6 12:46 编辑

如何用代码灵活更改回车的顺序?因为我的库控件多。
有时想根据不同人的习惯。提高录入效率汗。
请大家指教。。
作者: todaynew    时间: 2009-12-6 15:47
本帖最后由 todaynew 于 2009-12-6 16:37 编辑

[attach]40653[/attach]
1、写一个窗体的子程序
Private Sub MyTab(myField As String)
Dim ctls As Controls
Dim rs As New ADODB.Recordset
Dim ssql As String
Dim i As Long
ssql = "select * from 索引排序表"
rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Set ctls = Me.Form.Controls
For i = 1 To rs.RecordCount
    ctls(rs("字段")).TabIndex = rs(myField)
    rs.MoveNext
Next
End Sub

2、引用该子程序
Private Sub 更改索引_Click()
Dim a As Long
a = nz(InputBox("请选择顺序:1=原顺序;2=现顺序"),1)
Select Case a
    Case 1
        Call MyTab("原顺序")
    Case 2
        Call MyTab("现顺序")
    Case Else
        MsgBox "选择错误!"
End Select
End Sub

[attach]40652[/attach]
作者: goto2008    时间: 2009-12-6 20:21
先下来学习下。。。呵
作者: todaynew    时间: 2009-12-6 20:33
本帖最后由 todaynew 于 2009-12-6 20:39 编辑
先下来学习下。。。呵
goto2008 发表于 2009-12-6 20:21

想了一下,前面的方法十分不灵活。似乎可以搞一个更为通用的方法,于是重写了如下:

[attach]40656[/attach]
[attach]40657[/attach]

Option Compare Database
Const TabMax As Integer = 8

Private Sub 更改索引_Click()
Dim ctls As Controls
Set ctls = Me.Form.Controls
Select Case Me.选项
    Case 1
        If ctls(Me.控件.Value).TabIndex > 0 Then
            ctls(Me.控件.Value).TabIndex = ctls(Me.控件.Value).TabIndex - 1
            Me.Tab.Value = ctls(Me.控件.Value).TabIndex
        End If
    Case 2
        If ctls(Me.控件.Value).TabIndex < TabMax Then
            ctls(Me.控件.Value).TabIndex = ctls(Me.控件.Value).TabIndex + 1
            Me.Tab.Value = ctls(Me.控件.Value).TabIndex
        End If
End Select
End Sub


Private Sub 工号_GotFocus()
    Me.控件.Value = Me.ActiveControl.Name
    Me.Tab.Value = Me.ActiveControl.TabIndex
End Sub


Private Sub 工量ID_GotFocus()
    Me.控件.Value = Me.ActiveControl.Name
    Me.Tab.Value = Me.ActiveControl.TabIndex
End Sub

。。。。
。。。。
。。。。
作者: zxklzxm1983    时间: 2009-12-6 21:31
学习




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