2

ボウリングボールの測定値を保持し、楕円形の親指とインサートのスパン補正を計算するプログラムがあります。私の唯一の問題は、マクロを使用して (「Openform」と「goto record...new」を使用して) 新しいレコードを追加しようとしたときです。このボタンは、3021 実行時エラーを返すフォームのデータに基づく計算を必要とする楕円形のつまみを使用してレコードを入力するまで問題なく機能します。現在のデータベース レコードの編集も問題なく機能します。「楕円形の sin/cos の計算」表記の下で rs.edit でデバッグが停止します。

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」水平 (ex 値: 1) & Degree (ex 値: 35) フィールドと Forward/Reverse (ex 値) に値を入力する必要があります。 : .250) & 左/右ピッチ (ex 値: .250) (サムホールの右上)。次に、サム サイズ (combo151 afterupdate()) (ex 値: 15/16) を入力すると、プログラムは Sin/Cos/Diff/Cuts とテーブルの動きを計算して、目的の穴のサイズを実現します。興味深いことに、デバッガーを終了して、2 回目に親指のサイズを再入力すると、問題なく動作します。カットからカットまでのフィンガー グリップ ルーチン (テーブル データに基づく計算も使用) は、新しいレコードでも完全に機能します。私はDbase III +プログラマーで、アクセスを学び、適応しようとしています... どんな助け/提案も大歓迎です。私は単純なものが欠けていることを知っています。(補足: フォームの楕円計算ボタンは正しく機能しません)

*更新: 完全な修正ではありませんが、回避策を見つけました。親指のサイズを追加する前に押すと(度が入力されている場合は楕円形のルーチンがアクティブになります)、問題を処理しているように見える「レコードの保存」ボタンを追加しました。私は dbase III に比べてアクセスの初心者なので、間違っている可能性があります...しかし、レコードが書き込まれておらず、ルーチンが存在しないレコードに対して計算を実行しようとしていたと思います。このように、なぜレコードの保存ボタンがレコードの作成に効果的であり、楕円形のルーチンを計画どおりに終了させることができたのでしょうか。

4

0 に答える 0