ایجاد یک فایل dbf از اکسل - VBA. تبدیل اطلاعات از Microsoft Excel به فرمت DBF نحوه ایجاد یک فایل dbf

یک ویرایشگر جهانی رایگان DBF که به شما امکان می دهد پایگاه داده های موجود را باز کرده و جدید ایجاد کنید. اندازه بسیار کوچکی دارد، می توان آن را از یک درایو فلش اجرا کرد و در عین حال دارای ابزارهای پیشرفته بسیاری برای کار با فایل های DBF است که در میان آنها حتی پشتیبانی از پرس و جوهای SQL نیز وجود دارد!

گالری اسکرین شات

معمولاً در سایت برنامه هایی را پوشش می دهیم که مورد توجه طیف گسترده ای از خوانندگان قرار می گیرند، اما امروز این مورد کاملاً معمولی نیست :). من قبلاً به عنوان یک نوع "متخصص کامپیوتر" در چندین اداره دولتی کار می کردم و در آنجا اغلب مجبور بودم با برنامه های مختلف مبتنی بر FoxPro سر و کار داشته باشم ...

مشکل اصلی همه این برنامه ها این بود که یک کاربر ساده می توانست به راحتی پایگاه داده را خراب کند تا بعدا باز نشود. به معنی منظم، بنابراین مجبور شدم برای بازگرداندن آن به زندگی منحرف شوم (که با توجه به "توانایی" "کاربران وحشی" همیشه کار نمی کرد :)).

و حالا، چند سال بعد، چون دیگر آنجا کار نمی‌کنم، یک ایمیل برای ما ارسال کردند و از ما خواستند یک برنامه رایگان جدید برای ویرایش پایگاه‌های داده DBF اضافه کنیم که نام ساده‌ای دارد - Sdbf. بیا در موردش حرف بزنیم :)

مقایسه با آنالوگ پولی

Sdbf، علیرغم قابل حمل بودن (می تواند از یک درایو فلش کار کند!) و اندازه کوچک، یک ویرایشگر پایگاه داده نسبتاً پیشرفته است که به شما امکان می دهد هر پایگاه داده با فرمت DBF را ایجاد، ویرایش و صادر کنید، از مشخصات xBaseIII تا xVisualFoxPro مدرن! بیایید عملکرد Sdbf را با قابلیت های یکی از پیشرفته ترین ویرایشگرهای این نوع، DBF Commander Professional مقایسه کنیم:

از جدول بالا، می بینیم که برنامه ها از نظر عملکرد کمی متفاوت هستند، اما Sdbf، اولا، قابل حمل است (که معمولا مهم است، زیرا هر استاد کامپیوتر ترجیح می دهد مجموعه ای از برنامه های لازمدر یک درایو فلش)، و ثانیا، کاملا رایگان است!

اولین اجرای Sdbf

برای اجرای برنامه، کافی است آن را از آرشیو دانلود شده در هر مکانی باز کنید و فایل EXE حاصل را باز کنید. یک پنجره خالی از نوع زیر در مقابل ما ظاهر می شود:

متأسفانه Drag & Drop پشتیبانی نمی‌شود، بنابراین برای شروع باید منوی «File» را فراخوانی کنیم و در آنجا یکی از دو عملکرد موجود را انتخاب کنیم: «ایجاد» یک پایگاه داده جدید یا «باز کردن» یک پایگاه داده موجود. بیایید پایگاه داده موجود را باز کنیم:

محتویات پایگاه داده انتخاب شده را در قالب یک جدول خواهیم دید. خط "صفر" نام فیلدها را نشان می دهد و از اول شروع می شود - خود محتوا. در زیر محتوا در پایین نوار ابزار و نوار وضعیت قرار دارد.

دومی اطلاعات بسیار مفیدی از خدمات، از جمله تعداد رکوردها در پایگاه داده، رمزگذاری، تاریخ ایجاد و فرمت تعریف شده به طور خودکار را نمایش می دهد. از فرمت های Sdbf فقط پشتیبانی نمی کند نسخه های اولیه xBase (I و II) و به شما امکان می دهد فایل های DBF از انواع زیر را باز و ایجاد کنید:

  • xBase III - VII.
  • xClipper;
  • xFoxPro;
  • xVisualFoxPro.

ابزارهای جستجو و فیلتر کردن داده ها

