সংযুক্ত টেবিলগুলি চমত্কারভাবে কার্যকর হতে পারে (যদিও সব সময় নয়) - বিশেষত যখন আপনি বাহ্যিক তথ্যের সাথে নিয়মিতভাবে পরিবর্তন ঘটে থাকেন। একটি সাধারণ উদাহরণ হতে পারে যখন কোনও সরবরাহকারী আপনাকে তাদের বর্তমান মাসিক দাম ফাইলটিতে অ্যাক্সেস দেয়। কিন্তু তারা যখন পরের মাসে ফাইলটি প্রকাশ করবেন তখন কী হবে এবং ফাইলটির নাম "প্রিসিলিস্ট-01-01-2016" থেকে "প্রিসিলিস্ট-01-02-2016" এ পরিবর্তিত হবে? প্রথমটি যা ঘটবে তা হ'ল আপনার লিঙ্কটি ভেঙে যাবে, তাই আপনাকে ম্যানুয়ালি আপডেট করতে হবে। প্রতিবার তারা ফাইলের নাম পরিবর্তন করে। এটি টেবিলের নামগুলির জন্যও যায় (অবশ্যই!)। আপনি কীভাবে জিজ্ঞাসা করলেন তাড়াতাড়ি এবং সহজে করার কোনও উপায় আছে? আমরা আপনাকে খুশি বলেছি - পড়ুন এবং কীভাবে তা সন্ধান করুন ...
দৃশ্য নির্ধারণ - দৃশ্য
এই নিবন্ধে, আমি একটি কাল্পনিক দৃশ্যের ব্যবহার করতে যাচ্ছি - তবে আমি নিশ্চিত যে আপনি তাড়াতাড়ি চিনতে পারবেন!
প্রতি মাসে, একমে ট্রেডিং আমাদের ব্যবহৃত সমস্ত ভোক্তাদের জন্য একটি আপডেট মূল্য তালিকা প্রেরণ করে DataNumen। যাতে আমরা জানতে পারি যে আমরা প্রতিমাসে স্টেশনের উপর কতটা ব্যয় করব, আমরা আমাদের অফিস ম্যানেজমেন্ট ডাটাবেসে সেই ফাইলটির সাথে লিঙ্ক করি।
সমস্যাটা হলো, ফাইলের ফরম্যাট একই থাকলেও ফাইলের নাম প্রতি মাসে বদলে যায়। গত মাসে ছিল “stationary costs Jan 2017.xls”, এই মাসে হয়েছে “stationary costs Feb 2017.xls”।
খুব বেশি পরিবর্তন হওয়ার বিষয়ে আমি নিশ্চিত না আপনি সম্মত হবেন, তবে আমরা যদি ফাইলটি ম্যানুয়ালি নামকরণের সমস্যায় না পড়ি (একবারে আমরা পুরানো ফাইলটিকে সরিয়ে ফেলেছি বা মুছে ফেলেছি), বা প্রক্রিয়াটি অবলম্বন করব না অ্যাক্সেসে লিঙ্কযুক্ত টেবিল ম্যানেজারের মাধ্যমে টেবিলটিকে সংযুক্ত করে।
যেহেতু আমরা এটি করতে চাই নি, আমরা এর পরিবর্তে নিম্নলিখিত কোডটি তৈরি করেছি - আপনি নিশ্চিত যে আপনি নিশ্চিত হবেন ততই সহজ:
Public Sub UpdateLink (tableName As String, newFileName As String) Dim objDB As Database Dim objTableDef As TableDef Dim newConnect as String Set objDB = CurrentDb Set objTableDef = objDB.TableDefs(tableName) 'format of the connection string in our case, for example, is: ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=File name including path and extension type newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName objTableDef.Connect = newConnect objTableDef.RefreshLink Set objTableDef = Nothing Set objDB = Nothing End Sub
কোড ব্যাখ্যা করা
আপনি দেখতে পাচ্ছেন, আমরা (লিঙ্ক করা) টেবিলের নামের সাথে সেই নতুন ফাইলের নামও পাস করি, যার সাথে টেবিলটি লিঙ্ক করা হবে। ফাইলের নামে অবশ্যই ফাইলটির সম্পূর্ণ পাথ অন্তর্ভুক্ত থাকতে হবে। শুরুতে একটি সম্ভাব্য সমস্যা হতে পারে “newConnect” ভেরিয়েবলে রাখার জন্য কানেকশন স্ট্রিং-এর সঠিক ফরম্যাট খুঁজে বের করা। যদিও সঠিক ফরম্যাট খুঁজে বের করার জন্য অনেক উৎস রয়েছে, আমার মতে সবচেয়ে সহজ উপায় হলো বর্তমান লিঙ্ক করা টেবিলের কানেকশন স্ট্রিংটি দেখা। এটি করার জন্য, “Set objTableDef = objDB.TableDefs(tableName)” লাইনের ঠিক নিচে নিম্নলিখিত লাইনটি যোগ করুন:
Debug.Print (objTableDef.Connect)
এটি কোডের সম্পাদকের ডিবাগ / তাত্ক্ষণিক উইন্ডোতে বিদ্যমান সংযোগের স্ট্রিংটি মুদ্রণ করবে (যদি এটি ইতিমধ্যে দৃশ্যমান না হয় তবে কোড চালানোর আগে ইমিডিয়েট উইন্ডোটির দৃশ্যমানতা টগল করতে ভিবিএ কোড সম্পাদক পর্দার মধ্যে থেকে সিটিআরএল-জি টিপুন।
একটি সতর্কতা
সর্বদা হিসাবে ভুলে যাবেন না যে উপরের কোড স্নিপেট আপনাকে সময় সাশ্রয় করতে সাহায্য করতে পারে যখন আপনি কোনও টেবিলের সাথে লিঙ্কযুক্ত ফাইলটি পরিবর্তন করতে হবে তবে আপনি যদি কোনও সমস্যার মুখোমুখি হন তবে এটি কী করতে পারে না অ্যাক্সেস ফাইলের ক্ষতি, সুতরাং আপনি ব্যাকআপ রাখছেন তা নিশ্চিত করুন এবং অন্য সব ব্যর্থ হলে কোথায় ঘুরবেন তা জেনে নিন।
লেখকের ভূমিকা:
মিচেল পন্ড একটি তথ্য পুনরুদ্ধার বিশেষজ্ঞ is DataNumen, ইনক। যা তথ্য পুনরুদ্ধারের প্রযুক্তিগুলির সহ বিশ্বের শীর্ষস্থানীয় এসকিউএল ক্ষতি মেরামত এবং এক্সেল পুনরুদ্ধার সফ্টওয়্যার পণ্য। আরো তথ্যের জন্য, যান WWW.datanumen.com