কিভাবে আপনার অ্যাক্সেসের সাথে কোনও লিঙ্কযুক্ত টেবিলটিকে স্থানীয় সারণীতে রূপান্তর করতে হয়

এখন শেয়ার:

আমরা এটি আগেও বলেছি, তবে এটি পুনরাবৃত্তিযোগ্য - সংযুক্ত সারণীগুলি বেশ কয়েকটি কারণে আপনার ডাটাবেসে সত্যই কার্যকর হতে পারে। তবে লিঙ্কযুক্ত টেবিলগুলির একটি বড় অসুবিধা হল পারফরম্যান্স - তাদের বিরুদ্ধে অনুসন্ধান চালানো, বিশেষত যদি তারা মাইক্রোসফ্ট অ্যাক্সেস টেবিল না হয় (যেমন যদি তারা এক্সেল, সিএসভি, বা DBF নথি পত্র). এগুলি নিয়ে কাজ করার জন্য তারা বেদনাদায়কভাবে ধীর হতে পারে। আপনি যে কয়েকটি উপায়ে কাজ করতে পারেন তার কয়েকটি উপায় রয়েছে - আমরা এখানে একটি উপায় নিয়ে কাজ করব এবং এটি কোনও লিঙ্কযুক্ত টেবিলকে স্থানীয় সারণিতে রূপান্তর করতে হবে। অবশ্যই - আপনি টেবিলগুলি অনুলিপি / আটকানোর মাধ্যমে ম্যানুয়ালি এটি করতে পারতেন, তবে আপনার যদি হ্যান্ডেল করার মতো অনেক কিছু থাকে তবে কোডে এটি করা অনেক বেশি সহজ, তাই আসুন দেখুন কীভাবে…

কেন আপনার প্রয়োজনের রূপরেখা গুরুত্বপূর্ণ

লিংকড টেবিলটি অ্যাক্সেস করুনপ্রথমত, আসুন কোডটি আমরা কী করতে চাই তা রূপরেখা করি - এটি করার ফলে কোডটি প্রথম স্থানে তৈরি করা এত সহজ হয়ে যায় তাই আমি প্রতিবারই আপনি কিছু ভিবিএ কোড তৈরি করার কথা ভাবছি এমন করার পরামর্শ দিয়েছি you , এটি আপনার লক্ষ্য স্পষ্ট করতে সহায়তা করে:

"একটি লিঙ্কযুক্ত টেবিলের নাম দেওয়া, কর্মক্ষমতা উন্নত করতে স্থানীয় টেবিল হিসাবে সেই টেবিলটি ডাটাবেসে আমদানি করুন - allyচ্ছিকভাবে একই সময়ে ডাটাবেস থেকে লিঙ্কটি মুছুন"

সাধারণত, আপনি যখন কোনও লিঙ্কযুক্ত টেবিলটিকে স্থানীয় সারণীতে রূপান্তর করেন, আপনি লিঙ্কটি মুছতে চাইবেন, তবে নীচের কোড নমুনায় আমরা আপনাকে মূল লিঙ্কযুক্ত ফাইলটি রাখার বিকল্পটি দিয়েছি তবে এটি করে আপনার নতুন আমদানি করা টেবিল আপনার জিজ্ঞাসাগুলি ইত্যাদিতে আপনার লিঙ্কযুক্ত টেবিলটিকে প্রতিস্থাপন করবে না, যাতে আপনি কোনও স্থানীয় টেবিল আপনাকে দেবে এমন পারফরম্যান্স লাভটি দেখতে পাবেন না। আপনি যখন আরামদায়ক হন যে কোডটি আপনার প্রয়োজন অনুসারে কাজ করছে, আমরা সর্বদা আসল মুছতে সুপারিশ করব - সর্বোপরি, আপনি আসলে আসল টেবিলটি মুছছেন না, কেবল এটির লিঙ্ক।

সাবধানতা একটি শব্দ