برنامه Sdbf به شما این امکان را می دهد که مستقیماً هر سلول از یک پایگاه داده باز را ویرایش کنید، با این حال، سلول های مورد نظرشما هنوز باید پیدا کنید ... اگر پایه کوچک و بی تکلف است، این کار را می توان به سرعت و به صورت دستی انجام داد. با این حال، اگر چندین ده یا حتی صدها رکورد وجود داشته باشد، جستجو می تواند بسیار دشوار باشد.

اما این چنین مشکلی نیست، زیرا Sdbf چندین ابزار به طور همزمان دارد که به شما امکان می دهد داده های غیر ضروری را فیلتر کنید و فقط آنچه را که نیاز دارید نمایش دهید!

این ابزارها در نوار ابزار پایین یافت می شوند. در اینجا، در ابتدا 8 دکمه ناوبری وجود دارد که به شما امکان می دهد در پایگاه داده (فلش ها) حرکت کنید، ورودی ها را اضافه یا حذف کنید و همچنین تغییرات را تأیید یا لغو کنید. توابع مورد نیاز ما با دکمه نهم - "جستجو" شروع می شود:

هنگامی که دکمه فعال می شود، یک پنجره کوچک با فرم جستجو در مقابل ما ظاهر می شود. باید متنی را که قرار است پیدا شود مشخص کنیم و فیلد مورد نظر را از لیست کشویی انتخاب کنیم. اکنون دکمه «یافتن بعدی» را فشار می‌دهیم و برنامه به‌طور خودکار خطی را به دنبال انتخاب فعلی انتخاب می‌کند که حاوی متن جستجو شده است. با فشار دادن مجدد دکمه، خط زیر خط فعلی که حاوی همان داده های جستجو و غیره است، برجسته می شود.

گاهی اوقات در پایگاه داده قالب بندی سلولی غیر استاندارد وجود دارد: فضاهای اضافی، برگه ها و سایر کاراکترهایی که به صورت بصری نمایش داده نمی شوند، اما بر نتیجه جستجو تأثیر می گذارند. اگر با چنین موردی روبرو هستید، برای اینکه عملکرد به طور عادی کار کند، کافی است تیک "بر اساس فرمت" را در قسمت مرکزی پایین کادر جستجو بردارید و رشته های جستجو شده شروع به تبدیل شدن به نمایش داده.

عملکرد جستجو زمانی مفید است که ما نیاز به یافتن سریع موارد منفرد از داده های خاص داریم. اما مواقعی وجود دارد که نمایش چندین ردیف به طور همزمان راحت تر است که فقط حاوی اطلاعات خاصی هستند. که در این موردعملکرد دوم به ما کمک می کند (دکمه آن بلافاصله بعد از دکمه جستجو می آید) - "فیلتر":

برای فعال کردن فیلتر، ابتدا باید یک درخواست را به درستی بنویسیم و آن را در یک فیلد مشخص شده (بلافاصله بعد از دکمه در قسمت مرکزی نوار ابزار) وارد کنیم. اصل درخواست ساده است، اما کاملاً واضح نیست. ابتدا باید نام فیلدی را که می‌خواهیم جدول پایگاه داده را فیلتر کنیم، وارد کنیم و سپس مقدار فیلتر را با متن خاصی که باید همه ردیف‌ها را با آن پیدا کنیم، برابر کنیم.

ما مقدار را در نقل قول های تکی می گیریم، پس از آن دکمه "فیلتر" را فشار می دهیم (فیلتر می شود) و جدولی حاوی داده ها فقط با مقادیری که برای ما در فیلدهای مشخص شده تعریف شده است (در مثال) دریافت می کنیم. ، تمام ردیف های با مقدار "USA" را در قسمت "Country" فیلتر کردیم (مورد تعیین نام مهم نیست)). شما می توانید به سادگی با فشار دادن مجدد دکمه "Filter" (دوباره فشرده می شود) جدول را به شکل اصلی خود بازگردانید.

فیلد فیلتر می تواند شامل ساده ترین شرایط "و" (برای اصلاح پرس و جو در چندین فیلد) و "یا" (برای انتخاب جایگزین داده از فیلدهای مختلف) باشد. متأسفانه Sdbf از پرس و جوهای انحصاری (مانند "not") پشتیبانی نمی کند، اما می توانیم این محدودیت را به روش دیگری دور بزنیم که در ادامه به آن پرداخته خواهد شد.

