ماژول MYSQL – اتصال برنامه های اکسل و اکسس به MYSQL

ریال 100،000

توضیحات

معرفی

ماژول MYSQL یک ماژول آماده است که با کمک آن می توانید در برنامه های اکسل و اکسس خود، براحتی به پایگاه داده MYSQL متصل و پرس و جوهای موردنظر خود را اجرا نمایید.
این ماژول کاملاً توسط ایران VBA برنامه نویسی و تهیه شده است.

ویژگی های ماژول MYSQL

  • دریافت تنظیمات اتصال به سرور از روی یک فایل متنی که در مسیر فایل اکسل یا اکسسی که ماژول در آن ذخیره شده است.
  • اجرای پرس و جو (query) روی دیتابیس MYSQL و ذخیره آن درون یک Recordset
  • قابلیت اجرای پرس و جو از روی فایل
  • افزایش امنیت با استفاده از قابلیت اجرای پرس و جو های پارامترشده از روی یک فایل یا متغیر
  • قابلیت اجرای چند پرس و جو روی یک تراکنش (Transaction) و تایید اعمال تغییرات (commit) روی دیتابیس یا بازگردان تغییرات (rollback) (فقط پرس و جوهای Update، Insert و Delete و جداول InnoDB)
  • قابلیت استفاده در اکسل و اکسس بدون اعمال تغییرات

توابع کاربردی ماژول MYSQL

تابع makeParameter

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

  • pmName   :   اجباری؛ نام پارامتر که نام فیلدی است که در قسمت WHERE پرس و جو قرار دارد و مقدار آن ? تعیین شده است.
  • pmType   :   اجباری؛ نوع داده پارامتر است و وابسته به نوع داده فیلد در پایگاه داده MYSQL می باشد.
  • pmSize   :   اجباری؛ اندازه پارامتر به تعداد کاراکتر (فیلد رشته) یا بایت (فیلدهای عددی) می باشد. اگر مقدار پارامتر (pmValue) بزرگتر از اندازه پارامتر باشد پیغام خطا دریافت خواهید کرد.
  • pmValue   :   اجباری؛ مقداری است که قرار است جایگزین ? در پرس و جو شود.

تابع mysqlOpenRs

این تابع وظیفه دریافت اطلاعات از پایگاه داده را در ماژول MYSQL برعهده دارد. پرس و جوهای SELECT را می توانید با این تابع اجرا نمایید.
این تابع یک پرس و جو را بر روی پایگاه داده ها اجرا می نماید و نتایج را در یک Recordset ذخیره می نماید. این تابع چهار آرگومان به شرح زیر دارد.

  • sqlType   :   اجباری؛ روش خواندن پرس و جو توسط تابع را تعیین می نماید و می تواند چهار مقدار به شرح زیر داده باشد:
    1. paramQryFromFile :‌ تابع پرس و جوی پارامتر شده را از یک فایل فراخوانی می نماید.
    2. paramQryFromString : تابع پرس و جوی پارامتر شده را از یک متغیر می خواند.
    3. qryfromFile : تابع یک پرس و جو ساده را از فایل فراخوانی می نماید. در این حالت پرس و جو نباید پارامتر شده باشد.
    4. qryfromString : تابع یک پرس و جوی ساده را از محتوای یک متغیر می خواند. در این حالت پرس و جو نباید پارامتر شده باشد.
  • arrPm   :   اجباری وقتی که sqlType یکی از مقدار paramQryFromFile یا paramQryFromString را داشته باشد، در غیر اینصورت اختیاری؛ این آرگومان یک متغیر با نوع داده Variant می باشد و می تواند بصورت یک متغیر یا یک آرایه به تابع وارد شود. قالب این آرگومان ابتدا باید در تابع makeParameter ساخته شود. در کد زیر می توانید نحوه تکمیل این آرگومان را در شکل متغیر و آرایه مشاهده نمایید.
    Dim pm(1) As String
    pm(0) = makeParameter("country", adVarChar, 50, "USA")
    pm(1) = makeParameter("state", adVarChar, 50, "CA")
    Set rs = mysqlOpenRs(paramQryFromString, pm, sql)
  • sqlString   :   اجباری وقتی که sqlType یکی از مقدار paramQryFromString یا qryfromString را داشته باشد، در غیر اینصورت اختیاری؛ یک متغیر از نوع داده String می باشد که حاوی پرس و جویی است که می خواهید اجرا نمایید.
  • sqlPath   :   اجباری وقتی که sqlType یکی از مقدار paramQryFromFile یا qryfromFile را داشته باشد، در غیر اینصورت اختیاری؛

تابع mysqlExecQry

