অ্যাক্সেস ডাটাবেস থেকে তথ্য পাওয়ার জন্য আমি অ্যাক্সেস ২013 এ এসকিউএল ব্যবহার করতে পারি এবং এটি সরাসরি একটি সংযোগে এসকিউএল ব্যবহার করে কাজ করে, কিন্তু এখন আমি এটি পরিবর্তে ভিবিএ থেকে চালাতে চাই যাতে আমি এসকিউএলে কিছু ভেরিয়েবল ব্যবহার করতে পারি।
আমি এই লিঙ্কটি খুঁজে পেয়েছি, এটি সংশোধন করেছি এবং এটি কিছু সহজ এসকিউএল বিবৃতিতে কাজ করে, কিন্তু অন্যদের নয়।
ভিবিএ সঙ্গে এসকিউএল প্রশ্নের চালান এবং তথ্য সঙ্গে শীট পূরণ করুন
আমি একটি ত্রুটি পেতে:
রান টাইম ত্রুটি -2147217883 (80040e25) নতুন হ্যান্ডেলগুলি পাওয়ার আগে সারি হ্যান্ডলগুলি অবশ্যই মুক্তি পেতে হবে।
আমি এই ত্রুটির উপর অনেক অনুসন্ধান করেছি এবং বিভিন্ন জিনিস চেষ্টা করেছি, কিন্তু অবশ্যই বুঝতে পারছি না। আমি SQL দীর্ঘ / জটিল জানি, কিন্তু এটি অ্যাক্সেস এবং এক্সেল সরাসরি কাজ করে।
এখানে বর্তমান কোড:
Sub Get_SQLData()
'modified from from https://superuser.com/questions/813077/execute-sql-query-with-vba-and-fill-sheet-with-data
Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
strFile = "C:\mydb.accdb"
strCon = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & strFile
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon
'JAJ set my SQL RAW first
strSQL = "SELECT RAWDATA_Incidents.ID, RAWDATA_Incidents.[Incident Number], RAWDATA_Incidents.[Categorization Tier 1], RAWDATA_Incidents.[Categorization Tier 2], RAWDATA_Incidents.[Categorization Tier 3], RAWDATA_Incidents.Priority, RAWDATA_Incidents.Urgency, RAWDATA_Incidents.Impact, RAWDATA_Incidents.[Reported Date], RAWDATA_Incidents.[Service Type], RAWDATA_Incidents.[Closure Product Category Tier1], RAWDATA_Incidents.[Closure Product Category Tier2], RAWDATA_Incidents.[Closure Product Category Tier3], ClosureProductName.ClosureProductName, RAWDATA_Incidents.Status, RAWDATA_Incidents.[Closed Date], RAWDATA_Incidents.[Product Name], OpsCatTreeFaultMode.FaultMode, BusinessService.MMServiceID, ([RAWDATA_Incidents]![Closed Date]-[RAWDATA_Incidents]![Reported Date])*1440 AS Expr2, IIf([RAWDATA_Incidents]![Priority]='Critical' Or [RAWDATA_Incidents]![Priority]='High',788,394) AS Expr3, BusinessService.Name, BSDependsOnAC.MMServiceID, CI.CIName, AccessChannel.Name, BusinessService.ID " _
& "FROM OpsCatTreeFaultMode INNER JOIN (RAWDATA_Incidents INNER JOIN (CI INNER JOIN ((ITSystemService INNER JOIN (BusinessService INNER JOIN ((AccessChannel INNER JOIN ACDependsOnITSS ON AccessChannel.ACID = ACDependsOnITSS.ACID.Value) INNER JOIN BSDependsOnAC ON AccessChannel.ACID = BSDependsOnAC.ACID.Value) ON BusinessService.ID = BSDependsOnAC.MMServiceID.Value) ON (ITSystemService.ITSSID = ACDependsOnITSS.ITSSID.Value) AND (ITSystemService.ITSSID = ACDependsOnITSS.ITSSID.Value)) INNER JOIN ClosureProductName ON ITSystemService.ITSSID = ClosureProductName.ITSS.Value) ON CI.CIID = ITSystemService.CIID) ON RAWDATA_Incidents.[Closure Product Name] = ClosureProductName.ClosureProductName) ON OpsCatTreeFaultMode.OpsCatTreeName = RAWDATA_Incidents.[Categorization Tier 3]"
Set rs = CreateObject("ADODB.RECORDSET")
rs.activeconnection = cn
rs.Open strSQL
Sheet1.Range("A1").CopyFromRecordset rs ' fails here - gives handles error.
rs.Close
cn.Close
Set cn = Nothing
End Sub
কোন সাহায্য প্রশংসা করা হবে।
rs.requery
পরে rs.Open strSQL
আমি আত্মবিশ্বাসী না হলেও এটি সাহায্য করবে