Office中国论坛/Access中国论坛

标题: 麻烦高手老看一下,这样的vba 怎样写的简短些 [打印本页]

作者: popo559    时间: 2009-3-12 17:40
标题: 麻烦高手老看一下,这样的vba 怎样写的简短些
本帖最后由 popo559 于 2009-3-12 17:42 编辑

编号少的话可以自己写写,多的话就麻烦大了,请高手指点一个好的方法学习学习,先谢拉

Private Sub Command5_Click()
DoCmd.RunSQL "UPDATE 车号 SET 车号.是否已空 =no  WHERE 车号.编号=5"
Forms!开单!车号 = "5"
DoCmd.Close
End Sub

Private Sub Command6_Click()
DoCmd.RunSQL "UPDATE 车号 SET 车号.是否已空 =no  WHERE 车号.编号=6"
Forms!开单!车号 = "6"
DoCmd.Close
End Sub

Private Sub Command7_Click()
DoCmd.RunSQL "UPDATE 车号 SET 车号.是否已空 =no  WHERE 车号.编号=7"
Forms!开单!车号 = "7"
DoCmd.Close
End Sub

Private Sub Command8_Click()
DoCmd.RunSQL "UPDATE 车号 SET 车号.是否已空 =no  WHERE 车号.编号=8"
Forms!开单!车号 = "8"
DoCmd.Close
End Sub

Private Sub Command9_Click()
DoCmd.RunSQL "UPDATE 车号 SET 车号.是否已空 =no  WHERE 车号.编号=9"
Forms!开单!车号 = "9"
DoCmd.Close
End Sub

Private Sub Command10_Click()
DoCmd.RunSQL "UPDATE 车号 SET 车号.是否已空 =no  WHERE 车号.编号=10"
Forms!开单!车号 = "14"
DoCmd.Close
End Sub


Private Sub Form_Load()
      Me.KeyPreview = True
      
      If DLookup("是否已空", "车号", "编号=1") = 0 Then
      Me.Command1.Enabled = False
      End If
       If DLookup("是否已空", "车号", "编号=2") = 0 Then
      Me.Command2.Enabled = False
      End If
       If DLookup("是否已空", "车号", "编号=3") = 0 Then
      Me.Command3.Enabled = False
      End If
       If DLookup("是否已空", "车号", "编号=4") = 0 Then
      Me.Command4.Enabled = False
      End If
       If DLookup("是否已空", "车号", "编号=5") = 0 Then
      Me.Command5.Enabled = False
      End If
       If DLookup("是否已空", "车号", "编号=6") = 0 Then
      Me.Command6.Enabled = False
      End If

end sub

作者: todaynew    时间: 2009-3-12 19:12
本帖最后由 todaynew 于 2009-3-12 19:13 编辑

没看明白,为什么要用这么多按钮?
作者: popo559    时间: 2009-3-12 21:01
恩,以后按钮可以换成图片,主要目的是给操作员直观的感觉,按钮按下去,这个车号就算是被占用了,但是如果车号很多的话(当然也不会无限多下去,总是有个固定的数),要一句一句这样写下去很麻烦,我是想有没有简单的办法。vba水平有限。。。。
作者: ACMAIN_CHM    时间: 2009-3-12 21:06
Private Sub Command5_Click()
    cmdCommon 5
    'cmdCommon replace(Me.ActiveControl.Name,"Command") //also available - ACMAIN
End Sub
Private Sub Command6_Click()
    cmdCommon 6
End Sub
Private Sub Command7_Click()
    cmdCommon 7
End Sub
Private Sub Command8_Click()
    cmdCommon 8
End Sub
Private Sub Command9_Click()
    cmdCommon 9
End Sub
Private Sub Command10_Click()
    cmdCommon 10
End Sub

Private Sub cmdCommon(iNum as integer)
    DoCmd.RunSQL "UPDATE 车号 SET 是否已空 =no  WHERE 编号=" & iNum
    Forms!开单!车号 = iNum
    DoCmd.Close
end sub





Private Sub Form_Load()
      Me.KeyPreview = True
      
      Me.Command1.Enabled = not isnull(DLookup("是否已空", "车号", "编号=1"))
      Me.Command2.Enabled = not isnull(DLookup("是否已空", "车号", "编号=2"))
      Me.Command3.Enabled = not isnull(DLookup("是否已空", "车号", "编号=3"))
      Me.Command4.Enabled = not isnull(DLookup("是否已空", "车号", "编号=4"))
      Me.Command5.Enabled = not isnull(DLookup("是否已空", "车号", "编号=5"))
      Me.Command6.Enabled = not isnull(DLookup("是否已空", "车号", "编号=6"))
end sub



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .

作者: popo559    时间: 2009-3-12 21:15
速度好快,,谢啦,这就去试试看
作者: tz-chf    时间: 2009-3-12 21:36
Command10_Click()编号10,控件显示为14,不知道谁对谁错




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