2

我有一个程序可以保存保龄球测量并计算插入的椭圆形拇指和跨度校正。我唯一的问题是当我尝试使用宏添加新记录时(使用“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 相比,我是访问新手……但我相信记录没有写入,我的例程试图对不存在的记录进行计算。因此,为什么保存记录按钮在创建记录和允许椭圆例程按计划完成时有效。

4

0 回答 0