【发布时间】:2009-08-28 12:45:09
【问题描述】:
我是 ms-access 的新手,我已经开始研究有效的代码。不幸的是,它完全没有注释。
Private Sub OKbut_Click()
Dim dt As Date
dt = Now()
Set rstOrder = New ADODB.Recordset
rstOrder.Open "tblUsers", CurrentProject.Connection, adOpenStatic, adLockOptimistic
If rstOrder.Supports(adAddNew) Then
With rstOrder
.AddNew
.Fields("title") = title
.Fields("first") = first
.Fields("last") = last
.Fields("gender") = gender
.Fields("date_submitted") = dt
.Update
End With
End If
rstOrder.Close
Set rstOrder = Nothing
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT id FROM tblUsers WHERE date_submitted=#" & dt & "#")
duser = rs.Fields("id")
rs.Close
Set rs = Nothing
Do While Not user_defined(duser)
DoCmd.OpenForm "define_user_frm", , , , , acDialog
Loop
'Forms(0).user_lst.RowSource = "select * from users where id=" & duser
Me.SetFocus
DoCmd.Close
End Sub
- Now() 函数有什么作用?
- ADODB.Recordset 只是一种连接表的方法?
- adOpenStatic、adLockOptimistic 这些是什么?
- 我们为什么要检查这个:如果 rstOrder.Supports(adAddNew) ?
- 为什么我们需要这样做:设置 rstOrder = Nothing?
- 这是做什么的:?不做用户定义(duser) DoCmd.OpenForm "define_user_frm", , , , , acDialog 循环
【问题讨论】:
-
最好先在 MS Access 上获得一些教程,然后尝试学习代码。[在我看来]
-
取决于您从哪里开始 - 教程需要相当明确地成为 MS Access VBA。如果您有 VBA/VB.OLD 经验,那么上述问题是明智的。如果您只是在阅读上述内容时遇到困难,那么退后一步,一些基础知识将会有所帮助。
-
只要阅读 ADO 教程就可以解决 90% 的问题,剩下的 10% 只是 VBA 帮助。
-
好吧,ADO 教程不会解释为什么在代码的后面会打开一个 DAO 记录集。老实说,这对我来说看起来像是非常糟糕的代码。
标签: ms-access