最近、Accessデータベースのバックエンドを作成してSQL Serverに移行しました。私は、VBAコードを使用して、SQL Serverバックエンドへの接続を作成し、VBレコードセットに格納された結果でパススルークエリを実行しようとしています。これを試すと、クエリは通過しません。AccessでのDAOレコードセットの基礎となるSQL Serverパススルークエリ
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strConnect As String
strConnect = "DRIVER=SQL Server;SERVER=55.55.55.55 SQLExpress;UID=UserName;PWD=Password"
Set db = OpenDatabase("DBName", dbDriverNoPrompt, True, strConnect)
Set rs = db.OpenRecordset("SELECT GetDate() AS qryTest", dbOpenDynaset)
MsgBox rs!qryTest
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
私は取得しています問題は完全に適切なGetDate()
SQL Serverの機能は、「式でユーザー定義関数 『のGetDate』」ランタイムエラー3085を返しているということです。 MS-Access Query Builderのパススルーと同じクエリをVBAコードの外に作成すると、正常に実行され、サーバーの日付と時刻が返されます。
"AccessデータベースのバックエンドをSQL Serverに移行しました"私の提案は、DAOからADOレコードセットに移行することです。慣れ親しんだビューでクエリが必要な場合はパススルーが優れていますが、コードでのみ必要な場合はADOを使用してください) –
これは最終的な計画です。不幸にも私は4年前に他の人が作成したDBを管理している唯一の技術者であり、私が行くにつれて増えていく環境にいます。一度に1ステップですが、計画はADOに移行することです....最終的に! – Mike