প্রজেক্টটি মূলত একটি এক্সেল ভিবিএ ভিত্তিক সিস্টেম যেখানে ব্যবহারকারীরা একটি ইউজার ফর্মের মাধ্যমে ডেটা এন্ট্রি এবং অনুসন্ধান করতে পারবেন। প্রজেক্টটি বিভিন্ন কার্যক্রম সম্পাদন করতে সক্ষম, যেমন নতুন ডেটা এন্ট্রি, ডুপ্লিকেট চ্যালান নাম্বার সনাক্ত করা, সঠিক ফরম্যাটে তারিখ প্রয়োগ করা, এবং ইউজার ইন্টারফেসে সিস্টেমের সাথে ইন্টারঅ্যাক্ট করা।
প্রজেক্টের কার্যক্রমগুলো নিচে বিস্তারিতভাবে বর্ণনা করা হলো:
১. ডেটা এন্ট্রি কার্যক্রম (addbtn_Click)
`addbtn_Click` সাবরুটিনটি ডেটা এন্ট্রির জন্য ব্যবহৃত হয়। এখানে ব্যবহারকারী একটি নির্দিষ্ট শীটে ডেটা এন্ট্রি করতে পারেন। ইউজার ফর্মের বিভিন্ন টেক্সটবক্স থেকে ডেটা সংগ্রহ করে, এটি শীটের নির্দিষ্ট কলামে সংরক্ষণ করা হয়। তবে, এর আগে চ্যালান নাম্বার ডুপ্লিকেট কিনা তা চেক করা হয়। যদি চ্যালান নাম্বারটি পূর্বে সংরক্ষিত না থাকে, তাহলে সেটি শীটে সংরক্ষণ করা হয় এবং একটি সফলতা বার্তা প্রদর্শন করা হয়।
২. ফিনিশিং ডেলিভারি অনুসন্ধান (deliverybtn_Click)
`deliverybtn_Click` সাবরুটিনটি ফিনিশিং ডেলিভারি অনুসন্ধানের জন্য ব্যবহৃত হয়। এটি নির্দিষ্ট শীটে টেক্সটবক্সের মান অনুযায়ী ডেলিভারি অনুসন্ধান করে এবং ফলাফল প্রদর্শন করে। যদি কোনো ডুপ্লিকেট এন্ট্রি পাওয়া যায়, তাহলে একটি বার্তা প্রদর্শিত হয়।
৩. তারিখ ফরম্যাট করা (TextBox1_Exit)
`TextBox1_Exit` সাবরুটিনটি টেক্সটবক্সের তারিখটি `dd/mm/yy` ফরম্যাটে ফরম্যাট করার জন্য ব্যবহৃত হয়। যদি ব্যবহারকারী ভুল তারিখ প্রবেশ করে, তাহলে একটি ত্রুটি বার্তা প্রদর্শিত হয় এবং টেক্সটবক্সটি ফোকাস করা হয়।
৪. শীটের সারাংশ তৈরি এবং পিডিএফে কনভার্ট (CommandButton4_Click)
`CommandButton4_Click` সাবরুটিনটি নির্দিষ্ট শীট থেকে একটি সারাংশ তৈরি করে এবং এটি পিডিএফ ফাইলে রপ্তানি করে। সারাংশ শীটটি স্বয়ংক্রিয়ভাবে তৈরি হয় এবং নির্ধারিত কলামগুলির মোট হিসাব করে। এই সাবরুটিনটি ব্যবহারকারীদের সারাংশ শীটটি পিডিএফ আকারে সংরক্ষণ করার সুযোগ দেয়।
৫. ডেটা মুছে ফেলা (Deletebtn_Click)
`Deletebtn_Click` সাবরুটিনটি নির্দিষ্ট চ্যালান নাম্বারের ভিত্তিতে ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়। এটি চ্যালান নাম্বার খুঁজে বের করে এবং তা যদি পাওয়া যায় তবে সেই সারি থেকে ডেটা মুছে ফেলা হয়।
৬. চ্যালান নাম্বার অনুসন্ধান এবং নতুন সারি প্রবেশ করা (findchallan_Click)
`findchallan_Click` সাবরুটিনটি চ্যালান নাম্বার অনুসন্ধানের জন্য ব্যবহৃত হয়। যদি চ্যালান নাম্বারটি পাওয়া যায়, ব্যবহারকারীকে একটি নতুন সারি চ্যালান নাম্বারের উপরে বা নিচে প্রবেশ করানোর অপশন দেওয়া হয়।
৭. তারিখ অনুসন্ধান (finddate_Click)
`finddate_Click` সাবরুটিনটি নির্দিষ্ট তারিখ অনুসন্ধানের জন্য ব্যবহৃত হয়। এটি নির্ধারিত শীট থেকে তারিখটি খুঁজে বের করে এবং ফলাফল প্রদর্শন করে।
আপনার দেওয়া কোডটি বেশ কয়েকটি ফিচার নিয়ে কাজ করে। এখানে উল্লেখযোগ্য কিছু ফিচারের তালিকা দেওয়া হলো:
৮.ডাটা এন্ট্রি ও ভ্যালিডেশন:
- টেক্সটবক্সে ইনপুট নেওয়া ডেটা (যেমন চ্যালান নাম্বার, ডেট ইত্যাদি) ভ্যালিডেশন করে, এবং নির্দিষ্ট ফরম্যাটে (যেমন, "dd/mm/yy") ডেট ফরম্যাটিং করে শীটে সংরক্ষণ করা হয়।
- `addbtn_Click` সাবরুটিনটি ডেটা এন্ট্রির সাথে সাথে একই চ্যালান নাম্বার আগেই শীটে আছে কিনা, তা যাচাই করে।
৯.ডুপ্লিকেট চেকিং:
- বিভিন্ন সাবরুটিন (যেমন, `deliverybtn_Click`, `findchallan_Click`, `finddate_Click`) একই চ্যালান নাম্বার বা ডেট শীটে একাধিকবার আছে কিনা, তা চেক করে এবং ব্যবহারকারীকে তথ্য দেয়।
১০.রো ইনসার্ট করা:
- `findchallan_Click` সাবরুটিন ব্যবহারকারীর কাছ থেকে ইনপুট নিয়ে শীটে নির্দিষ্ট স্থানে নতুন রো ইনসার্ট করার ব্যবস্থা করে।
১১.ডেটা ডিলিশন:
- `Deletebtn_Click` সাবরুটিন নির্দিষ্ট চ্যালান নাম্বার দিয়ে সংশ্লিষ্ট রো খুঁজে বের করে এবং রো মুছে ফেলে।
১২.রিপোর্ট জেনারেশন:
- `CommandButton4_Click` সাবরুটিন নির্দিষ্ট শীটের ডেটা থেকে একটি সমারি তৈরি করে এবং পিডিএফ ফরম্যাটে সেই রিপোর্ট সংরক্ষণ করে।
১৩.ডেটা সার্চিং:
- `deliverybtn_Click`, `findchallan_Click`, `finddate_Click` সাবরুটিনগুলো নির্দিষ্ট শীটে ডেটা খুঁজে বের করে এবং সংশ্লিষ্ট ইনপুট ফিল্ডে তা প্রদর্শন করে।
১৪.ফর্ম রিসেট:
- `CommandButton2_Click` সাবরুটিন ইনপুট ফিল্ডগুলোকে ক্লিয়ার করে, যাতে নতুন ডেটা এন্ট্রি করা যায়।
১৫.সামারাইজ করা ডেটা দেখানো:
- `Cmbcustomer_Change` সাবরুটিনটি নির্বাচিত শীটের কিছু মূল তথ্য (যেমন, লাস্ট চ্যালান নাম্বার, ডেট, কিছু কলামের যোগফল ইত্যাদি) লেবেলে দেখানোর ব্যবস্থা করে।
১৬.ডাইনামিক ইনপুট ফিল্ড আপডেট:
Cmbcustomer_Change সাবরুটিনটি ড্রপডাউন মেনু থেকে গ্রাহক নাম পরিবর্তন করা হলে অটোমেটিকভাবে সেই গ্রাহকের সাথে সম্পর্কিত তথ্য আপডেট করে। যেমন, সর্বশেষ চ্যালান নাম্বার এবং অন্যান্য সংশ্লিষ্ট ডেটা।
১৭.এলার্ট মেসেজ:
বিভিন্ন সাবরুটিন যেমন deliverybtn_Click, findchallan_Click, এবং finddate_Click এ এলার্ট মেসেজ ব্যবহার করা হয়েছে। উদাহরণস্বরূপ, যদি কোন ডেটা খুঁজে পাওয়া না যায়, তাহলে ব্যবহারকারীকে একটি এলার্ট মেসেজ দেখানো হয় (যেমন, "No records found.")।
১৮.ডেটা ফরম্যাটিং:
TextBox2_AfterUpdate সাবরুটিন ব্যবহার করে ইনপুট করা ডেটা অটোমেটিক্যালি নির্দিষ্ট ফরম্যাটে (যেমন, "dd/mm/yy") আপডেট করা হয়।
১৯.ফরম্যাট টেক্সট:
formatText ফাংশন ব্যবহার করে ইনপুট ডেটা ফরম্যাট করা হয়। এটি ডেটা এন্ট্রি করার পরে ডেটাকে নির্দিষ্ট ফরম্যাটে রূপান্তরিত করে।
২০.শীট নেভিগেশন:
বিভিন্ন সাবরুটিনের মাধ্যমে বিভিন্ন শীটে ডাটা খোঁজার এবং সেই শীটে যাওয়ার ব্যবস্থা করা হয়েছে। উদাহরণস্বরূপ, findchallan_Click এবং finddate_Click সাবরুটিন নির্দিষ্ট ডেটা খুঁজে পেলে সেই শীটে নিয়ে যায়।
২১.প্রোগ্রাম্যাটিক শীট রেফারেন্স:
কোডে শীটগুলোকে প্রোগ্রাম্যাটিকভাবে রেফারেন্স করা হয়েছে, যাতে সহজেই শীট পরিবর্তন করা যায়। উদাহরণস্বরূপ, Worksheets("SheetName") ব্যবহার করে শীটগুলো রেফারেন্স করা হয়েছে।
২২.ফাইল সেভ অপশন:
কোডে একটি সাবরুটিন আছে যা এক্সেল শীটকে পিডিএফ ফরম্যাটে সেভ করার ব্যবস্থা করে (যেমন, CommandButton4_Click)।
২৩.কাস্টম মেসেজ ডায়ালগ:
বিভিন্ন সাবরুটিনে কাস্টম মেসেজ ডায়ালগ ব্যবহার করা হয়েছে, যেমন MsgBox ফাংশন ব্যবহার করে বিভিন্ন ধরণের এলার্ট বা কনফার্মেশন মেসেজ দেখানো হয়েছে।এই ফিচারগুলো ছাড়াও কোডটি আরও বিভিন্নভাবে কাস্টমাইজ করা যায়, যেমন নতুন ফিচার যোগ করা, ইউজার ইন্টারফেস আরও উন্নত করা, অথবা ডাটা প্রসেসিং আরও কার্যকরী করা।
এই প্রজেক্টটি কার্যকরভাবে ডেটা পরিচালনা করতে এবং বিভিন্ন প্রয়োজনীয় অনুসন্ধান ও এন্ট্রি কার্যক্রম সম্পাদন করতে ব্যবহার করা যাবে। ব্যবহারকারীদের সময় বাঁচাতে এবং ডেটা সঠিকভাবে সংরক্ষণ করতে এটি বিশেষভাবে সহায়ক হবে।