আমরা কোডে পৌঁছানোর আগে - কেবলমাত্র সতর্কতার এক দ্রুত শব্দ, আপনি যদি একটি লিঙ্কে লিখিত হন তবে আপনি অনেক কিছু করতে পারবেন না ক্ষতিগ্রস্থ অ্যাক্সেস ডাটাবেস - যদি অ্যাক্সেস ফাইলটি পড়তে না পারে তবে এটি এখান থেকে আমদানি করতে সক্ষম হবেন এমন সম্ভাবনা খুব বেশি।

সুতরাং - কোড থেকে…

Sub MakeTableLocal(tableName As String, optional deleteOriginal As Boolean = True)
    Dim DbPath As Variant, TblName As Variant

    'get path of linked table
    DbPath = DLookup("Database", "MSysObjects", "Name='" & tableName & "' And Type=6")
    'Get the real name of the linked table (in case it has been given an alias in the link)
    TblName = DLookup("ForeignName", "MSysObjects", "Name='" & tableName & "' And Type=6")
    If IsNull(DbPath) Then
        'Either a local table, or the wrong table name has been supplied, exit the sub
        Exit Sub
    End If

    'delete linked table
    If deleteOriginal Then
        DoCmd.DeleteObject acTable, tableName
    Else
        'If we're not deleting the existing table we'll have to rename the imported table to avoid
        'overwriting it etc
        tableName = tableName & " - local"
    End If
    
    'import the table as a local, unlinked table
    DoCmd.TransferDatabase acImport, "Microsoft Access", DbPath, acTable, TblName, tableName
End Sub

কোডটি কী করছে

ভিবিএ কোডকোডের বেশিরভাগ অংশই বেশ সহজবোধ্য হবে, তবে কিছু গুরুত্বপূর্ণ বিষয় মনে রাখতে হবে। প্রথমত, কোন ফাইলটি লিঙ্ক করা হচ্ছে তার বিস্তারিত তথ্য আমরা (সাধারণত লুকানো) অ্যাক্সেস সিস্টেম টেবিল “MSysObjects”-এ দেখে নিই। যেহেতু এটা খুবই সম্ভব (এবং সম্ভাব্য) যে আপনি লিঙ্ক করা টেবিলটিকে একটি নতুন লোকাল অ্যালিয়াস দিয়েছেন, তাই এরপর আমাদের যা করতে হবে তা হলো মূল টেবিলের নামটি সংগ্রহ করা – আবারও, “MSysObjects” টেবিল থেকেই।

এখন আমাদের কাছে এই বিবরণ রয়েছে, যতক্ষণ না সেগুলি বৈধ হয় (যেমন আপনি রুটিনে কোনও ভুল সারণীর নাম সরবরাহ করেন নি), তবে আমরা যেতে প্রস্তুত হয়েছি সুতরাং এটি কেবল একটি বিষয়) লিঙ্কটি মুছে ফেলা (যদি মুছে ফেলা অরিজিনাল সত্যতে সেট করা আছে), এবং সারণীটি আমদানি করে।

এটি করার ফলে প্রায়শই আপনি পারফরম্যান্সে বেশ নাটকীয় উন্নতি করতে পারেন তাই আপনি যদি লিঙ্কযুক্ত টেবিলগুলি ব্যবহার করেন, তবে আমি আপনাকে সুপারিশ করব যে এই টেবিলগুলিকে স্থানীয় সংস্করণে নিয়ে যাওয়া কী লাভ আপনাকে পরীক্ষা করবে - আপনি অবাক হতে পারেন!

লেখকের ভূমিকা:

মিচেল পন্ড একটি তথ্য পুনরুদ্ধার বিশেষজ্ঞ is DataNumen, ইনক। যা তথ্য পুনরুদ্ধারের প্রযুক্তিগুলির সহ বিশ্বের শীর্ষস্থানীয় মেরামত SQL Server ফাইল এবং এক্সেল পুনরুদ্ধার সফ্টওয়্যার পণ্য। আরো তথ্যের জন্য, যান WWW.datanumen.com

এখন শেয়ার:

মন্তব্যসমূহ বন্ধ করা হয়.