私はいくつかのチームの大きな入力基準になるリンクされたODBCテーブルを使用してMS Accessでフォームを構築しています。私はそれが大半を持っているが、自動的にメインテーブルのプライマリIDを生成して、エージェントがそうする必要がないようにテキストボックスを設定しようとしています。効果的な自動番号のSQLでの構築。別のテーブルで作成されたIDを使用してMS Accessでテーブルのフィールドを自動集計する方法
ODBCテーブルの世代とローリングの編集が正常に行われており、生成されたコードを関連するフィールドに取り込むだけです。私は、ボタンのクリックにマクロを使用して、次のコード持っています:
Private Sub cmdSubmitDetails_Click()
Dim strSQL As String
Dim rst As Recordset
Dim db As Database
Dim para As String
para = InputBox("Please Enter Your User ID:")
strSQL = "SELECT Min([P_ID]) AS ID FROM QA_IDS WHERE EV_ID = " & para & ";"
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL)
Me.ID.Text = rst!ID
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
Me.IDは私が移入しようとしている分野です。行内でエラーが発生しています
Set rst = db.OpenRecordset(strSQL)
実行時エラー '3464'データ型の不一致が条件式に含まれています。
これはMS Accessの最初の本当の話です。私は解決策をオンラインで探しました。どんな助けでも大歓迎です。
条件式 'WHERE EV_ID = "&para & ";"にデータ型の不一致がありますか?おそらく文字列を期待していないのでしょうか?とにかく、AccessデザインGUIを通じてデフォルト値を設定する方が良いかもしれません。 – anotherfred
ありがとうございます。それをテストするために、私はクエリをハード値に変更し、うまくいきました。入力は55231の数値ですが、ODBCテーブルのデータ型はVarCharなので、文字列が動作することを期待していました。より一致する可能性が高い別のデータ型はありますか? –
私はまた、 "SELECT * FROM qrySELECT_MINIMUM_ID"を使用してAccessでパラメータを使用してクエリを構築しようとしましたが、期待される1パラメータが0になってエラーが発生しました。 –