عدم ارتباط با worksheet

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

    • 2012/09/05
    • 67
    • 43.00

    عدم ارتباط با worksheet

    سلام
    دوتا سوال داشتم
    1. سوال اولم مربوط به تصویر ش1 میشه که خطا میده و خط addnew را زرد رنگ نشون میده، در صورتیکه اسم worksheetو ... بنظرم درسته
    2. در جدولی که درست کردم تاریخ ورود کالا را از طریق فرم وارد میکنم، هر کالا معمولا چندین بار برگشت داره، چه فرمولی توی محیط vb بنویسم که تاریخ آخرین خروج را برام بنویسه؟

    کدی که نوشتم را براتون گذاشتم

    ممنون از راهنماییتون
    فایل های پیوست شده
  • mokaram
    مدير تالار اکسل و بانک اطلاعاتی

    • 2011/02/06
    • 1805
    • 74.00

    #2
    برای قسمت دوم سوالتون:
    خود من همیشه این کار را میکنم . از ستون های کمکی استفاده کن به این شکل که روز و ماه و سال را بچسبون بهم ( با استفاده از تابع mid روز و ماه و سال را جدا کن و اونا را تو یه خونه بهم بچسبون ) بعد از این ستون max بگیری آخرین خروج را بهت میده
    [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
    [/CENTER]

    کامنت

    • 1716

      • 2012/09/05
      • 67
      • 43.00

      #3
      ممنون از راهنماییتون!
      بیشترین مشکل من اینه که اطلاعاتی را که وارد میکنم ترتیبی نیست مثلا شاید این ماه کالای a بره و 4 ماه دیگه برگرده و طی این 4 ماه قطعات دیگه رفته و برگشتن پس من نمیتونم براحتی اخرین خروج را وارد کنم،
      کاری که میخوام انجام بدم اینه که بیاد مثلا وقتی a را وارد میکنم یا لیست خروج هایی که داشته را برام مشخص کنه(از طریف لیست باکس یا...) یا خودش اخرین خروج را پیدا و در ستون مربوطه بیاره

      کامنت

      • ~M*E*H*D*I~
        • 2011/10/19
        • 4377
        • 70.00

        #4
        نوشته اصلی توسط 1716
        ممنون از راهنماییتون!
        بیشترین مشکل من اینه که اطلاعاتی را که وارد میکنم ترتیبی نیست مثلا شاید این ماه کالای a بره و 4 ماه دیگه برگرده و طی این 4 ماه قطعات دیگه رفته و برگشتن پس من نمیتونم براحتی اخرین خروج را وارد کنم،
        کاری که میخوام انجام بدم اینه که بیاد مثلا وقتی a را وارد میکنم یا لیست خروج هایی که داشته را برام مشخص کنه(از طریف لیست باکس یا...) یا خودش اخرین خروج را پیدا و در ستون مربوطه بیاره
        علی جان اگه مشکل هنوز پابرجاست فایلتو برام بفرست تا درستش کنم
        [CENTER]
        [SIGPIC][/SIGPIC]
        [/CENTER]

        کامنت

        • 1716

          • 2012/09/05
          • 67
          • 43.00

          #5
          فایل را براتون گذاشتم
          هر کالایی که میاد زمان ورودش در entrance_date وارد میشه و زمانی که خارج میشه زمانش در Out_date بعدا وارد میشه
          حالا مثلا در این فایل aa-22 بار دومی هست که وارد میشه (تقریبا هر کالا بیش از 2یا 3 بار برمیگرده پیش خودمون)، میخوام اخرین باری که خارج شده را در ستون last_out برام بیاره
          فایل های پیوست شده

          کامنت

          • ~M*E*H*D*I~
            • 2011/10/19
            • 4377
            • 70.00

            #6
            نوشته اصلی توسط 1716
            فایل را براتون گذاشتم
            هر کالایی که میاد زمان ورودش در entrance_date وارد میشه و زمانی که خارج میشه زمانش در Out_date بعدا وارد میشه
            حالا مثلا در این فایل aa-22 بار دومی هست که وارد میشه (تقریبا هر کالا بیش از 2یا 3 بار برمیگرده پیش خودمون)، میخوام اخرین باری که خارج شده را در ستون last_out برام بیاره

            یک نکته ای که لازمه اول بگم اینه که جدولت رو بد طراحی کردی دلیل خالی بودن ستون a رو متوجه نمیشم نکته دوم اینکه استفاده از table کار درستیه ولی تا زمانی که نیاز نیست تیبل رو گسترش نده چون حجم فایلتو میبره بالا سوم اینکه این ستونهایی که به عنوان year,month,day ایجاد کردی چه کاربردی داره ؟ به نظرم اضافه باشن
            اما سوال اصلی، مسلما تاریخ آخرین خروج یک کد کالا از تمام تاریخ خروج های اون کد بزرگتره ، اگر بخوای با کد انتخاب کنی کافیه از کد select where استفاده کنی که بحثش رو تو ADO کردیم ، اگر هم بخوای با فرمول انتخاب کنی امکان پذیره اما فرمول هات رو باید آرایه ای بنویسی
            [CENTER]
            [SIGPIC][/SIGPIC]
            [/CENTER]

            کامنت

            • 1716

              • 2012/09/05
              • 67
              • 43.00

              #7
              نوشته اصلی توسط ~M*E*H*D*I~

              یک نکته ای که لازمه اول بگم اینه که جدولت رو بد طراحی کردی دلیل خالی بودن ستون a رو متوجه نمیشم نکته دوم اینکه استفاده از table کار درستیه ولی تا زمانی که نیاز نیست تیبل رو گسترش نده چون حجم فایلتو میبره بالا سوم اینکه این ستونهایی که به عنوان year,month,day ایجاد کردی چه کاربردی داره ؟ به نظرم اضافه باشن
              اما سوال اصلی، مسلما تاریخ آخرین خروج یک کد کالا از تمام تاریخ خروج های اون کد بزرگتره ، اگر بخوای با کد انتخاب کنی کافیه از کد select where استفاده کنی که بحثش رو تو ADO کردیم ، اگر هم بخوای با فرمول انتخاب کنی امکان پذیره اما فرمول هات رو باید آرایه ای بنویسی
              خالی بودن ستون a این بود که میخواستم شماره ردیف را خودم وارد کنم ک یادم رفت
              باشه محدوده table را کمتر میکنم
              درسته منم خیلی دوست نداشتم باشن اما مشخص کردن day,month,year به این دلیله که توی فرم های دیگه ای، از این اطلاعات استفاده میشه و بعدا محاسبات اضافه ای انجام ندیم اینجا گذاشتمشون باشن
              فقط ی سوالی، من دو تا تاریخ رو که وارد میکنم و بعد اختلاف تعداد روز رو خودم حساب میکنم بعضی مواقع با چیزی که اکسل حساب میکنه فرق داره، من اشتباه حساب میکنم یا باید ماکرو رو اصلاح کنم؟؟؟
              select where را انجام میدم نتیجه اش رو خبر میدم

              ممنون از راهنماییت

              کامنت

              • ~M*E*H*D*I~
                • 2011/10/19
                • 4377
                • 70.00

                #8
                نوشته اصلی توسط 1716
                خالی بودن ستون a این بود که میخواستم شماره ردیف را خودم وارد کنم ک یادم رفت
                باشه محدوده table را کمتر میکنم
                درسته منم خیلی دوست نداشتم باشن اما مشخص کردن day,month,year به این دلیله که توی فرم های دیگه ای، از این اطلاعات استفاده میشه و بعدا محاسبات اضافه ای انجام ندیم اینجا گذاشتمشون باشن
                فقط ی سوالی، من دو تا تاریخ رو که وارد میکنم و بعد اختلاف تعداد روز رو خودم حساب میکنم بعضی مواقع با چیزی که اکسل حساب میکنه فرق داره، من اشتباه حساب میکنم یا باید ماکرو رو اصلاح کنم؟؟؟
                select where را انجام میدم نتیجه اش رو خبر میدم

                ممنون از راهنماییت
                جدا کردن تاریخ ها نیاز نیست ، وقتی تاریخ رو داری هرجایی که نیاز داشتی میتونی استفاده کنی دیگه نیاز به جدا سازی نیست ، برای محاسبات تاریخ از توابع فارسی استفاده کن خودت حساب نکن
                [CENTER]
                [SIGPIC][/SIGPIC]
                [/CENTER]

                کامنت

                • 1716

                  • 2012/09/05
                  • 67
                  • 43.00

                  #9
                  نوشته اصلی توسط ~M*E*H*D*I~
                  جدا کردن تاریخ ها نیاز نیست ، وقتی تاریخ رو داری هرجایی که نیاز داشتی میتونی استفاده کنی دیگه نیاز به جدا سازی نیست ، برای محاسبات تاریخ از توابع فارسی استفاده کن خودت حساب نکن
                  اره، از توابع فارسی استفاده کردم، توی ماژول های 1و21و3 نوشته شده منم استفاده کردم
                  m2s میلادی رو به شمسی و s2m شمسی رو به میلادی تبدیل میکنه که استفاده کردم اما خواستم برای اینکه ببینم درست حساب کرده یا نه خودم هم حساب کردم که چند موردش اختلاف داشت،

                  کامنت

                  • 1716

                    • 2012/09/05
                    • 67
                    • 43.00

                    #10
                    من این کد را نوشتم ولی خطایی که ضمیمه گذاشتم را میده
                    اینم کد
                    کد PHP:
                    [QUOTE]Private Sub CommandButton4_Click()
                    Dim cnn As New ADODB.Connection
                    Dim rss 
                    As New ADODB.Recordset
                    Dim strSQL 
                    As String
                    Dim fpath 
                    As String
                    Dim str1 
                    As String
                    Dim txtb1 
                    As String
                    Set cnn 
                    = New ADODB.Connection
                    Set rss 
                    = New ADODB.Recordset


                    fpath 
                    ThisWorkbook.Path Application.PathSeparator ThisWorkbook.Name
                    str1 
                    "provider=microsoft.ace.12.0;data source=""" fpath """;extended properties=""excel 12.0 xlm;HDR=YES"";"
                    strSQL " select distinct [sn] from [GM$] order by [txtb1]"


                    cnn.Open str1


                    ComboBox3
                    .Clear


                    rss
                    .Open strSQLcnnadOpenKeysetadLockOptimistic
                    If rss.********unt 0 Then
                    Do While Not rss.EOF
                    ComboBox3
                    .AddItem rss.Fields(0)
                    rss.MoveNext
                    Loop
                    Else: MsgBox "ÓÇÈÞå Çí ÈÑÇí Çíä ˜ÇáÇ æÌæÏ äÏÇÑÏ!"vbCritical vbOKOnly
                    End 
                    If

                    End Sub[/QUOTE
                    فایل های پیوست شده
                    Last edited by ~M*E*H*D*I~; 2014/04/24, 10:42.

                    کامنت

                    • ~M*E*H*D*I~
                      • 2011/10/19
                      • 4377
                      • 70.00

                      #11
                      الان این کد باید چیکار کنه ؟ چیزی که من میبینم با اون چیزی که مد نظر بود( یعنی تعیین آخرین خروج) فرق داره فایلی که این کد رو داخلش نوشتی پیوست کن با یک سری اطلاعات نمونه تا بررسی کنم
                      [CENTER]
                      [SIGPIC][/SIGPIC]
                      [/CENTER]

                      کامنت

                      • 1716

                        • 2012/09/05
                        • 67
                        • 43.00

                        #12
                        نوشته اصلی توسط ~M*E*H*D*I~
                        الان این کد باید چیکار کنه ؟ چیزی که من میبینم با اون چیزی که مد نظر بود( یعنی تعیین آخرین خروج) فرق داره فایلی که این کد رو داخلش نوشتی پیوست کن با یک سری اطلاعات نمونه تا بررسی کنم
                        اومدم یک باتن را با اون کد به یک کمبوباکس ارتباط دادم، که وقتی شماره سریال را وارد میکنیم و زدن این باتن بیاد تاریخ های خروجی که داشته را لیست کنه و از اون لیست خودم تاریخ انتخاب کنم
                        ی کد دیگه هم نوشتم که اینجا نذاشتم ولی توی فایل هست، که اونم همون مشکل و خطا را میده
                        فایل های پیوست شده

                        کامنت

                        • ~M*E*H*D*I~
                          • 2011/10/19
                          • 4377
                          • 70.00

                          #13
                          علی جان این کد رو اشتباه نوشتی

                          فک میکنم قبلا هم تو دوره همین اشتباه رو انجام دادی


                          کد PHP:
                          strSQL "select [GM$].[last_Out] " "where [GM$].[last_out]=" ComboBox3.Text 
                          تو قمست where از دو شرط استفاده کنی

                          به این صورت که

                          اسم کالایی را انتخاب کنه که کد آن x باشد ودارای بزرگترین تاریخ خروج باشد
                          [CENTER]
                          [SIGPIC][/SIGPIC]
                          [/CENTER]

                          کامنت

                          • 1716

                            • 2012/09/05
                            • 67
                            • 43.00

                            #14
                            در قسمت where با and دو تا شرط رو مینویسم اما ماکسیمم را چطوری بنویسم؟
                            با max, large امتحان کردم نشد

                            کامنت

                            • ~M*E*H*D*I~
                              • 2011/10/19
                              • 4377
                              • 70.00

                              #15
                              به دو صورت میشه نوشت
                              کد PHP:
                              select max(datewhere id=
                              یا
                              کد PHP:
                               (select name where id=and date=(select max(table.datefrom table 
                              [CENTER]
                              [SIGPIC][/SIGPIC]
                              [/CENTER]

                              کامنت

                              چند لحظه..