آیا این مسئله نگهداری و تعمیرات با vba قابل حل هست؟

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • esyoo

    • 2010/03/09
    • 151

    آیا این مسئله نگهداری و تعمیرات با vba قابل حل هست؟

    با سلام
    من در حال نوشتن برنامه نگهداری وتعمیرات هستم.(هنوز در فاز های اولیه هستم)
    در این برنامه اگر یک ماشین خراب بشه برای تعمیر اون اقدام میکنند و یک سری قطعات رو تعویض یا تعمیر میکنند.
    من با صحبت هایی که کردم نهایتا برای یک ماشین تا 10 قطعه رو تعویض میکنند
    با توجه به عکس برای ماشین 1000 در تاریخ 88/01/01 نیز 10 نوع قطعه مصرف شده که مقدار مصرف اون جلوش هست می بینید.
    و این روند تا 31 هر ماه ادامه دارد.

    حالا می خو اهیم آخر ماه یک گزارش بگیرم و ببینیم که ماشین 1000 در کل ماه چه قطعاتی و به چه مقداری مصرف کرده است؟
    ممنون میشم راهنمایی کنید.









    آیا اشکال من در ایجاد دیتا بیس بوده و باید به گونه ای دیگر طراحی شود؟
    ممنون
    نمونه فایل:
    http://www.4shared.com/file/qjyV4vYy/net.html


    در پست 16 همین تاپیک به خواسته ام رسیدم.
    [CENTER][URL="http://www.office-learning.ir/"]وب سایت آموزشی آفیس[/URL]
    [/CENTER]
  • m_d6712

    • 2010/05/22
    • 174

    #2
    RE: آیا این مسئله نگهداری با vba قابل حل هست؟

    طراحی دیتابیس مقوله ایست که باید در آن دقت زیادی شود!
    کلا اگر این برنامه رو با Access بنویسید خیلی بهتر و کارامد تر خواهد بود.
    اکسس یک برنامه مدیریت بانک اطلاعاتی است که به صورت تخصصی برای تهیه نرم افزار های سیستمی مورد استفاده قرار میگیرد که در درس MIS رشته صنایع تدریس می شود.
    اکسل نرم افزار تخصصی برای ایجاد این برنامه نیست! ولی اگر می خواهید با اکسل این برنامه را بنویسید. این روند را انجام دهید:

    شکستن جداول: این جدولی که دارید را به حداقل سه جدول بشکنید به صورت زیر:
    1- جدول لیست دستگاه ها
    2- جدول لیست قطعات
    3- جدول لیست قطعات مصرفی در دستگاه ها

    هر جدول در یک شیت
    -------
    [url=http://md6712.com]http://md6712.com[/url]
    جامعه ایده پردازان: http://idekadeh.com

    کامنت

    • shamsololama

      • 2010/02/15
      • 940

      #3
      RE: آیا این مسئله نگهداری با vba قابل حل هست؟

      نوشته اصلی توسط m_d6712
      طراحی دیتابیس مقوله ایست که باید در آن دقت زیادی شود!
      کلا اگر این برنامه رو با Access بنویسید خیلی بهتر و کارامد تر خواهد بود.
      اکسس یک برنامه مدیریت بانک اطلاعاتی است که به صورت تخصصی برای تهیه نرم افزار های سیستمی مورد استفاده قرار میگیرد که در درس MIS رشته صنایع تدریس می شود.
      اکسل نرم افزار تخصصی برای ایجاد این برنامه نیست! ولی اگر می خواهید با اکسل این برنامه را بنویسید. این روند را انجام دهید:

      شکستن جداول: این جدولی که دارید را به حداقل سه جدول بشکنید به صورت زیر:
      1- جدول لیست دستگاه ها
      2- جدول لیست قطعات
      3- جدول لیست قطعات مصرفی در دستگاه ها

      هر جدول در یک شیت

      با درود فراوان
      دوست خوبم m-d6712 در مورد جواب بالا دقت فرمائید این سایت و این قسمت برای هم فکری و جواب به سئوالات هست نه مقایسه نرم افزارها با هم و دوستانی که در مورد اکسل سئوال دارند حتما مایلند این سئوالشان در مورد اکسل حل شود وگرنه ممکن است با کلی نرم افزار های دیگه هم آشنایی داشته باشند و اگر زحمت جواب دوستان متحمل می شوید جواب را کامل بنویسید و یا دقیق تر راهنمائی فرمائید که مورد استفاده دوستان قرار بگیرد
      ---------------------------------------------------------------------------------------------------
      بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
      shamsololama@yahoo.com
      09177733411

      کامنت

      • shamsololama

        • 2010/02/15
        • 940

        #4
        RE: آیا این مسئله نگهداری با vba قابل حل هست؟

        با درود فراوان
        این فرمی بود که قبلا آماده کرده بود م قسمتی از آن را تغییر دادم که کار شما رو انجام میده و در کلید جستجو 2 قرار داده ام
        در بقیه کلید ها جستجو را با تعداد شرطهای متفاوت انجام میدهد که به عنوان نمونه گذاشتم تا کدها رو ببینی و خواستی استفاده کنی

        فایل رو برات میل کردم
        عکس از برنامه:
        ---------------------------------------------------------------------------------------------------
        بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
        shamsololama@yahoo.com
        09177733411

        کامنت

        • m_d6712

          • 2010/05/22
          • 174

          #5
          RE: آیا این مسئله نگهداری با vba قابل حل هست؟

          با تشکر از دوست عزیز جناب آقای شمس العلماء
          توانایی اکسل بسیار بالاست و خیلی از کارها رو می تونه انجام بده! در این هیچ شکی نیست! اما وظیفه خودم دونستم که راه های بهتر رو هم برای دوستان مشخص کنم! همچنان معتقدم اکسس برای این کار بهتره! و انجام صحیح این پروژه با اکسل بسیار دشوار تر است! با این وجود به توصیه شما گوش کردم و یک نمونه از این پروژه که با اکسل ایجاد شده برایتان میگذارم!


          اصل فایل اکسل کامل:
          http://www.mediafire.com/file/xqgcmvn28e4ah2k/Repair-Cm.xlsm



          برای مقایسه: اگر قرار بود این فایل رو با اکسس درست کنم ده برابر در زمان صرفه جویی می شد. و همچنین نیاز به هیچ کد نویسی نبود زیرا ویزارد های اکسس بسیار راحت هستند.


          توضیحات:

          ابتدا پیکربندی به صورت زیر است:




          به ترتیب جداول به صورت زیر می باشد.
          1- جدول قطعات:


          2- جدول ماشین ها:


          3- جدول تعمیرات:


          4- جدول قطعات استفاده شده در تعمیرات:



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


          می توان با کد نویسی بسیار مختصر و استفاده از فرمان های SQL تمامی گزارش های مورد نیاز را درخواست داد.

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

          کد زیر برای وصل شدن به فایل اکسل کنونی است. (activeWorkBOOK)
          البته قبل از نوشتن این کد برای فعال سازی ADODB که کلاس خاصی برای وصل شدن به بانک های اطلاعاتی می باشد باید آن را به فایل خود Add کنید. برای این کار به روی Tools و در آن References را انتخاب کنید. در لیست کتابخانه Mirosoft ActiveX Data Objects 2.8 Library را انتخاب کرده و تیک آن را بزنید. و Ok را بفشارید.



          کد:
          Dim cn As ADODB.Connection
          Set cn = New ADODB.Connection
          cn.Provider = "MSDASQL"
          cn.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
          "DBQ=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & "; ReadOnly=True;"
          در کد بالا cn شی مورد نظر ماست که ایجاد کردیم. در انتها connectionstring برای وصل شدن به فایل اکسل کنونی را وارد کردیم! دقت فرمایید که از دو مشخصه ThisWorkbook.Path و ThisWorkbook.Name برای ایجاد آدرس فایل کنونی استفاده شده است.

          برای درخواست دادن و انتخاب باید از فرمان SQL استفاده کرد که به زودی در بخش بانک های اطلاعاتی به طور کامل توضیح خواهم داد.

          به عنوان مثال برای درخواست و چاپ تمامی خرابی ها در ماه 05 می توان از فرمان زیر استفاده کرد.
          کد:
           strQuery = "Select * From [Sheet1$L:N] where CMDate Like '89/05/%'"
              Set RsReport = cn.Execute(strQuery)
              Sheet2.Range("A2:Z10000").CopyFromRecordset RsReport
          در کد بالا StrQuery متن درخواست است. ترجمه متن درخواست به این صورت است: "همه (*) اطلاعات از جدول [Sheet1$L:N] (که همان ستون های L,M,N از شیت 1است) را انتخاب کن(Select) به شرطی که (where) تاریخ آنها مشابه '05/89' باشد.
          "




          یا اگر بخواهیم بدانیم هر کدام از ماشین ها چه روز هایی خراب شده اند:
          کد:
          Dim StrMachineName As String
              StrMachineName = 'نام ماشین مورد نظر مثلا سنگ'
              strQuery = "Select [Sheet1$M:N].CMDate From [Sheet1$A:B],[Sheet1$M:N] where [Sheet1$A:B].MachineCode=[Sheet1$M:N].MachineCode And [Sheet1$A:B].MachineName= '" + StrMachineName + "'"
              Set RsReport = cn.Execute(strQuery)
              Sheet2.Range("A2:Z10000").CopyFromRecordset RsReport
          همچنین به عنوان مثال می خواهیم بدانیم از هر کدام از قطعات چقدر مصرف شده است. از این کد استفاده می کنیم:

          کد:
          strQuery = "Select First([Sheet1$G:H].PartName),Sum([Sheet1$P:R].ComsumeNum) From [Sheet1$P:R],[Sheet1$L:N],[Sheet1$G:H] where [Sheet1$P:R].CMCode=[Sheet1$L:N].CMCode And [Sheet1$P:R].CMPart=[Sheet1$G:H].PartCode Group By [Sheet1$G:H].PartCode"
            
              Set RsReport = cn.Execute(strQuery)
              Sheet2.Range("A2:Z10000").CopyFromRecordset RsReport
          گزارش دیگری که می توان ایجاد کرد گزارش قطعات مصرفی یک ماشین است:

          کد:
           strQuery = "Select First(PartName), Sum(ComsumeNum) From [Sheet1$P:R],[Sheet1$L:N],[Sheet1$G:H],[Sheet1$A:B] where [Sheet1$A:B].MachineCode=[Sheet1$L:N].MachineCode   And [Sheet1$P:R].CMCode=[Sheet1$L:N].CMCode And [Sheet1$P:R].CMPart=[Sheet1$G:H].PartCode and [Sheet1$A:B].MachineName = '" + machine + "' Group BY PartName"
          
              Set RsReport = cn.Execute(strQuery)
              Sheet2.Range("A2:Z10000").CopyFromRecordset RsReport



          و هر گزارش دیگری که دوست داشته باشید را می توانید با 4 خط برنامه ایجاد کنید.
          جستجو، مرتب سازی و ... از مزیت های این روش است.
          -------
          [url=http://md6712.com]http://md6712.com[/url]
          جامعه ایده پردازان: http://idekadeh.com

          کامنت

          • khakzad

            • 2010/03/17
            • 2034
            • 85.00

            #6
            RE: آیا این مسئله نگهداری با vba قابل حل هست؟

            با سلام
            من یه راهی به نظرم رسید برای تشکیل دیتابیس

            اینطوری 2 محدودیت از بین میره:
            1)تعداد قطعه تعویضی در هر روز(چون ممکنه بنا به دلایلی از 10 بیشتر بشه)
            2)ممکنه در هر روز بیشتر از یک ماشین نیاز به تعمیر داشته باشه

            در ضمن، برای درج تاریخ از فرمت 00"/"00"/"00 استفاده کنید که مشکلی پیش نیاید.

            در اینصورت می توانید در یک بازه مشخص همه اطلاعات خواسته شده را بدست بیاورید. با استفاده از فرمول vlookup و برای تعداد از sumif و در نهایت برای یافتن انواع قطعات استفادده شده از autofilter و unic code استفاده کنید
            اینا به ذهنم رسید.حالا در اجرا اگر مشکلی داشتی در خدمتم
            امیدوارم بتونم کمک کنم
            (در شیت 2 فایل خودتون نمونه دیتابیس رو گذاشتم)
            فایل های پیوست شده
            [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

            [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
            [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
            :wcom:

            [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
            [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
            [/CENTER]

            کامنت

            • esyoo

              • 2010/03/09
              • 151

              #7
              RE: آیا این مسئله نگهداری با vba قابل حل هست؟

              دوست عزیز khakzad
              من تقریبا همین روشی که شما گفتید رو دارم اجرا میکنم ولی به سبکی دیگر.
              [CENTER][URL="http://www.office-learning.ir/"]وب سایت آموزشی آفیس[/URL]
              [/CENTER]

              کامنت

              • khakzad

                • 2010/03/17
                • 2034
                • 85.00

                #8
                RE: آیا این مسئله نگهداری با vba قابل حل هست؟

                پس مشکل کجا بود؟[hr]
                به نکته ای برخورد کردید لطفا به من هم بگید.ممنون
                [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

                [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
                [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
                :wcom:

                [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
                [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
                [/CENTER]

                کامنت

                • shamsololama

                  • 2010/02/15
                  • 940

                  #9
                  RE: آیا این مسئله نگهداری با vba قابل حل هست؟

                  با درود فراوان
                  فایلی که براتون میل کردم رو نگاه کردین؟ من فکر کردم مشکل حل شده چون با روش میشه تمام اطلاعات خواسته شده رو یک جا جستجو کرد حتی با چند شرط (مثلا ماشینهای کد 1000 که بین تاریخ مشخصی تعمیر شده و همچنین قطعه کد 3 تعویض شده برابر با 5 قطعه باشد)
                  و حتی اگر تعداد قطعه تعویضی آن از 10 بیشتر باشه نیز مشکلی ایجاد نمی کند
                  فایلی که فرستادم جستجو را شکل بالا که گفتم انجام میدهد که قسمتی از آن را به عنوان نمونع برای شما تغییر داده بودم
                  و اگر برای قرار دادن روی فایل خود مشکلی داری تا نمونه کامل آن را آماده کنم برایتان میل کنم و اگر حس می کنی جوابگوی خواسته شما نیست بگویید تا روشی دیگر را برایتان بگویم.
                  ---------------------------------------------------------------------------------------------------
                  بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
                  shamsololama@yahoo.com
                  09177733411

                  کامنت

                  • khakzad

                    • 2010/03/17
                    • 2034
                    • 85.00

                    #10
                    RE: آیا این مسئله نگهداری با vba قابل حل هست؟

                    سلام
                    این فایل رو مبتونم ببینم؟منم داشته باشم؟
                    [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

                    [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
                    [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
                    :wcom:

                    [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
                    [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
                    [/CENTER]

                    کامنت

                    • esyoo

                      • 2010/03/09
                      • 151

                      #11
                      RE: آیا این مسئله نگهداری با vba قابل حل هست؟

                      نوشته اصلی توسط shamsololama
                      با درود فراوان
                      فایلی که براتون میل کردم رو نگاه کردین؟ من فکر کردم مشکل حل شده چون با روش میشه تمام اطلاعات خواسته شده رو یک جا جستجو کرد حتی با چند شرط (مثلا ماشینهای کد 1000 که بین تاریخ مشخصی تعمیر شده و همچنین قطعه کد 3 تعویض شده برابر با 5 قطعه باشد)
                      و حتی اگر تعداد قطعه تعویضی آن از 10 بیشتر باشه نیز مشکلی ایجاد نمی کند
                      فایلی که فرستادم جستجو را شکل بالا که گفتم انجام میدهد که قسمتی از آن را به عنوان نمونع برای شما تغییر داده بودم
                      و اگر برای قرار دادن روی فایل خود مشکلی داری تا نمونه کامل آن را آماده کنم برایتان میل کنم و اگر حس می کنی جوابگوی خواسته شما نیست بگویید تا روشی دیگر را برایتان بگویم.
                      سلام
                      بله.ولی نفهمیدم چطور باید استفاده کنم.
                      مثلا کجا کد ماشین رو بدم(مثلا1000) و بعد کجا تاریخ رو بدم تا به من بگه این ماشین در کل ماه چه قطعاتی با چه مقداری مصرف کرده

                      واقعا نمونه کاملی بود.مخصوصا گرافیک جذابی داشت
                      خیلی خیلی ممنون از زحمات شما و بقیه دوستان[hr]
                      نوشته اصلی توسط khakzad
                      سلام
                      این فایل رو مبتونم ببینم؟منم داشته باشم؟
                      دارم روی vba اون کار میکنم به محض تکمیل شدن میگذارم تا
                      1)اولا توضیحات بیشتری بدم از خواسته هام
                      2)اشکالاتم رو بقیه دوستان و اساتید به من بگند تا برنامه بهتری بشه

                      با تشکر
                      [CENTER][URL="http://www.office-learning.ir/"]وب سایت آموزشی آفیس[/URL]
                      [/CENTER]

                      کامنت

                      • shamsololama

                        • 2010/02/15
                        • 940

                        #12
                        RE: آیا این مسئله نگهداری با vba قابل حل هست؟

                        نوشته اصلی توسط khakzad
                        سلام
                        این فایل رو مبتونم ببینم؟منم داشته باشم؟
                        با درود فراوان

                        این فایل نمونه یا فایل اصلی این برنامه ؟
                        هرکدام که میخواهید بگوید تا برایتان میل کنم چون وقتی آپلود میکنم دوستان برای دانلود مشکل دارند
                        دیگر دوستان نیز در صورتی که فایل رو می خواهند برایشان میل می کنم[hr]
                        با درود فراوان
                        برای استفاده نمونه فایل
                        در کمبو باکس اول موضوعی که می خوهاید جستجو کنسد را وارد می کنید
                        مثلا کد را وارد م کنید و در کمبو باکس دوم کدهایی که می خواهید جستجو کنید مثلا 1000 را وارد می کنید

                        برای تاریخ هم (که البته برای آن نمونه که برای شما فرستاده تنظیم نشده و برای فایل اصلی استفاده می شود)مشخص هست روز و ماه و سال مورد نظر را وارد و کلید جستجویی که کنار همان تاریخ هست کلیک می کنید و برای یافتن کد به تنهایی کلید جستجو کنار کمبو باکس را کلید می کنید
                        گذاشتن کلید های مختلف جستجو بخاطر این گذاشته ام که همزمان به جستجو های با محدویتهای و شرطهای مختلف قابل دسترسی باشد
                        ---------------------------------------------------------------------------------------------------
                        بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
                        shamsololama@yahoo.com
                        09177733411

                        کامنت

                        • khakzad

                          • 2010/03/17
                          • 2034
                          • 85.00

                          #13
                          RE: آیا این مسئله نگهداری و تعمیرات با vba قابل حل هست؟

                          سلام
                          همونی که خودتون گفتید کامل هست و همه نمونه ها رو داره
                          ممنون میشم
                          [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

                          [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
                          [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
                          :wcom:

                          [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
                          [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
                          [/CENTER]

                          کامنت

                          • esyoo

                            • 2010/03/09
                            • 151

                            #14
                            RE: آیا این مسئله نگهداری و تعمیرات با vba قابل حل هست؟

                            سلام
                            اگر امکان داره نمونه کامل رو برای من بفرستید.
                            با تشکر
                            [CENTER][URL="http://www.office-learning.ir/"]وب سایت آموزشی آفیس[/URL]
                            [/CENTER]

                            کامنت

                            • shamsololama

                              • 2010/02/15
                              • 940

                              #15
                              RE: آیا این مسئله نگهداری و تعمیرات با vba قابل حل هست؟

                              با درود فراوان

                              بله خواهش میکنم
                              امروز میفرستم و اگر توضیح هم نیاز داشت بپرس و یا تلفنی بگو تا خدمتان عرض کنم
                              ---------------------------------------------------------------------------------------------------
                              بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
                              shamsololama@yahoo.com
                              09177733411

                              کامنت

                              چند لحظه..