به هر حال، برای اینکه به صورت دستی درخواست فیلترینگ را وارد نکنید، می توانید از ترفند زیر استفاده کنید: هر ورودی را در فیلدی که با آن فیلتر می کنید انتخاب کنید و کلید ترکیبی Alt + F را فشار دهید (اما نه F4 :))). درخواست به طور خودکار ایجاد می شود و مقدار حاوی علامت "*" است که یک ماسک جستجو است و با هر تعداد از هر کاراکتر مطابقت دارد.

افسوس، این تنها نوع ماسکی است که می تواند در Sdbf استفاده شود و حتی غم انگیزتر، یک درخواست می تواند فقط یک ماسک داشته باشد :(. بنابراین، اگر بخواهید همان فیلد را با چندین پارامتر فیلتر کنید، باید از " استفاده کنید. و" عملگر (تولید سریع پرس و جو با فشار دادن "CTRL+ALT+F") یا "یا" ("SHIFT+ALT+F").

اجرای پرس و جوهای SQL در برابر جداول پایگاه داده

جستجو و فیلتر کردن بدون شک خوب است، اما همیشه راحت نیست. هنگامی که تعداد رکوردها زیاد باشد، به راحتی می توانیم داده های مورد نیاز خود را هنگام تجزیه جداول از دست بدهیم. با این حال، در این مورد، Sdbf دارای یک ویژگی عالی است - پشتیبانی از پرس و جوهای SQL!

با این پرس و جوها در Sdbf می توانیم:

  1. جدول ما را به صورت پویا قالب بندی کنید و فقط برای برخی از فیلدهای مورد نیاز یک انتخاب ایجاد کنید (عبارات SELECT و SELECT TOP).
  2. کپی داده ها از یک پایگاه داده به پایگاه داده دیگر (INSERT FROM و INSERT INTO)؛
  3. تغییر و حذف محتویات برخی خطوط (به ترتیب به روز رسانی و حذف)؛
  4. درخواست های موازی گروهی (UNION)؛
  5. فرم جداول محوری(PIVOT).

برای شروع کار با کوئری ها، باید روی دکمه «SQL Query» در انتهای سمت راست نوار ابزار کلیک کنیم. با این حال، نتیجه چنین اقدامی تا حدودی دلسرد کننده خواهد بود: محتویات پایگاه داده تازه ویرایش شده ناپدید می شوند و یک پنجره خالی دیگر با دو فیلد در بالای پنجره کار ظاهر می شود (در بالا فیلد خروجی داده است، و در پایین فیلد ورودی است).

نباید ترسید :). فقط باید بلافاصله پرس و جوی SQL مورد نظر را در قسمت پایین با نام وارد کنید پایه مورد نظرداده ها. اگر این نام را به خاطر ندارید، می توانید آن را فعال کنید نوار کناری Sdbf (با کلیک بر روی نوار عمودی خاکستری سمت راست)، که تمام پایه هایی را که قبلا باز کرده اید لیست می کند:

همچنین برای سرعت بخشیدن به کار بهتر است کلیدهای داغ را به خاطر بسپارید که با فشردن کلید F1 می توانید با کمک تماس بگیرید. تنها سه مورد از آنها وجود دارد، اما آنها می توانند به طور قابل توجهی روند ایجاد پرس و جوهای مناسب را سرعت بخشند.

بنابراین، ترکیب "CTRL + Space" - یک پنجره پاپ آپ با لیستی از نام های پایگاه داده موجود (به گونه ای که به نوار کناری نگاه نکنید)، "CTRL + F" - لیستی از توابع فعلی را نمایش می دهد. عملگر، و "CTRL + Enter" فرآیند اجرای پرس و جو را آغاز می کند. علاوه بر این، اگر روی فیلد ورودی راست کلیک کنید (با منوی زمینه تماس بگیرید)، لیستی از اپراتورهای پشتیبانی شده توسط Sdbf را دریافت خواهیم کرد.

بیایید به اسکرین شات قبلی خود برگردیم و نگاه کنیم پرس و جو سادهکه در آنجا تدوین شده است. این بر اساس عبارت "SELECT" است، به این معنی که یک انتخاب را به ما برمی گرداند. پارامتر انتخاب "*" است، که به معنای خروجی هر داده است، با این حال، می‌توانیم نام هر فیلد جدول پایگاه داده را با کاما از هم جدا کنیم.