این تابع وظیفه اجرای پرس و جوهایی که تغییراتی را می توانند در پایگاه داده اعمال نمایند را در ماژول MYSQL برعهده دارد. بنابراین می توانید پرس و جوهای INSERT، UPDATE و DELETE را با این تابع اجرا نمایید.
چهار آرگومان اول این تابع شبیه تابع mysqlOpenRs می باشد و کاربردی مشابه دارند. کاربرد دو آرگومان getLastId و newTrans در زیر توضیح داده شده است.

  • getLastId   :   اختیاری؛ وقتی که یک پرس و جوی INSERT را اجرا و یک رکورد جدید در تابع ایجاد می نمایید با تنظیم مقدار True برای این آرگومان می توانید مقدار جدید فیلد Auto-increment جدول را دریافت نمایید. برای این کار می توانید از کد زیر استفاده نمایید.
    newID = mysqlExecQry(qryfromString, , sql, , True, True)
  • newTrans   :   اختیاری؛ در صورتی که روی True تنظیم شود یک تراکنش (Transaction) جدید ایجاد می نماید. توجه داشته باشد که اجرای تابع با تنظیم مقدار True برای این آرگومان باعث پاک شدن تمامی دستورات Commit نشده (تایید نشده) خواهد شد. اگر قبل از Commit یا Rollback کردن یک تراکنش، تراکنش جدیدی را آغاز نمایید گزارش خطا دریافت خواهید نمود.
    اولین باری که تابع اجرا می شود در صورتی که از قبل تراکنشی شروع نشده باشد و مقدار آرگومان روی False تنظیم شود به هنگام Commit یا Rollback کردن خطا دریافت خواهید کرد چرا که هیچ تراکنشی برای Commit یا Rollback وجود نخواهد داشت.
    بعنوان مثال کد زیر باعث ایجاد خطا خواهد شد:

    newID(0) = mysqlExecQry(qryfromString, , sql, , True, True)
    newID(1) = mysqlExecQry(qryfromString, , sql, , True, True)

دستوراتی که توسط تابع mysqlOpenRs اجرا می شوند در پایگاه داده ها اعمال نمی شوند مگر اینکه توسط تابع mysqlCommit تایید شوند و یا توسط تابع mysqlRollback از حافظه پاک شوند. کد زیر نمونه ای از اجرای چند دستور بر روی یک تراکنش می باشد.

Sub test_4()
Dim sql As String
Dim newID(1) As Double

    sql = "INSERT INTO `test`(`name`, `lastname`) VALUES ('Sadegh', 'Abshenas')"
    newID(0) = mysqlExecQry(qryfromString, , sql, , True, True) ' Transaction Must Start Here
    
    
    sql = "INSERT INTO `test`(`name`, `lastname`) VALUES ('Chandler', 'Bing')"
    newID(1) = mysqlExecQry(qryfromString, , sql, , True, False) ' Note newTrans Argument Must Set to False
    
    ' New ids available before committed transaction
    Debug.Print newID(0)
    Debug.Print newID(1)
    
    ' Now you can commit transaction and make the changes on the database or rollback and undone changes.
    mysqlCommit ' or mysqlRollback

End Sub

تابع mysqlCommit

این تابع وظیفه تایید دستوراتی که در یک تراکنش ذخیره شده است را در ماژول MYSQL بر عهده دارد. اجرای این تابع بدون شروع یک تراکنش خطا ایجاد خواهد کرد.

تابع mysqlRollback

این تابع وظیفه برگردان و حذف دستوراتی که در یک تراکنش ذخیره شده است را در ماژول MYSQL بر عهده دارد. اجرای این تابع بدون شروع یک تراکنش خطا ایجاد خواهد کرد.

آموزش نصب ماژول MYSQL

اکسس

برای نصب ماژول MYSQL در اکسس فایل را از حالت zip خارج نمایید. ویرایشگر کد VBA را در اکسس باز نمایید.

چگونه ویرایشگر VBA را در اکسس و اکسل باز نمایم؟

از منوی Insert روی File کلیک نمایید و نوع فایل را از پایین پنجره باز شده Basic Files(*.bas) انتخاب نمایید. حالا فایل را از مسیری که در آن ذخیره شده است انتخاب نمایید.

اکسل

برای نصب ماژول MYSQL در اکسل از سربرگ توسعه دهنده یا Developer tab روی گزینه Visual Basic کلیک نمایید تا ویرایشگر VBA باز شود.

چگونه ویرایشگر VBA را در اکسس و اکسل باز نمایم؟
چگونه سربرگ توسعه دهنده را در اکسل فعال نمایم؟

از منوی Insert روی File کلیک نمایید و نوع فایل را از پایین پنجره باز شده Basic Files(*.bas) انتخاب نمایید. حالا فایل را از مسیری که در آن ذخیره شده است انتخاب نمایید.

دانلود ماژول MYSQL

استفاده از این ماژول رایگان می باشد، با این وجود می توانید با پرداخت مبلغ خرید این محصول ما را حمایت کنید.

ماژول MYSQL ایران وی بی ای را می توانید از صفحه ماژول در وب سایت GitHub دریافت نمایید.

https://github.com/a-sadegh63/vba-mysql-module