ورود اطلاعات از طریق فرم و جلوگیری از تکرار آنها

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

    • 2014/10/13
    • 40

    پرسش ورود اطلاعات از طریق فرم و جلوگیری از تکرار آنها

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

    با تشکر و احترام
  • misammisam
    مدير تالار حسابداری و اکسل

    • 2014/04/04
    • 892
    • 64.00

    #2
    سلام
    برای آپلود فایلتون بهتره اول زیپ کنید فایلتونو بعد اینجا آپلودش کنید .
    برای مشکلتونم میتونید از تابع Countif استفاده کنید ، بدین صورت که مثلا تعداد شماره محصولی که تو فرم وارد میکنید اگر بزرگتر از یک عدد بود پیفام اخطار بهتون بده .
    کد PHP:
     tedadcod Application.WorksheetFunction.CountIf(Sheet1.Range("A:A"), Texbox.value")) 
    [CENTER][SIGPIC][/SIGPIC]
    [/CENTER]
    [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
    [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
    [/CENTER]
    [/INDENT]

    [/FONT][/FONT][/FONT][/FONT][/FONT]
    [/CENTER]

    کامنت

    • pejmank

      • 2014/10/13
      • 40

      #3
      نوشته اصلی توسط misammisam
      سلام
      برای آپلود فایلتون بهتره اول زیپ کنید فایلتونو بعد اینجا آپلودش کنید .
      برای مشکلتونم میتونید از تابع Countif استفاده کنید ، بدین صورت که مثلا تعداد شماره محصولی که تو فرم وارد میکنید اگر بزرگتر از یک عدد بود پیفام اخطار بهتون بده .
      کد PHP:
       tedadcod Application.WorksheetFunction.CountIf(Sheet1.Range("A:A"), Texbox.value")) 
      با تشکر از پاسخ شما. موفق شدم فایل نمونه مورد نظرم رو به این پست پیوست کنم.
      در فایل پیوست میخوام از طریق فرم، Item number، Quantity و Color رو به جدول موجود در شیت2 اضافه کنم. ولی Item Number نمیخوام تکراری باشه . مثلا اگر Item Number شماره 123 توی لیست هست، وقتی این شماره رو مجددا وارد میکنم پیغام خطا بده.

      با تشکر
      فایل های پیوست شده

      کامنت

      • misammisam
        مدير تالار حسابداری و اکسل

        • 2014/04/04
        • 892
        • 64.00

        #4
        سلام
        داخل فایلتون هیچ گدی زده نشده ، فقط یه یوزر فرم هست ، حداقل یه چهار خط کد بزنید تا بهتون بگیم ایراد کار کجاست .
        [CENTER][SIGPIC][/SIGPIC]
        [/CENTER]
        [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
        [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
        [/CENTER]
        [/INDENT]

        [/FONT][/FONT][/FONT][/FONT][/FONT]
        [/CENTER]

        کامنت

        • pejmank

          • 2014/10/13
          • 40

          #5
          نوشته اصلی توسط misammisam
          سلام
          داخل فایلتون هیچ گدی زده نشده ، فقط یه یوزر فرم هست ، حداقل یه چهار خط کد بزنید تا بهتون بگیم ایراد کار کجاست .
          فایل اصلی رو پیوست کردم.
          توی این فایل من باید محصولات رو در صفحه انبار وارد کنم تا بتونم بر مبنای کد تیوب بعدا روی اونها کاری انجام بدم. (موجودی رو اضافه یا کم بکنم)
          حالا من میخوام این ورود محصولات هم از طریق فرم باشه و البته که محصول تکراری رو سیستم ثبت نکنه و پیغام خطا بده.

          با تشکر
          فایل های پیوست شده

          کامنت

          • misammisam
            مدير تالار حسابداری و اکسل

            • 2014/04/04
            • 892
            • 64.00

            #6
            نوشته اصلی توسط pejmank
            فایل اصلی رو پیوست کردم.
            توی این فایل من باید محصولات رو در صفحه انبار وارد کنم تا بتونم بر مبنای کد تیوب بعدا روی اونها کاری انجام بدم. (موجودی رو اضافه یا کم بکنم)
            حالا من میخوام این ورود محصولات هم از طریق فرم باشه و البته که محصول تکراری رو سیستم ثبت نکنه و پیغام خطا بده.

            با تشکر
            هر چند برای ورود کد محصول هیچ کدی نزدید ولی یه یوزر فرم درست کردم اونی که میخواستید براتون درستش کردم .
            فایل های پیوست شده
            [CENTER][SIGPIC][/SIGPIC]
            [/CENTER]
            [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
            [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
            [/CENTER]
            [/INDENT]

            [/FONT][/FONT][/FONT][/FONT][/FONT]
            [/CENTER]

            کامنت

            • pejmank

              • 2014/10/13
              • 40

              #7
              ممنون از جوابتون.
              توی این فایل آیا امکانش هست که آخرین وضعیت "قفسه" در صفحه انبار نمایش داده بشه؟
              (در واقع میخوام وقتی شماره قفسه کالایی رو در فرم اول عوض میکنم، در انبار هم این تعویض اتفاق بیفته)

              با تشکر

              کامنت

              • misammisam
                مدير تالار حسابداری و اکسل

                • 2014/04/04
                • 892
                • 64.00

                #8
                نوشته اصلی توسط pejmank
                ممنون از جوابتون.
                توی این فایل آیا امکانش هست که آخرین وضعیت "قفسه" در صفحه انبار نمایش داده بشه؟
                (در واقع میخوام وقتی شماره قفسه کالایی رو در فرم اول عوض میکنم، در انبار هم این تعویض اتفاق بیفته)

                با تشکر
                منظور از قفسه تو فایلتون اصلا چی هست ؟
                [CENTER][SIGPIC][/SIGPIC]
                [/CENTER]
                [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
                [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
                [/CENTER]
                [/INDENT]

                [/FONT][/FONT][/FONT][/FONT][/FONT]
                [/CENTER]

                کامنت

                • pejmank

                  • 2014/10/13
                  • 40

                  #9
                  نوشته اصلی توسط misammisam
                  منظور از قفسه تو فایلتون اصلا چی هست ؟
                  منظور شماره قفسه **ای هست که کالا در اون قرار داره.

                  کامنت

                  • pejmank

                    • 2014/10/13
                    • 40

                    #10
                    نوشته اصلی توسط misammisam
                    منظور از قفسه تو فایلتون اصلا چی هست ؟
                    سلام
                    همونطور که گفتم منظور از قفسه، شماره قفسه ای هست که کالا در اون قرار میگیره.

                    من یکسری تغییرات هم در فایل ایجاد کردم ولی با یک مشکل مواجه شدم:
                    وقتی یک شماره تیوب موجود هست و میخوام از موجودی برداشت کنم، برای اینکه موجودی منفی نشه، در TextBox9 و TextBox10 شروطی رو گذاشتم که اگر وضعیت در خروج از انبار (Stock OUT) بود و عدد وارد شده بیشتر از موجودی نمایش داده شده بود، ارور بده.
                    ولی مشکل اینجاست که مقایسه مقدار دو TextBox درست انجام نمیشه. مثلا اگر موجودی 18 تا باشه و من در باکس برداشت 2 رو وارد بکنم ارور میده . اینهم بخاطر این هست که اولین رقم سمت چپ باکس موجودی رو مد نظر قرار میده و نه همه عدد. به همین دلیل اگر موجودی 99 باشه و من تعداد 888 تا بخوام برداشت بکنم، ارور نمیده!!!!! چون اعداد 8 از اولین رقم سمت چپ 99 کوچکتر هستند.
                    ممنون میشم راهنمایی کنید چطور این مقایسه رو بصورت منطقی انجام بدم.

                    با تشکر
                    فایل های پیوست شده

                    کامنت

                    • misammisam
                      مدير تالار حسابداری و اکسل

                      • 2014/04/04
                      • 892
                      • 64.00

                      #11
                      خوب شما جای کدهارو اشتباه گذاشتید ، مثلا کدهایی که تو Private Sub TextBox10_Change() نوشتیدو بزارید درون دکمه Confirm تا در انتها کنترل بشه نه تو چنج کردن تکست باکس .
                      در ضمن شما بطور کلی قواعد کد نویسی رو رعایت نمیکنید ، مثلا یه تکس ثابتو ارجاع میدید به یه سلول بعد دوباره میرید اونو پیدا میکنید کار اشتباهیه ، خیلی راحت تکستونو بزارید داخل " " و البته کلی چیز دیگه که باعث میشه سخت کمکتون کرد .
                      [CENTER][SIGPIC][/SIGPIC]
                      [/CENTER]
                      [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
                      [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
                      [/CENTER]
                      [/INDENT]

                      [/FONT][/FONT][/FONT][/FONT][/FONT]
                      [/CENTER]

                      کامنت

                      • pejmank

                        • 2014/10/13
                        • 40

                        #12
                        نوشته اصلی توسط misammisam
                        خوب شما جای کدهارو اشتباه گذاشتید ، مثلا کدهایی که تو Private Sub TextBox10_Change() نوشتیدو بزارید درون دکمه Confirm تا در انتها کنترل بشه نه تو چنج کردن تکست باکس .
                        در ضمن شما بطور کلی قواعد کد نویسی رو رعایت نمیکنید ، مثلا یه تکس ثابتو ارجاع میدید به یه سلول بعد دوباره میرید اونو پیدا میکنید کار اشتباهیه ، خیلی راحت تکستونو بزارید داخل " " و البته کلی چیز دیگه که باعث میشه سخت کمکتون کرد .
                        اول اینکار رو کردم و کدها رو در دکمه confirm گذاشتم. ولی مشکل اینجا بود که : اولا دوتا if موازی رو باید داخل یک if دیگه استفاده میکردم. ثانیا وقتی در آخر کنترل رو انجام میدم، درسته که موجودی منفی رو چک میکنه و پیغام خطا میده ولی چون بعد از انجام تغییرات هست، موجودی منفی باقی میمونه.

                        و البته هنوز نتونستم مشکل مقایسه دو تکس باکس رو حل کنم. کماکان وقتی موجودی 10 هست و من عدد 2 رو برای خروج انتخاب میکنم، پیغام خطا میده (چون عدد 2 از اولین عدد سمت چپ 10 بزرگتر هست). لطفا در این مورد هم راهنمایی میکنید؟
                        Last edited by pejmank; 2017/12/26, 05:55.

                        کامنت

                        • misammisam
                          مدير تالار حسابداری و اکسل

                          • 2014/04/04
                          • 892
                          • 64.00

                          #13
                          نوشته اصلی توسط pejmank
                          اول اینکار رو کردم و کدها رو در دکمه confirm گذاشتم. ولی مشکل اینجا بود که : اولا دوتا if موازی رو باید داخل یک if دیگه استفاده میکردم. ثانیا وقتی در آخر کنترل رو انجام میدم، درسته که موجودی منفی رو چک میکنه و پیغام خطا میده ولی چون بعد از انجام تغییرات هست، موجودی منفی باقی میمونه.

                          و البته هنوز نتونستم مشکل مقایسه دو تکس باکس رو حل کنم. کماکان وقتی موجودی 10 هست و من عدد 2 رو برای خروج انتخاب میکنم، پیغام خطا میده (چون عدد 2 از اولین عدد سمت چپ 10 بزرگتر هست). لطفا در این مورد هم راهنمایی میکنید؟
                          میتونی بجای استفاده از
                          کد PHP:
                          Private Sub TextBox10_Change()

                          End Sub 
                          از TextBox10_BeforeUpdate استفاده کنی به این صورت :
                          کد PHP:
                          Private Sub TextBox10_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
                          If 
                          ComboBox1.Value Sheet2.Cells(412).Value And TextBox10 TextBox8.Value Then
                          MsgBox 
                          ("There is not such quantity in Stock")
                          TextBox10 ""
                          Else
                          End If
                          End Sub 
                          ولی هنوزم بنظرم بهترین کار همو.ن گذاشتن کدها درون دکمه confirm هست ، اصلا ایرادی نداره چند تا IF تو در تو درونش ایجاد کنید .
                          [CENTER][SIGPIC][/SIGPIC]
                          [/CENTER]
                          [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
                          [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
                          [/CENTER]
                          [/INDENT]

                          [/FONT][/FONT][/FONT][/FONT][/FONT]
                          [/CENTER]

                          کامنت

                          چند لحظه..