نمونه ای که در بالا به آن نگاه کردیم ساده ترین است، اما Sdbf به شما امکان می دهد پرس و جوهای پیچیده تری را اجرا کنید. در اسکرین شات بعدی، منتخبی را مشاهده خواهیم کرد، جدولی که به صورت پویا ایجاد شده است که شامل فیلدهایی است که شامل نام مشتریان، شهر محل زندگی آنها و کشور است. علاوه بر این، مشتریان بر اساس کشور محل اقامت (U.S.A) فیلتر می شوند و نتایج به ترتیب حروف الفبا نمایش داده می شوند:

اگر جدا کنید درخواست داده شده، سپس روش انتخابی را که قبلاً توسط من توسط فیلدهای مشخص شده با کاما بعد از آن ذکر شده است، خواهیم دید عبارت SELECT. علاوه بر این، همان نشانه نام پایگاه داده، اما اکنون درخواست به اینجا ختم نمی شود.

مرحله بعدی فهرست کردن عملکردهای اپراتور اصلی است که در نتیجه پردازش درخواست باید انجام شوند. در اینجا دو نفر از آنها هستند.

اولین - "where" شبیه فیلتری است که قبلاً در مورد آن صحبت کردیم، و یک عمل مشابه را انجام می دهد - به شما امکان می دهد فقط آن دسته از رکوردهایی را انتخاب کنید که با شرایط مطابقت دارند.

تابع دوم - "ترتیب بر اساس" مسئول مرتب سازی نتایج بر اساس یکی از فیلدها (در این مورد، بر اساس فیلد با نام مشتری - "NAME") به صورت حروف الفبا (پارامتر "asc") یا معکوس ("نزولی") است. ) سفارش.

طبیعتاً مثال بالا نیز کاملاً ابتدایی است، اما ماهیت کلی ایجاد و پردازش پرس‌و‌جوهای SQL را منعکس می‌کند. اگر می خواهید در مورد آنها بیشتر بیاموزید، به شما توصیه می کنم کتابچه های راهنما را اینجا بخوانید: http://dimonchik.com/insert.html یا https://www.sql.ru/articles/articles.aspx?g=SQL&s= 0 .

به هر حال، مزیت Sdbf امکان صادرات جدول به دست آمده به عنوان یک پایگاه داده جدید یا به عنوان یک فایل HTML، RTF یا CSV است! برای این کار کافیست منوی زمینه فیلد نمایش جدول را فراخوانی کرده و مورد مناسب را انتخاب کنید.

عملکردهای اضافی از نوار منو

ما به ویژگی های اصلی Sdbf پرداخته ایم، اما این به همین جا ختم نمی شود. تعدادی از توابع مفید و حتی منحصر به فرد در نوار منو پنهان شده است، همان موردی که ما برای باز کردن پایگاه داده استفاده کردیم :) بنابراین، بسیاری از ویژگی های مفید(که گاهی اوقات به شما امکان می دهد بدون پرس و جوهای SQL انجام دهید) می توانید از منوی "Table" استفاده کنید:

در میان سایر موارد "مفید" مانند تغییر رمزگذاری و ادغام پایگاه های داده، در پایین صفحه می توانیم مورد "تغییر ساختار" را پیدا کنیم. این مورد یک پنجره اضافی را فراخوانی می کند که در آن می توانیم تمام فیلدهای جدول باز را کاملاً تغییر دهیم، موارد جدید اضافه کنیم یا بخش هایی را که دیگر مورد نیاز نیستند حذف کنیم (هنگام ایجاد یک پایگاه داده از ابتدا همان پنجره باز می شود).

به طور خاص، می‌توانیم ترتیب فیلدها، نام، نوع، اندازه (تعداد کاراکترها در یک سلول) و دقت (عمق بیت - معمولاً به‌طور خودکار تنظیم می‌شود و به نوع فیلد بستگی دارد) تغییر دهیم.

