2012-09-26 11 views
15

मैं मौजूदा एमएस एक्सेस 2010 प्रोजेक्ट पर काम कर रहा हूं जिसमें एसक्यूएल सर्वर डेटाबेस से जुड़ा हुआ लिंक लिंक है।लिंक्ड टेबल एमएस एक्सेस 2010 चेंज कनेक्शन स्ट्रिंग

जब मैं जुड़ा हुआ मेज पर पर माउस मैं एक कनेक्शन स्ट्रिंग 'ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user'

यह एक dsn कम जुड़ा हुआ मेज की तरह लग रहा देख सकते हैं।

प्रश्न

  1. कहाँ कनेक्ट स्ट्रिंग में पता लगाने? इसे कैसे बदलें (उदाहरण डेटाबेस नाम)?

  2. मैं एक समान डीएसएन-कम लिंक वाली तालिका कैसे बना सकता हूं? जब भी मैं एक लिंक की गई तालिका एक्सेस 2010 बना देता हूं तो हमेशा मुझे एक डीएसएन (फ़ाइल या मशीन) बनाने के लिए मजबूर करता है।

+1

आप कनेक्शन बदलने के लिए लिंक किए गए तालिका प्रबंधक का उपयोग कर सकते हैं। एक लिंक की गई तालिका बनाने के लिए बाहरी डेटा, ओडीबीसी का प्रयोग करें। आप वीबीए के साथ कनेक्शन संपादित कर सकते हैं। उदाहरण: http://stackoverflow.com/questions/4928134/changing-linked-table-location-programatically/4928209#4928209 – Fionnuala

+0

डीएनएस-कम कनेक्शन स्ट्रिंग को लिंक किए गए तालिका प्रबंधक में बदला नहीं जा सकता है। इसके अलावा मैंने पूरी परियोजना (वीबीए कोड) की खोज की है और कनेक्शन स्ट्रिंग नहीं मिल पा रहा है जिसे मैंने डीएसएन-कम कनेक्शन का उल्लेख किया है। –

उत्तर

23

मुद्रित करने के लिए सभी कनेक्शन तार: एक लिंक

With CurrentDb 
    ''If the table does not have a unique index, you will need to create one 
    ''if you wish to update. 
    Set tdf = .CreateTableDef("LocalName") 
    tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;" _ 
     & "UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user" 
    tdf.SourceTableName = "TABLE_NAME" 
    .TableDefs.Append tdf 
    .TableDefs.Refresh 
End With 

बदलने के लिए::

Set db = CurrentDB 
    Set tdf = db.TableDefs("MyTable") 
    tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;" _ 
     & "UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user" 
    tdf.RefreshLink 
+3

'tdf.Refresh' पर मुझे त्रुटि मिली" ऑब्जेक्ट इस संपत्ति या विधि का समर्थन नहीं करता है "और इसके बजाय 'ResfreshLink' का उपयोग करना पड़ा। –

+2

@MichalHosala त्रुटि को इंगित करने के लिए समय निकालने के लिए धन्यवाद। मैंने कोड को सही किया है। –

15

आप कनेक्शन को बदल सकते हैं

Dim tdf As TableDef 
Dim db As Database 

    Set db = CurrentDb 

    For Each tdf In CurrentDb.TableDefs 
     If tdf.Connect <> vbNullString Then 
      Debug.Print tdf.Name; " -- "; tdf.SourceTableName; " -- "; tdf.Connect 
     End If 
    Next 

किसी लिंक किए गए तालिका बनाने के लिए निम्नलिखित मार्गदर्शिका का उपयोग कर स्ट्रिंग (Original Source)।

सबसे पहले, मौजूदा कनेक्शन स्ट्रिंग प्राप्त करें।

  1. ओपन एमएस एक्सेस
  2. दायाँ माउस एक मेज है कि काम करने के लिए प्रयोग किया जाता है पर या क्लिक क्या आप वाकई काम करते हैं और चयन करता है "डिज़ाइन दृश्य" कर रहे हैं।
  3. चेतावनी स्क्रीन पर हाँ का चयन करें जारी रखने के लिए
  4. हैं, तो सही पर, वहाँ तालिका के लिए कोई गुण खिड़की है, रिबन (एक्सेस 2010) पर क्लिक करें संपत्ति शीट
  5. यह एक विवरण संपत्ति का पता चलता है पर - सभी कॉपी कि वह उस संपत्ति में है और इसे नोटपैड में या बाद में कहीं भी पेस्ट करें।

दूसरा कनेक्शन स्ट्रिंग को अद्यतन करें।

  1. रिबन में बाहरी डेटा क्लिक करें और चुनें 'लिंक्ड तालिका प्रबंधक'
    1. हमेशा किसी नए स्थान चेक बॉक्स के लिए संकेत क्लिक करें - इस उपयोगकर्ता पूछने के लिए एक जटिल तरीके है अगर (रों) वह wasts कनेक्शन की जानकारी
    2. क्लिक करें बदलने के सभी बटन का चयन करें या तालिकाओं आप चेक अंक के साथ अपडेट करना चाहते हैं चुनें
    3. ठीक क्लिक करें
  2. एक संवाद आता है अप।अपने ड्राइवर के रूप में एसक्यूएल सर्वर चुनें पर क्लिक करें नई
    1. उन्नत बटन
    2. पेस्ट अगले अर्धविराम के लिए टेबल = ... सामान अप निकालें छोड़कर नोटपैड
      • में सभी सामान पर क्लिक करें।
      • सर्वर नाम परिवर्तित करें
      • ठीक
    3. क्लिक करें यह तो आप बाद के लिए एक फ़ाइल में यह सब को बचाने के लिए संकेत देता है। एक कनेक्शन फ़ोल्डर में माई डॉक्यूमेंट्स में एक स्पॉट चुप करें - या बाद में
    4. का उपयोग करने के लिए किसी अन्य नेटवर्क के लिए बेहतर स्थान पर चुप रहें
    5. अब एक्सेस आपके सभी टेबल को नए डीएसएन (कनेक्शन विवरण) से बदल देगा। स्ट्रिंग।
+2

यह मुझे प्रत्येक तालिका के लिए व्यक्तिगत रूप से डीएनएस फ़ाइल निर्दिष्ट करने की आवश्यकता है। अगर मेरे पास मेरे एडीडीबी में 100 लिंक टेबल हैं तो क्या होगा? – Hill

+0

@ हालांकि ऐसा लगता है कि आप लिंक्ड टेबल मैनेजर में चेक की जाने वाली सभी टेबलों को नए डीएसएन के साथ अपडेट किया जाएगा। इसलिए आपको प्रत्येक व्यक्ति को व्यक्तिगत रूप से अपडेट नहीं करना चाहिए। –

+2

मेरे लिए, जब मैं ऐसा करता हूं, तो मुझे प्रत्येक व्यक्तिगत तालिका के लिए डीएसएन अपडेट करने के लिए एक अलग संवाद मिलता है। मैं एक स्क्रिप्ट ढूंढना समाप्त कर दिया जो आपके लिए यह करेगा। – Hill

संबंधित मुद्दे