【发布时间】:2012-01-13 06:00:31
【问题描述】:
我有一个作业跟踪系统,并且有一个查询会返回所有过期作业的结果。 我有一个表格,可以逐个显示这些作业,并且有两个按钮(作业已完成,作业未完成)。未完成只显示下一条记录。 如果按下“已完成”按钮,我无法找到访问当前记录以更新其内容的方法,我能得到的最接近的是代表表单中记录位置的长数字。
获取表格中记录索引的VBA如下。
Sub Jobcompleted(frm As Form)
Dim curr_rec_num As Long
curr_rec_num = frm.CurrentRecord
End Sub
这是我第一次接触 VBA,经过一个小时的搜索,我找不到任何可以解决问题的方法。 我会以完全错误的方式解决这个问题吗?在 Microsoft Access 2007 中工作
更多信息所有表格均已标准化
Vehicle Table:包含vehicle_id(pk),以及rego和model等
作业表:包含 job_id(pk)、vehicle_id(fk) 和其他关于需要发生的事情的信息,以及下一次发生日期、每次作业发生之间的天数(所有作业重复)和其他信息
作业历史表:包含job_history_id(pk)、job_id(fk)、完成日期和cmets
当作业完成按钮被按下时,它应该在作业历史表中创建一个带有当前日期、任何 cmets 和作业 ID 的新条目
这是我正在尝试使用的脚本
Private Sub Command29_Click()
Dim strSQL1 As String
Dim strSQL2 As String
Set Rs = CurrentRs
Set db = CurrentDb
strSQL1 = "INSERT INTO completed_jobs(JOB_ID, DATE_COMPLETED, COMMENTS) VALUES " & Rs!job.ID & ", " & Date
db.Execute strSQL1, dbFailOnError
strSQL2 = "UPDATE job SET JOB_NEXT_OCCURANCE = JOB_NEXT_OCCURANCE+JOB_RECURRANCE_RATE WHERE job.ID = Rs!job.ID"
db.Execute strSQL2, dbFailOnError
End Sub
注意:Set Rs = CurrentRs 行完全不正确,我相信这是我需要弄清楚的吗?这在按钮按下时调用
我发布了一张显示表单的图片(非连续)。
@HansUp,我明白你在说什么,但我认为它不太适用(我认为我第一次没有提供足够的信息让你理解)
@sarh 我相信你所说的这个 Recordset 是我需要的,但是我不知道如何使用它,有什么提示吗?
@Matt 我 90% 确定我使用的是绑定表单(就像我说的,Access 的新手,一直在查看人们提出的所有建议并在学习过程中学习)。该作业当然有一个 ID(只是未显示,不需要可见),但我将如何访问它以对其执行操作?我可以做的 SQL,与 Access/VBA 集成我是新手
【问题讨论】:
-
“我是不是走错了路?”我怀疑你可能做得很好,访问很容易。你的表格是连续表格吗?为什么您无法访问数据?您的记录集是否复杂,因此无法更新?您是否设计了包含唯一 ID 的表格?您的工作是从阅读关系数据库开始的吗?您是否查看过任何 Access 模板?
-
顺便说一句,如果另一个人也支持您的问题,您将有足够的声誉来发布您的表单图像,这可能会有所帮助,那么它可能不会:)
-
我会支持可能的图像上传,而且您似乎正在使用绑定表单,因此应该能够包含一个带有作业唯一编号的字段(我当然希望它有一个)然后您可以在更新 SQL 中引用此文本字段。
-
不确定 Stack Overflow 警报是如何工作的,但我已经发布了更多信息
-
如果您在某人姓名的开头附加一个 at 符号,则会通知该人,但是,您只能在每条评论中通知一个额外的人。将自动通知帖子的所有者。