私は周りを見回しましたが、このSQLステートメントの問題を見つけることができません:
strSQL = "SELECT Directory.DisplayName, Department.DisplayName, Call.CallDate, Call.Extension, Call.Duration, Call.CallType, Call.SubType FROM (((Department INNER JOIN Directory ON Department.DepartmentID = Directory.DepartmentID) INNER JOIN Extension ON (Department.DepartmentID = Extension.DepartmentID) AND (Directory.ExtensionID = Extension.ExtensionID)) INNER JOIN Site ON Extension.SiteCode = Site.SiteCode) INNER JOIN Call ON Directory.DirectoryID = Call.DirectoryID WHERE (Call.CallDate)>=27/11/2012"
WHEREを変更しても、データベース内のすべての値が常に返されます(これを試みると、Excelが完全にハングするため、少なくともそうなると思います)、このSQLステートメントはAccessで完全に機能します(日付の前後に##がある場合)。これを修正する方法についてのアイデア。現在、さまざまな日付でユーザー入力を許可するSQLステートメントを作成しようとしていますが、最初にこのランダムなハードルを乗り越える必要があります。
編集:SQLデータベースの日付フィールドはDD / MM / YY HH:MM:SS形式であり、このクエリはVBA-EXCEL 2010で実行されます。
また、混乱を避けるために、ステートメントからTOP10を削除しました。データベース内のすべての行を取得するのに優れています。
私がアクティブにした現在のリファレンスは次のとおりです。MicrosoftXデータオブジェクト2.8ライブラリ
データベースはMSSQLであり、接続文字列を使用します:
Provider = SQLOLEDB; Server = #######; Database = #######; User ID =# #######;パスワード=########;