ODBC के माध्यम से डेटाबेस क्वेरी करते समय VBA स्वचालन त्रुटि


2

मैं अपने ODBC डेटाबेस के कुछ डेटा को क्वेरी करने के लिए एक्सेल मैक्रो को चलाने की कोशिश कर रहा हूं। मेरे डेटाबेस का विवरण नीचे दिया गया है:

DSN : sgdv UID : l8qc1 पासवर्ड : l8qc1 सर्वर :sgdv

मैं डेटाबेस से डेटा को क्वेरी करने की कोशिश कर रहा हूं लेकिन वीबीए लाइन के लिए नीचे की तरह त्रुटि दिखाता है Connection.Open "DSN=sgdv"

रन-टाइम एरर -2147217843 (80040e4d) ऑटोमेशन एरर

मैं त्रुटि की पहचान नहीं कर सकता। कृपया मदद कीजिए। नीचे मेरा कोड है

Sub ReadDB()
Dim mainWorkBook As Workbook
Dim intRowCounter
Set mainWorkBook = ActiveWorkbook
intRowCounter = 2
mainWorkBook.Sheets("Sheet2").Range("A2:Z100").Clear
Set Connection = CreateObject("ADODB.Connection")
Connection.Open "DSN=sgdv"
strQuery = "SELECT * FROM DEDICT01 where DEDICT01.SER_SN='Z1E80R4C'"
Set resultSet = Connection.Execute(strQuery)
Do While Not resultSet.EOF
    mainWorkBook.Sheets("Sheet2").Range("A" & intRowCounter).Value = resultSet.Fields("DEDICT01.CUST_PARTS_NO").Value
  resultSet.movenext
Loop
resultSet.Close
End Sub

मैंने कार्यक्रम को संशोधित किया है और मेरी नई कोडिंग है

Sub ReadDB()
Dim mainWorkBook As Workbook
Dim intRowCounter
Set mainWorkBook = ActiveWorkbook
intRowCounter = 2
mainWorkBook.Sheets("Sheet2").Range("A2:Z100").Clear
Set Connection = CreateObject("ADODB.Connection")
Connection.ConnectionString = "DSN=sgdv;UID=l8qc1;PWD=l8qc1;"
Connection.Open
strQuery = "SELECT * FROM DEDICT01 where DEDICT01.SER_SN='Z1E80R4C'"
Set resultSet = Connection.Execute(strQuery)
Do While Not resultSet.EOF
    mainWorkBook.Sheets("Sheet2").Range("A" & intRowCounter).Value = resultSet.Fields("DEDICT01.CUST_PARTS_NO").Value
  resultSet.movenext
Loop
resultSet.Close
End Sub

मेरी पिछली त्रुटि चली गई है लेकिन अब मुझे लाइन में नई त्रुटि मिल रही है

mainWorkBook.Sheets("Sheet2").Range("A" & intRowCounter).Value = resultSet.Fields("DEDICT01.CUST_PARTS_NO").Value

त्रुटि है

रन-टाइम त्रुटि '3265':

अनुप्रयोग-परिभाषित या ऑब्जेक्ट-डिफ़ाइंड त्रुटि


1
कौन सी लाइन त्रुटि उत्पन्न कर रही है?
एक्सेलेल

मुझे नहीं पता कि किस लाइन में त्रुटि देखने को मिलती है ...
ड्रैगनट्रॉन

VBA संपादक विंडो में, कर्सर को इस सब के लिए कोड में कहीं रखें और F8 दबाएं। यह आपके कोड को एक बार में एक पंक्ति में ले जाएगा। बस F8 दबाएं जब तक आपको कोई त्रुटि नहीं मिलती। त्रुटि संदेश पॉप अप होने पर आप जिस लाइन पर थे उस पर ध्यान दें।
एक्सेल

मैंने @Excellll कहा था। VBA के संपादक में मैंने F8 को दबाए रखा । रेखा Connection.Open "DSN=sgdv"ने पीले रंग का प्रकाश डाला। जब मैंने इस लाइन पर F8 दबाया तो त्रुटि कोड उजागर होने के बाद।
Dragonborn

जवाबों:


1

समस्या आपकी कनेक्शन स्ट्रिंग है। ध्यान दें कि आपने अपने प्रश्न में UID, पासवर्ड आदि जानकारी का उल्लेख किया है, लेकिन यह जानकारी आपके कोड में कहीं नहीं दिखाई देती है। डेटाबेस से कनेक्ट करने के लिए, आपको कनेक्शन स्ट्रिंग में यह जानकारी प्रदान करनी होगी।

निम्नलिखित आज़माएँ:

Connection.ConnectionString = "DSN=sgdv;UID=l8qc1;PWD=l8qc1;"
Connection.Open 

मैं गारंटी नहीं दे सकता कि यह काम करेगा, लेकिन यह कम से कम आपको सही रास्ते पर लाना चाहिए। यदि यह काम नहीं करता है, तो आपको कनेक्शन स्ट्रिंग को ट्विक करने की आवश्यकता हो सकती है। ADODB कनेक्शन और कनेक्शन स्ट्रिंग्स के बारे में अधिक जानकारी के लिए, यह MSDN पृष्ठ देखें:

https://msdn.microsoft.com/en-us/library/ms807027.aspx


-2

इसका उत्तर इस बात पर निर्भर करता है कि आपका क्या मतलब है mainworkbook

  • अगर यह एक और कार्यपुस्तिका है, तो आपको पूरा रास्ता देना होगा जैसे कि c: ......
  • यदि यह वर्तमान कार्यपुस्तिका है, तो डेटाटाइप का चयन करने की कोई आवश्यकता नहीं है। वर्तमान कार्यपुस्तिका स्वयं सक्रिय कार्यपुस्तिका है

यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका अनुरोध करने के लिए, उनकी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपने स्वयं के पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे ।
रामहाउंड

जैसा कि आप अन्य टिप्पणियों से देख सकते हैं, आपका उत्तर समझना आसान नहीं है। मैं इसे कुछ विराम चिह्नों को शामिल करने के लिए संपादित करूँगा और स्पष्ट कर दूंगा कि मुझे क्या लगता है कि आप क्या कहना चाहते हैं।
तेयलिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.