我们常常在编写代码的时候是以程序员的思想参与编写的,而有时会忽略编程本身的思想,这就需要我们程序员的思维向编程本身的思维转变。如何才能做到这一点呢?
答案为以编程的思维去做编程,或许有人看到我这一句话是废话,说我是在瞎说。在我写这篇文章的时候我的水平仅停留在vb上,让我们来看一个例子。
上述图为机房收费系统中基本数据设定的窗体,在这里我有一个非常显眼的知识,那就是怎么能够标识textbox中的文本是否已经被修改 。让我先来量示一下我正确的做法。
Dim mcclean As Boolean rem:mcclean用来标识是否被修改,定义为布尔型
Dim mybookmark
Dim mrcbasic As ADODB.Recordset
Private Sub form_load()
Dim txtsqlbasic As String
Dim msgtextbasic As String
Dim ctrl As Control
Rem:使textbox不能用
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
ctrl.Enabled = False
End If
Next
Rem:连接basicdata_info
txtsqlbasic = "select * from basicdata_info"
Set mrcbasic = executesql(txtsqlbasic, msgtextbasic)
Rem:加载数据到基本数据设定窗体
If mrcbasic.EOF = False Then
txtrate.Text = mrcbasic!Rate
txttmprate.Text = mrcbasic!tmprate
txtunittime.Text = mrcbasic!unittime
txtleasttime.Text = mrcbasic!leasttime
txtpreparetime.Text = mrcbasic!preparetime
txtlimitcash.Text = mrcbasic!limitcash
End If
mybookmark = mrcbasic.Bookmark
mcclean = False rem:没被修改
End Sub
Rem:修改
Private Sub cmdmodify_click()
mcclean = True rem:可以修改
Dim ctrl As Control
Rem:使textbox能用
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
ctrl.Enabled = True
End If
Next
mybookmark = mrcbasic.Bookmark
End Sub
Rem:确定
Private Sub cmdok_click()
Dim txtsqlbasic As String
Dim msgtextbasic As String
If mcclean = False Then rem:如果没被修改
MsgBox "请先修改数据!", vbOKOnly + vbInformation, "温馨提示"
Exit Sub
Else
txtsqlbasic = "select * from basicdata_info"
Set mrcbasic = executesql(txtsqlbasic, msgtextbasic)
If mrcbasic.EOF = False Then
mrcbasic!Rate = Trim(txtrate.Text)
mrcbasic!tmprate = Trim(txttmprate.Text)
mrcbasic!unittime = Trim(txtunittime.Text)
mrcbasic!leasttime = Trim(txtleasttime.Text)
mrcbasic!preparetime = Trim(txtpreparetime)
mrcbasic!limitcash = Trim(txtlimitcash)
mrcbasic.Update
End If
End If
mrcbasic.Bookmark = mybookmark
MsgBox "修改成功!", vbOKOnly + vbInformation, "温馨提示"
End Sub
看上述代码中的“rem”部分,这个“rem”的过程就是对是否被修改的一个定义的过程,如果在“确定”部分直接用mcclean,那么这个功能是不能实现的,解释到这里,我不知读者是否能看懂我所要讲述的。欢迎大家留言来一起探讨!!!