我有一个程序可以保存保龄球测量并计算插入的椭圆形拇指和跨度校正。我唯一的问题是当我尝试使用宏添加新记录时(使用“Openform”和“goto record...new”)。这个按钮完美无缺,直到我使用椭圆拇指输入记录,这需要基于返回 3021 运行时错误的表单中的数据进行计算。当前数据库记录的编辑也可以完美运行。Debug 挂在 rs.edit 的“计算椭圆 sin/cos”符号下。
Private Sub Combo151_AfterUpdate()
Call OvalCalc
End Sub
Private Sub OvalCalc()
Me.Hole1.Value = Me.Combo151.Column(2)
Me.Hole1f.Value = Me.Combo151.Column(1)
Dim db As Database
Dim rs As Recordset
Dim cutcount As Integer
Dim Cut As Integer
Dim CutnameH As String
Dim CutnameV As String
Set db = CurrentDb
Set rs = db.OpenRecordset("select * FROM MeasureT Where CustomerID=" & Me.CustomerID)
If OvalDegree <> 0 Then
'Calculate Oval Sin/Cos
Refresh
rs.Edit
rs.Fields("OvalVert") = Hole1
rs.Update
rs.Edit
rs.Fields("OvalDiff") = Round(OvalHoriz - OvalVert, 3)
rs.Update
rs.Edit
rs.Fields("OvalSin") = Round([OvalDiff] * Sin([OvalDegree] * 1.74532925199433E-02), 3)
rs.Fields("OvalCos") = Round([OvalDiff] * Cos([OvalDegree] * 1.74532925199433E-02), 3)
rs.Update
If OvalSin > OvalCos Then
rs.Edit
rs.Fields("OvalCuts") = Round(OvalSin / 0.036, 3)
我的完整数据库可在以下位置下载: https ://drive.google.com/file/d/0B0n3PtRkzdg4UXNDZXg3QTFfeVk/view
MainMenuF(包含名称搜索和添加新按钮)在测试椭圆例程时,应为“OVAL THUMB”水平(例如值:1)和度数(例如值:35)字段和正向/反向(例如值)输入值: .250) & Left/Right Pitches (ex value: .250) (在拇指孔的上方和右侧)。然后在输入拇指尺寸(combo151 afterupdate())(ex 值:15/16)后,程序将计算 Sin/Cos/Diff/Cuts 和工作台移动以达到所需的孔尺寸。有趣的是...如果您结束调试器并第二次重新输入拇指大小...它可以完美运行。即使在新记录上,切割手指握法(也使用基于表格数据的计算)也能完美运行。我是一名 Dbase III+ 程序员,正在努力学习和适应访问... 任何帮助/建议将不胜感激。我知道我错过了一些简单的东西。(旁注:表格上的椭圆形计算按钮无法正常工作)
*更新:不是一个完整的修复,但我找到了一个解决方法。我添加了一个“保存记录”按钮,在添加拇指大小之前按下该按钮(如果输入了学位,则会激活椭圆例程)似乎可以解决这个问题。我可能是错误的,因为与 dbase III 相比,我是访问新手……但我相信记录没有写入,我的例程试图对不存在的记录进行计算。因此,为什么保存记录按钮在创建记录和允许椭圆例程按计划完成时有效。