2012-03-07 22 views
6

के साथ लिंक्ड टेबल जोड़ने के लिए वीबीए कोड एसक्यूएल सर्वर डेटाबेस में मेरे पास एक अद्यतन करने योग्य दृश्य है। जब मैं ओडीबीसी के साथ लिंक्ड टेबल बना देता हूं, तो मुझे अपडेट करने योग्य होने के लिए अद्वितीय रिकॉर्ड पहचानकर्ता चुनने के लिए कहा जाता है।प्राथमिक कुंजी

Dialog in the wizard to select unique identifier

मैं गतिशील VBA में इस तालिका फिर से लिंक करने की जरूरत है, तो मैं छोड़ और लिंक की गई तालिका से बनाना (मैं ODBC तालिका के लिए TableDef.Connect संपत्ति को अद्यतन नहीं कर सकते हैं) की जरूरत है।

मैं कई समाधान है, जो मेरे मामले में लागू नहीं होते हैं पाया:

  • लिंक करने के बाद सूचकांक बनाने: मैं नहीं ODBC स्रोत के लिए
  • डेटाबेस में प्राथमिक कुंजी बना सकते हैं: मैं नहीं कर सकता है, यह एक दृश्य है

ये लागू किया जाएगा:

  • एक कोड है जो क्या जादूगर हिरण करना होगा रों
  • एक कोड TableDef नष्ट करने के लिए आवश्यकता के बिना फिर से लिंक करने के लिए और कहा कि ODBC जुड़ा हुआ तालिका के साथ काम करता है, और रीसेट नहीं होगा पहले से निर्धारित पहचानकर्ता

अस्थायी समाधान:

  • दृश्य दृश्य materialized में बदलने का और उस पर अद्वितीय इंडेक्स बनाएं
+1

कैसे करें: http://bytes.com/topic/access/answers/199482-primary-key-sql-server-linked-view-access-डेटाबेस? – Fionnuala

उत्तर

11

लिंकिंग के बाद ओडीबीसी स्रोत के लिए आप इंडेक्स क्यों नहीं बना सकते?

काम में, हम जुड़े हुए एसक्यूएल सर्वर तालिकाओं के साथ पहुँच का उपयोग कर रहे हैं, और जब कोई व्यक्ति किसी दूसरे डेटाबेस (उत्पादन परिवेश से परिवर्तन पर्यावरण परीक्षण करने के लिए) से कनेक्ट करना चाहता है, हम सभी तालिकाओं के लिए कुछ इस तरह करते हैं:

Dim TD As TableDef 
Dim ConString As String 

ConString = "ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=DbName;Trusted_Connection=Yes;" 

CurrentDb.TableDefs.Delete "SomeTable" 

Set TD = CurrentDb.CreateTableDef("SomeTable", 0, "SomeTable", ConString) 
CurrentDb.TableDefs.Append TD 
Set TD = Nothing 

CurrentDb.Execute "CREATE UNIQUE INDEX SomeIndex ON SomeTable (PrimaryKeyColumn) WITH PRIMARY" 
संबंधित मुद्दे