تنها چیزی که در هنگام ویرایش (و به خصوص ایجاد) پایگاه داده باید به خاطر بسپارید این است که هر نوع پایگاه داده مجموعه ای از انواع فیلدهای خاص خود را دارد و اغلب (اگر N، C، D اصلی را در نظر نگیرید) متفاوت هستند. به عنوان مثال، پایگاه داده xClipper از فیلدهای تصویر (P، B) پشتیبانی نمی کند، و xBase تا نسخه هفتم از فیلدهای افزایش خودکار (+) پشتیبانی نمی کند. یعنی همیشه باید سازگاری را به خاطر بسپارید :).

از آنجایی که ما به نوار منو نگاه می کنیم، فراموش نکنید که به منوی فیلد نگاهی بیندازید:

فقط دو تابع در اینجا وجود دارد، اما آنها می توانند بسیار مفید باشند! به خصوص اولین - "جایگزین". این به شما اجازه می دهد تا به سرعت حالت خودکارمقادیر را در کل ستون فیلد مشخص شده یا کلمات و نمادهای خاص را در سرتاسر پایگاه داده جایگزین کنید!

تابع "محاسبه" یک آنالوگ از فرمول های محاسبه خودکار اکسل است و به ما این فرصت را می دهد تا عملیات ریاضی و آماری مانند یافتن مجموع خودکار فیلد، محاسبه میانگین حسابی و همچنین حداکثر و حداقل مقادیر را انجام دهیم. طبیعتاً برای انجام محاسبات، انواع فیلدها باید عددی باشند (N, F, I, O, B).

آخرین ویژگی، که چندان واضح نیست اما می تواند مفید باشد، ویرایشگر هگز داخلی است:

این امکان را به شما می دهد که داده های هر سلول را ویرایش کنید. برای این کار کافیست محتوایی را که می خواهید تغییر دهید و در آن انتخاب کنید منوی زمینهآخرین مورد را انتخاب کنید - "Open in hex". همه چیز - می توانید نتیجه را ویرایش و ذخیره کنید یا فوراً چاپ کنید!

مزایا و معایب برنامه

  • قابلیت حمل و اندازه کوچک؛
  • پشتیبانی از تقریبا همه انواع فایل های DBF.
  • توانایی ایجاد پایگاه داده از ابتدا؛
  • پشتیبانی از پرس و جوهای SQL؛
  • سیستم داخلی برای جستجو، فیلتر کردن و ویرایش داده ها.
  • اجازه نمی دهد که بیش از یک ماسک در فیلتر مشخص شود.
  • هیچ تابع لغو وجود ندارد.

نتیجه گیری

برنامه Sdbf با حجم متوسط ​​و سیستم مورد نیازبه شما اجازه می دهد تا با پایگاه داده های DBF انجام دهید، اگر نه همه چیز، پس بسیار، بسیار... و اجرای پشتیبانی از پرس و جوهای SQL به طور کلی به شما این امکان را می دهد که کار ویرایش پایگاه داده را به سطح جدیدی ببرید! با کمک آنها می توانید به راحتی بسیاری از کاستی های کار را از طریق رابط گرافیکی جبران کنید.

