نمایش نتایج 1 تا 7 از 7

نام تاپیک: جمع ساعت

  1. #1
    کاربر دائمی آواتار alia.n
    تاریخ عضویت
    تیر 1389
    محل زندگی
    شیراز
    پست
    194

    Lightbulb جمع ساعت

    سلام دوستان من از برنامه ای که در سایت هستش برای جمع کردن ساعت استفاده کردم
    https://barnamenevis.org/showpost.ph...7&postcount=20

    اما به دلیل این که من اطلاعات رو از یک کوئری میگیرم که دارای پارامتر هست و اون پارامترها دو تا تاریخ که با ورود دو تاریخ جمع ساعت را باید نشان بدهد(یعنی جمع ساعات بین دو تاریخ وارد شده را محاسبه کند) اما گیر به پارامتر ها میدهد و درصورت حذف کردن پارامتر ها برنامه کاملا درست عمل می کند
    شرح خطا به این صورت است
    run time error 3061
    Too few parameters.expected2.

    ممنون میشم راهنمایی بفرمایید
    آخرین ویرایش به وسیله alia.n : پنج شنبه 01 اردیبهشت 1401 در 12:42 عصر

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع ساعت

    سلام و روز خوش

    شرط رو ببرین در همون کد اعمال کنین؛
    به این روش که اگر در کد اسم جدول اسفاده شده، اسم کوئری (یا کد کوئری) رو بجاش بگذارین.

    یا این که کد رو جوری تغییر بدین که اسم جدول (یا کوئری) و اسم فیلد زمان و شرط انتخاب رو بعنوان پارامتر بگیره.

  3. #3
    کاربر دائمی آواتار alia.n
    تاریخ عضویت
    تیر 1389
    محل زندگی
    شیراز
    پست
    194

    نقل قول: جمع ساعت

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام و روز خوش

    شرط رو ببرین در همون کد اعمال کنین؛
    به این روش که اگر در کد اسم جدول اسفاده شده، اسم کوئری (یا کد کوئری) رو بجاش بگذارین.

    یا این که کد رو جوری تغییر بدین که اسم جدول (یا کوئری) و اسم فیلد زمان و شرط انتخاب رو بعنوان پارامتر بگیره.

    سلام دوست عزیز ممنونم از پاسخگویی شما
    نگاه کنید کد من این هست



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Function GetTimeRoozanehTotal()
    Dim db As Database, rs As Recordset
    Dim totalhours As Long, totalminutes As Long
    Dim days As Long, Hours As Long, Minutes As Long
    Dim interval As Variant, j As Integer

    Set db = DBEngine.Workspaces(0).Databases(0)
    Set rs = db.OpenRecordset("TimeRoozaneh")
    interval = #12:00:00 AM#
    '
    While Not rs.EOF
    interval = interval + rs![Roozaneh]
    rs.MoveNext
    Wend
    totalhours = Int(CSng(interval * 24))
    totalminutes = Int(CSng(interval * 1440))
    Hours = totalhours Mod 24
    Minutes = totalminutes Mod 60
    ' در صورتیکه مایل به استفاده عبارات ساعت و دقیقه هستید خط زیر رو فعال کنید
    ' GetTimeRoozanehTotal = totalhours & " ساعت و " & Minutes & " دقیقه"
    GetTimeRoozanehTotal = totalhours & ":" & Minutes
    End Function


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


    ببخشید منظور شما رو متوجه نشدم که باید چکار کنم
    من تنها کاری که میکنم فقط فانکشن GetTimeRoozanehTotal رو توی یک تکتس باکس فراخوانی میکنم در صورتی که کوئری من پارامتر نداشته باشد مشکلی نیست و جمع همه رو حساب می کند اما زمانی که دو تاریخ به ان میدهم که بین دو تاریخ را جمع کند مشکل میشود
    شما می فرمایید شرط رو ببرم کحا من اصلا شرطی ندارم برا تغییر کد هم چکار کنم من طبق برنامه‌ای که در سایت بود انجام دادم و باید یک فانکشن در ماژول مینوشتم
    آخرین ویرایش به وسیله alia.n : یک شنبه 04 اردیبهشت 1401 در 07:36 صبح

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع ساعت

    خب اون کدی که استفاده میکنین (تابع GetTimeRoozanehTotal) ، اصلا آرگومان (پارامتر) نمیگیره که شما بخواین براش بفرستین.


    شرط رو ببرم کحا من اصلا شرطی ندارم
    شرط شما همین هست که میخواین بین یک بازه براتون حساب کنه و نه کل جدول!

    البته این کدی که استفاده کردین بی اشکال نیست ولی اگر برای شما کافی و جوابگو هست به شکل زیر عمل کنین:
    1- کد زیر رو:
    Set rs = db.OpenRecordset("TimeRoozaneh")

    به شکل زیر تغییر بدین:
    Set rs = db.OpenRecordset("SELECT Time_Field_Name FROM Table_Name WHERE Criteria")

    که Table_Name اسم جدول شما و Time_Field_Name اسم فیلد زمان مورد نظر شما و Criteria هم شرطی هست که دارین.

    2- کد زیر رو
    interval = interval + rs![Roozaneh]

    به صورت زیر تغییر بدین:
    interval = interval + rs(0)

  5. #5
    کاربر دائمی آواتار alia.n
    تاریخ عضویت
    تیر 1389
    محل زندگی
    شیراز
    پست
    194

    نقل قول: جمع ساعت

    ممنون خیلی خوب بود
    تشکر

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع ساعت

    در واقع برای محاسبه جمع ساعت اصلا نیازی به پیمایش در رکوردست نیست (دست کم به این شکل)
    و مستقیما قابل محاسبه است:
    DIM Total_Minutes , Hours , Minutes AS LONG
    Total_Minutes= DSUM("HOUR([Time_Field_Name])*60+MINUTE([Time_Field_Name])","Table_Name","Criteria")
    Hours= Total_Minutes \ 60
    Minutes= Total_Minutes MOD 60

  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع ساعت

    حتی میشه یک فیلد calculated به جدول اضافه کرد که همیشه مقدار یک فیلد از نوع ساعت رو برحسب دقیقه (یا ثانیه، بسته به کاربرد) نگه داره و به این ترتیب برای جمع از این فیلد استفاده کرد.

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: دوشنبه 01 شهریور 1400, 10:34 صبح
  2. پاسخ: 15
    آخرین پست: جمعه 26 مهر 1392, 07:49 صبح
  3. سوال: تغییر اتوماتیک تاریخ و ساعت سیستم به تاریخ و ساعت روز
    نوشته شده توسط mohammad_2039 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 16 مهر 1390, 09:11 صبح
  4. پاسخ: 7
    آخرین پست: یک شنبه 03 مهر 1390, 11:32 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •