タイトルからして、これは何度も何度も回答されているように思えますが、一連の理解できない問題があります。また、投稿を通じて助けを求めるのはこれが初めてなので、言及するのを忘れている可能性があります。
Function update_location_id()
Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL As String
Set db = CurrentDb
strSQL = "select id from location"
Set rs = db.OpenRecordset(strSQL)
MsgBox (rs.RecordCount)
End Function
レコードを取得できなかった理由を突き止めるためだけに、この関数からほとんどすべてのコードを削除しました。このコードは、「パラメーターが少なすぎます。「set rs =
...」行にあると予想されるパラメーターを生成します。
ただし、選択クエリの ID を * に変更すると、正常に動作します。ただし、1 が返されます。これは、現在、locations テーブルに合計 3 つのレコードがあるため、やや混乱しています。
必要な場合に備えて、ロケーションテーブルは次のようになります
id description
1 "Location 1"
2 "Location 2"
3 "Location 3"
これにより、髪の毛が抜けてしまい、情報を取得するなどの基本的なデータベース操作を実行できないと、プロジェクトを進めることができなくなります。
参考資料: Visual Basic for Applications、Microsoft Access 14.0 オブジェクト ライブラリ、OLE オートメーション、Microsoft Office 14.0 Access データベース エンジン オブジェクト、Microsoft Internet Controls。