بزرگترین ناامیدی، به نظر من، عدم وجود پیش پا افتاده ترین عملکرد «واگرد» بود آخرین اقدام” در دنیای ” CTRL + Z ” : ( آزاردهنده ترین چیز این است که به دلیل سهل انگاری یا ناآگاهی ، کاربر می تواند بطور تصادفی تصحیح خودکار را در تمام قسمت اعمال کند و برگشت داده غیرممکن خواهد بود :(

در پشت این، می توانیم بگوییم که برنامه از نظر عملکردی بیش از موفقیت آمیز است، اما قبل از کار با آن، همیشه از قانون مدیریت قدیمی پیروی کنید - CREATE Backups! و شما خوشحال خواهید شد :)

P.S. کپی و نقل قول آزادانه این مقاله مجاز است، مشروط بر اینکه یک پیوند فعال باز به منبع ذکر شده باشد و نویسندگی روسلان ترتیشنی حفظ شود.

DBF یک فرمت ذخیره سازی داده پرکاربرد است که در دهه 80 قرن گذشته ظاهر شد. برای اولین بار، این فرمت در خانواده dBase DBMS استفاده شد. با توجه به محبوبیت و استفاده گسترده از dBase، بسیاری از dBase مانند هستند محصولات نرم افزاری، که در مجموع xBase نامیده می شود. با وجود قدمت قابل توجه فرمت، هنوز هم به طور گسترده مورد استفاده قرار می گیرد. این مقاله نحوه کار با DBF از 1C:Enterprise را مورد بحث قرار می دهد.

1C: Enterprise از یک شی برنامه ویژه، xBase، برای کار با فایل های DBF (نسخه dBase III) استفاده می کند. کار با این شی معمولاً مشکلی ایجاد نمی کند.

توجه!

هنگام کار با فایل های DBF، به یاد داشته باشید که نام فایل باید محدودیت 8.3 را برآورده کند.

توجه!

شی xBase هم در سمت کلاینت و هم در سمت سرور در دسترس است. هنگام حل هر مشکل خاص باید به تعامل مشتری و سرور فکر کنید.

خواندن یک فایل dbf

خواندن داده ها از فایل DBFتولید شده در چند مرحله متوالی:

  1. ایجاد یک شی XBase.
  2. باز کردن یک فایل؛
  3. شمارش متوالی تمام خطوط فایل و خواندن مقادیر فیلد.
  4. بستن یک فایل
DBP = XBase جدید؛ DBP. OpenFile("D:\MyFile.dbf"); // مرحله 2. باز کردن فایل در حالی که True Loop // مرحله 3. در خطوط فایل تکرار کنیدگزارش (dbf.name)؛ اگر نه dbf Next() سپس // تعیین موقعیت در رکورد بعدی سقط EndIf چرخه پایان DBP. CloseFile(); // مرحله 4. بستن فایل

می توانید از یک الگوریتم کمی تغییر یافته برای تکرار در خطوط یک فایل استفاده کنید:

در حالی که DBF نیست. گزارش حلقه AtEnd(). (DBF. NAME)؛ DBP. بعد() چرخه پایان

در حال آپلود در فایل DBF

مراحل آپلود در فایل DBF:

  1. ایجاد یک شی XBase.
  2. مشخصات رمزگذاری (اگر مشخص نشده باشد، از رمزگذاری ANSI استفاده خواهد شد).
  3. شرح فیلدها؛
  4. ایجاد فایل؛
  5. حلقه با افزودن و پر کردن خطوط.
  6. بستن یک فایل

بیایید با یک مثال به این روند نگاه کنیم:

DBP = XBase جدید؛ // مرحله 1. یک شی XBase ایجاد کنید DBP. Encoding = EncodingXBase. OEM; // مرحله 2. مشخصات رمزگذاری DBP. زمینه های. Add("CODE" , "S" , 9 ); // مرحله 3. شرح نام و نوع فیلد DBP. زمینه های. Add("NAME" , "S" , 40 ); DBP. CreateFile("D:\MyFile.dbf"); // مرحله 4. ایجاد فایلانتخاب = دایرکتوری ها. نامگذاری. انتخاب کنید()؛ در حالی که انتخاب. حلقه بعدی () DBF. اضافه کردن()؛ // افزودن یک خط DBP. CODE = انتخاب. کد؛ // مقدار فیلد را پر کنید DBP. NAME = انتخاب. نام؛ DBP. نوشتن()؛ // نوشتن رشته EndCycle; DBP. بستن فایل(); // مرحله 6. بستن فایل

هنگام تعیین یک رمزگذاری، از نوع EncodingXBase استفاده می شود که می تواند دو مقدار داشته باشد:

  • ANSI– فرمت ویندوز؛
  • OEM- فرمت DOS

افزودن یک فیلد جدید هنگام توصیف یک ساختار دارای نحو است

اضافه کردن (< Имя>, < Тип>, < Длина>, < Точность>)

انواع زیر موجود است:

  • "N" - شماره؛
  • "S" - رشته؛
  • "D" - تاریخ؛
  • "L" - بولی؛
  • "F" - مشابه "N" - عدد.

طول فیلد برای انواع فیلد "N"، "F" و "S" اجباری است.

کار با شاخص ها

یک فایل فهرست ممکن است همراه با یک فایل DBF استفاده شود که ممکن است حاوی اطلاعاتی در مورد یک یا چند نمایه باشد. داشتن شاخص ها باعث می شود استفاده ممکنجستجو، و نه فقط شمارش متوالی تمام خطوط فایل.

هنگام ایجاد یک فایل فهرست، باید مشخص کنید:

  • فهرست شاخص ها؛
  • مسیر ذخیره فایل فهرست (در مرحله 4 آپلود).

نمونه ای از ایجاد یک فایل فهرست:

DBP . شاخص ها افزودن ("INDCODE" , "CODE" ); DBP. ایجاد فایل("D:\MyFile.dbf"، "D:\index.cdx");

روش اضافه کردن یک نمایه جدید دارای نحو است:

اضافه کردن (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

برای استفاده از نمایه ها هنگام خواندن از یک فایل DBF:

  • مسیر فایل فهرست (در مرحله 2 دانلود) را مشخص کنید.
  • شاخص فعلی را تنظیم کنید.

نمونه ای از باز کردن یک فایل DBF با استفاده از یک فایل فهرست:

DBP . OpenFile("D:\MyFile.dbf" , "D:\index.cdx"); DBP. CurrentIndex = dbf. شاخص ها INDCODE;

توجه!

هنگام باز کردن یک فایل DBF، موقعیت یابی در اولین رکورد در فایل رخ می دهد. اولین ورودی فایل با اولین ورودی فهرست مطابقت ندارد. در این راستا، هنگام استفاده از شاخص ها، قبل از پیمایش متوالی ردیف ها، باید در ردیف اول شاخص قرار گرفت. این را می توان با استفاده از متد First () انجام داد، برای مثال:

dbf . اولین()؛

یکی از دو تابع را می توان برای جستجو استفاده کرد:

  • برای پیدا کردن (< Ключ>, < Режим >) ;
  • FindByKey(< Режим >) .

در نتیجه کار هر دو تابع، مقداری با نوع بولی برگردانده می شود (خواه رکوردی با شرایط مشخص شده پیدا شود یا نه). در صورت جستجوی موفقیت آمیز، نشانگر فعلی روی رشته یافت شده تنظیم می شود. حالت جستجو می تواند یکی از مقادیر زیر باشد:

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

جستجو در یک فایل DBF را با استفاده از مثال ها در نظر بگیرید:

DBP = XBase جدید؛ DBP. OpenFile("D:\MyFile.dbf" , "D:\index.cdx"); // هنگام باز کردن یک فایل DBF، یک فایل فهرست اضافی مشخص می شود DBP. CurrentIndex = dbf. شاخص ها INDCODE; // شاخص فعلی را تنظیم کنید // با روش Find جستجو کنید:اگر dbf. Find("000000003" , "=" ) سپس Report( + DBF. NAME); گزارش دیگر ("یافت نشد"); EndIf // با روش FindByKey جستجو کنید: DBP. کلید. کد = "000000002" ; اگر dbf. FindByKey("=" ) سپس گزارش دهید( "یافت شد. نام مورد:"+ DBP. نام)؛ گزارش دیگر ("یافت نشد"); EndIf DBP. بستن فایل();

حذف رکوردها در یک فایل DBF

حذف یک ورودی با استفاده از متد Delete() انجام می شود:

DBP . حذف();

با این حال، هنگام استفاده از این روش، ورودی برای همیشه از فایل حذف نمی شود، به عنوان حذف علامت گذاری می شود. هنگام تکرار روی ردیف ها، رکوردهایی که برای حذف علامت گذاری شده اند نادیده گرفته می شوند. اگر می‌خواهید کل فایل را دور بزنید، از جمله ورودی‌هایی که برای حذف علامت‌گذاری شده‌اند، باید مقدار True را روی ویژگی تنظیم کنید. DisplayRemoteشی xBase. با استفاده از تابع RecordDeleted () می توانید متوجه شوید که آیا یک رکورد برای حذف علامت گذاری شده است یا خیر. برای حذف علامت حذف، از متد Restore() استفاده کنید.

DBP . DisplayDeleted = true; در حالی که DBF نیست. حلقه AtEnd() If dbf. RecordDeleted() سپس DBF. Reestablish(); EndIf DBP. بعد() چرخه پایان

برای حذف مستقیم رکوردهای علامت گذاری شده، از متد Compress() استفاده کنید:

DBP . فشرده کردن();

اگر نیاز دارید تمام رکوردهای یک فایل را مستقیماً حذف کنید، می توانید از متد ClearFile() استفاده کنید:

DBP . فایل روشن();

بارگیری از DBF با ADO

از فناوری ADO می توان برای کار با فایل های DBF استفاده کرد. درایورهای ADO همراه با سیستم عامل ویندوز هستند و نیازی به نصب اضافی ندارند.

یک مثال کد برای خواندن از یک فایل DBF با استفاده از فناوری ADO در نظر بگیرید:

ADO = COMObject جدید ("ADODB.Connection"); // یک شی COM ایجاد کنید ADO. باز کن( "Provider=Microsoft.Jet.OLEDB.4.0; |Data Source=""D:\""; |Extended Properties=DBASE III") DB = ADO. Execute ("انتخاب * از MyFile"); پرس و جو با دریافت تمام رکوردها از فایل MyFile.DBFدر حالی که DB. EOF=0 حلقه //از میان سوابق فایل DBF حلقه بزنیدگزارش (DB. Fields("Name"). value); // نمونه ای از دسترسی به مقدار فیلد DB. MoveNext(); //به رکورد بعدی برویدچرخه پایان ADO. بستن()؛

در مثال بالا، رشته اتصال "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\";Extended Properties=DBASE III" استفاده شده است. در این خط:

  • ارائه دهنده درایور مورد استفاده است.
  • منبع داده - مسیری که فایل DBF در آن قرار دارد. مسیر تا دایرکتوری مشخص شده است. نام فایل به عنوان نام جدول در کوئری ها استفاده می شود.
  • ویژگی های توسعه یافته - در مورد دسترسی به فایل های DBF، این یک پارامتر اجباری است. می توانید فرمت فایل را مشخص کنید

توجه!

هنگام خواندن به این روش، رمزگذاری پیش فرض OEM است. برای تغییر کدگذاری به ANSI، باید مقدار HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage را در رجیستری ویندوز روی "ANSI" تنظیم کنید.

آیا هیچ سوالی دارید؟
در نظرات مقاله بپرسید.

نحوه ایجاد فایل dbf از اکسل با استفاده از ADO در ADO گیج شدم ...... دقیقاً در اطلاعات خاص .... 1. اتصال به dbf (و به چه چیز دیگری می توان به کمک ado وصل کرد و چگونه ) 2. ایجاد یک فایل dbf (گزینه های دیگر). 3. ثبت؛ 4. صرفه جویی؛ 5.بستن با تشکر برای هر گونه اطلاعات

در این موضوع به دنبال چه چیزی باشیم یا نادیده گرفتن کامل ..... در موضوع ADO بهتر است یک موضوع ایجاد کنیم ..... استفاده گسترده از ADO

همانطور که معلوم است فقیر است

کد کار: "ایجاد یک فایل dbf از اکسل"

متنی

لیست برنامه

"::: مرحله 1 - تعیین کنید که کجا در حال اجرا از homeDir=Wscript.ScriptFullName "::: این مسیر کامل فایل ما است k=Instrrev(homeDir,"\") "::: به دنبال "\" از انتهای homeDir=left (homeDir,(k-1)) "::: این نام دایرکتوری تمیز است "::: مرحله 2 - ایجاد یک اتصال ADO و یک مجموعه رکورد خالی Set Conn = CreateObject("ADODB.Connection" ) تنظیم RS = CreateObject(" ADODB.Recordset") DSNName = "DRIVER=Microsoft dBase Driver (*.dbf);DBQ=" DSNName = DSNName & HomeDir "::: مرحله 3 - باز کردن اتصال Conn.Open DSNName ":: : مرحله 4 - دستور SQL- را برای ایجاد جدول آماده کنید SQL="create table Testtable (N1 Float, N2 Float)" "::: مرحله 5 - اجرا کنید RS. Open sql,Conn,3,3 "::: Stage 6 - اضافه کردن 100 برای رکوردها به جدول i=1 تا 100 SQL="insert into testtable مقادیر (" & cstr(i) & "," & Cstr(2*i-1) & ")" RS.Open sql,Conn,3,3 بعدی ":: : مرحله 7 - خلاصه... SQL="انتخاب sum(N1),sum(N2) از Testtable" RS.Open SQL,Conn,3,3 SS1=RS(0 ) SS2=RS(1) MsgBox SS1 MsgBox SS2 Rs.Close SQL="قطع کردن جدول e Testtable" RS.Open sql,Conn,3,3 MsgBox "جدول حذف شد!"