ボウリングボールの測定値を保持し、楕円形の親指とインサートのスパン補正を計算するプログラムがあります。私の唯一の問題は、マクロを使用して (「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 に比べてアクセスの初心者なので、間違っている可能性があります...しかし、レコードが書き込まれておらず、ルーチンが存在しないレコードに対して計算を実行しようとしていたと思います。このように、なぜレコードの保存ボタンがレコードの作成に効果的であり、楕円形のルーチンを計画どおりに終了させることができたのでしょうか。