VBAを使用してMS Accessにアプローチしようとしています。私がしたいコールの1つは、最後に提供された番号を挿入することです。これは、最後に入力された番号を選択し、それから1つずつ反復する必要があります。私は単にforループでこれを配置して30個のループを作成することができますが、この時点でSQL構文を正しいものにしようとしています。選択された挿入物に問題があるようです。私が受け取っているエラーは、「クエリ入力には少なくとも1つのテーブルまたはクエリが含まれている必要があります」です。MS最後の番号から挿入するアクセスクエリ
Dim StrSSQL As String
StrSQL = "INSERT INTO MyQueryTable (MYNUMBER) VALUES((Select top 1 MYNUMBER + 1 from MyQueryTable order by MYNUMBER desc));"
DoCmd.SetWarnings False
DoCmd.RunSQL StrSQL
DoCmd.SetWarnings True
ただし、簡単な挿入を"INSERT INTO MyQueryTable (MYNUMBER) VALUES(999)"
として実行すると問題はありません。
FYI AutoIncrement列は、このために設計されており、並行性に大きな問題を引き起こさないという利点があります。 –
( 'NUMBER'は予約語なので、' [NUMBER] 'としてエスケープします。) –
正しい番号ですが、手動で挿入すると変更できるので、この番号は必要ありません。 (一意のIDではありません)このマクロを使用すると、最後に使用された番号の上に50個の挿入点が生成されるはずです。一意の番号ではなく、自動インクリメントを使用する効率的な方法がないかぎりですか? – Brad