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

نام تاپیک: طولانی بودن کد در VBA

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    Tick طولانی بودن کد در VBA

    باسلام خدمت همه دوستان
    آیا در نمونه ضمیمه کسی میدونه چرا هنگام اجرای ریپورت خطا ظاهر می شه؟
    من نمونه های دیگر را دیده ام ولی هرچه سعی می کنم آنرا پیدا کنم با خطا مواجه می شوم.
    **** با توجه به اینکه در نمونه واقعی طول Select زیاد می باشد لذا نمی خواهم کل Select در یک خط باشد ****
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar db5.rar‏ (15.2 کیلوبایت, 99 دیدار)

  2. #2
    کاربر دائمی آواتار مهدی قربانی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    2,435

    نقل قول: طولانی بودن کد در VBA

    سلام
    بهتره به اين شكل عمل كنيد :

    Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    Dim db As Database
    Dim rst As Recordset
    Dim strSQL As String
    strSQL = "SELECT Table1.a, Table1.b, Table2.a2, Table2.a3"
    strSQL = strSQL & " FROM Table1 INNER JOIN Table2 ON Table1.a = Table2.a"
    Set db = CurrentDb
    Set rst = db.OpenRecordset(strSQL)
    Me.Text0 = rst.Fields(0)
    End Sub
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    باسلام
    ضمن تشکر از حضرتعالی ولی منظور من نحوه نوشتن کد نبود بلکه مشکل من طول کد می باشد . همانگونه قبلا نیز عرض کردم فایل فوق را بعنوان نمونه قرار داده بودم تا سوالم واضح تر باشد .
    نمونه نزدیک به برنامه ام شبیه زیر می باشد.
    Set rst1 = db1.openrecordset("SELECT T_Main.Id, T_Main.date_input, _
    'T_Shobeh.Shobeh,T_Name_Mamor.F_Name, T_Name_Mamor.Name_Mamor, _
    ' [T_Name_Mamor.F_Name]+" "+[Name_Mamor] AS Expr1 ,T_Main.Date_Mamor, _
    ' T_Main.Date_Eblagh, T_Resalt.Resalt, T_Main.Date_Sh, T_Main.Date_Dadgh, diff([date_Input],[Date_Dadgh]) AS a _
    ' FROM T_Shobeh INNER JOIN (T_Name_Mamor INNER JOIN _
    ' (T_Resalt INNER JOIN T_Main ON T_Resalt.Id_Resalt = T_Main.id_Resalt) ON _
    ' T_Name_Mamor.id_Name_mamor = T_Main.id_Name_Mamor) ON T_Shobeh.Id_shobeh = T_Main.id_shobeh _
    ' WHERE (((T_Main.date_input)>=[Forms]![F_Search_Main]![Text0] And (T_Main.date_input)<=[Forms]![F_Search_Main]![Text2]) AND _
    ' ((T_Shobeh.Shobeh) Like "*"+[Forms]![F_Search_Main]![Text21]+"*") AND _
    ' ((T_Name_Mamor.Name_Mamor) Like "*"+[Forms]![F_Search_Main]![Text4]+"*") AND _
    ' ((T_Main.Date_Mamor)>=[Forms]![F_Search_Main]![Text6] And (T_Main.Date_Mamor)<=[Forms]![F_Search_Main]![Text8]) AND _
    ' ((T_Main.Date_Eblagh)>=[Forms]![F_Search_Main]![Text10] And (T_Main.Date_Eblagh)<=[Forms]![F_Search_Main]![Text12]) AND _
    ' ((T_Resalt.Resalt) Like "*"+[Forms]![F_Search_Main]![Text32]+"*") AND ((T_Main.Date_Sh)>=[Forms]![F_Search_Main]![Text26] And _
    ' (T_Main.Date_Sh)<=[Forms]![F_Search_Main]![Text30]) AND ((T_Main.Date_Dadgh)>=[Forms]![F_Search_Main]![Text38] And _
    ' (T_Main.Date_Dadgh)<=[Forms]![F_Search_Main]![Text40]) AND _
    ' ((diff([date_Input],[Date_Dadgh]))>=[Forms]![F_Search_Main]![Text51])) ")
    'a = rst1.Fields(0)

    همانگونه که مشاهده می فرمائید تعداد پارامترها زیاد می باشد و من در انتهای هر خط آنرا با _ از خط بعدی تفکیک کرده ام اما قطعه کد فوق اجرا نمی شود.

  4. #4
    کاربر دائمی آواتار مهدی قربانی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    2,435

    نقل قول: طولانی بودن کد در VBA

    سلام
    اگر منظور شما ايجاد انقطاع بين عبارات دستور SQL در VBA هست دو راه پيش رو هست يكي اون راه اولي كه تقديم شد و راه دوم كه فكر مي كنم مورد نظر شماست استفاده از كاراكترهاي &_ هست ، نمونه دومي كه شما قرار داديد چنانچه بخوايم قابل استفاده بشه بايد از راه دوم استفاده كرد و شما در زمان ايجاد انقتطاع در انتهاي خط ابتدا كاراكتر " و بعد با يك فاصله يا Space كاراكتر _ و سپس اينتر كرده و در ابتداي خط بعدي كاراكتر & و بعد از يك فاصله كاراكتر " و بعد عبارت SQL به همين ترتيب تا آخرين خط مطابق نمونه كد فقط يك نكته چنانچه در خلال كد SQL جاهايي فاصله داشته باشيم مثل قسمتهاي مشخص شده دركد زير
    SELECT Table1.a, Table1.b, Table2.a2, Table2.a3 FROM Table1 INNER JOIN Table2 ON Table1.a = Table2.a

    بايد فاصله مورد نظر لحاظ بشه مثل كدهاي زير :
    Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    Dim db As Database
    Dim rst As Recordset
    Dim strSQL
    strSQL = "SELECT Table1.a" _
    & ", Table1.b, Table2.a2, Table2.a3" _
    & " FROM Table1 INNER JOIN Table2" _
    & " ON Table1.a = Table2.a"
    Set db = CurrentDb
    Set rst = db.OpenRecordset(strSQL)
    Me.Text0 = rst.Fields(0)
    End Sub
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    ميشه دوستان لطف كن كد كه باهش بش از طريق وبي كاري كه كوئري ادد (append)انجام داد ممنون ميشم اگه اين كار انجام بديد

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    نقل قول نوشته شده توسط دل شكسته مشاهده تاپیک
    ميشه دوستان لطف كن كد كه باهش بش از طريق وبي كاري كه كوئري ادد (append)انجام داد ممنون ميشم اگه اين كار انجام بديد
    سلام
    ميشه يك مقدار واضح تر سوال خودتان را اعلام كنيد

  7. #7
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    کوئری ادد که با اون مفداری ار یم تیبل به دیبل دیگه انتقال میدن

  8. #8

    نقل قول: طولانی بودن کد در VBA

    بطور کلی هر کواری که با حالت گرافیکی میسازید را میتوانید با وی بی اجرا نمایید
    کواری append را در محیط گرافیکی بسازید اس کیو ال ان را کپی کنید و با دستور docmd.runsql اجرا نمایید
    docmd.runsql("insetr into   tabel1 from tabel2")

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    سلام
    با استفاده از كد زير مي توانيد عمليات مورد نظر را انجام دهيد
    DoCmd.RunSQL "INSERT INTO T_Detail ( ID, Rooz ) SELECT T_Detail.ID, T_Detail.Rooz FROM T_Detail  WHERE (((T_Detail.Id_Mah)=[forms]![F_append]![txt0]));"

  10. #10
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    سلام دوستان خطا مال چي؟ من مخوام وقتي روي دكمه كليك كردم يك مقدار بخواد وقتي مقدار وارد كردم مقداري برام برگردون كن
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar SQL.rar‏ (17.6 کیلوبایت, 52 دیدار)
    آخرین ویرایش به وسیله HAMRAHSOFT.IR : یک شنبه 28 تیر 1388 در 14:22 عصر

  11. #11
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    دوستان من كمي عجله دارم كسي نيست كمكم كنه

  12. #12
    کاربر دائمی آواتار مهدی قربانی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    2,435

    نقل قول: طولانی بودن کد در VBA

    سلام
    اشكال اول عدم رعايت فاصله در بين عبارات SQL بود و اشكال دوم در ايندكس گذاري فيلدهاي ركوردست ، شما ايندكس فيلد آخر رو 3 قرار داده بوديد كه بايد عرض كنم در ركوردست شما فقط تا 2 قابل استفاده هست چون كل فيلدها 3 تاست و از 0 اگر شروع كنيد ميشه 0 و 1 و 2 اشكال سوم هم مربوط ميشه به اينكه شما در مقابل عبارت WHERE بجاي قرار دادن [] كه موجب خطاي Too few Parameters ميشه بهتره از متغيير و تابع InputBox استفاده كنيد كدهاي موجود در نمونه خودتون و نمونه بنده رو مقايسه كنيد متوجه تغييرات ميشيد :
    فایل های ضمیمه فایل های ضمیمه

  13. #13
    کاربر دائمی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    خراسان
    پست
    448

    نقل قول: طولانی بودن کد در VBA

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

  14. #14
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    تشكر ولي اگه بخوام متغير ازم به پرسه بايد چكار كن چون انطوري بايد متغير دستي بهش بدم

  15. #15
    کاربر دائمی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    خراسان
    پست
    448

    نقل قول: طولانی بودن کد در VBA

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

  16. #16
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    سلام
    باکمی تغییرات فایل اصلاح شده جنابعالی ضمیمه شد
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar str.rar‏ (14.0 کیلوبایت, 48 دیدار)

  17. #17
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    ببخشيد ميشه نمونه اصلاح كنيد

    لازم ذكر است نوع فيلدA1A بايد Text باشه نهNumber
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar str.rar‏ (22.3 کیلوبایت, 40 دیدار)

  18. #18
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    در پست شماره 16 اصلاح شد

  19. #19
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    نمونه جديد را مگيم

  20. #20
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    نقل قول نوشته شده توسط دل شكسته مشاهده تاپیک
    نمونه جديد را مگيم
    سلام

    اگر متغیر از رشته باشد باید آنرا داخل '"& نام متغیر &"' گذاشت
    & " WHERE (Tbl_Customer.CustomerID)= '" & strA & "' "

  21. #21
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    ممنون از راهنماي شما حلا اگه دوتا متغير داشت باشيم به چه شكل ميشه و بايد چكار كنم

    اگر مقدار وارد شده داخل بانك نباشه باز خطا ميده
    آخرین ویرایش به وسیله HAMRAHSOFT.IR : سه شنبه 30 تیر 1388 در 10:41 صبح

  22. #22
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    هیچ فرقی بین یک متغیر و دو متغیر نیست.
    استفاده از دستور
    if rst.eof then . . . 

    برای همین مسئله می باشد

  23. #23
    کاربر دائمی آواتار HAMRAHSOFT.IR
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    هرجا كه غم و ناراحتي باشه
    پست
    1,174

    نقل قول: طولانی بودن کد در VBA

    ببخشيد منضورم بد گفتم مخوام يك متغير در دو فيلد از جدول بگرد بجاي كي فيلد

    ميشه نمونه اصلاح كنيد

  24. #24
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    هرجا که چیزی برای یادگرفتن باشد
    پست
    1,260

    نقل قول: طولانی بودن کد در VBA

    نقل قول نوشته شده توسط دل شكسته مشاهده تاپیک
    ببخشيد منضورم بد گفتم مخوام يك متغير در دو فيلد از جدول بگرد بجاي كي فيلد

    ميشه نمونه اصلاح كنيد
    بازهم فرقی نمی کند مشابه نمونه زیر عمل کنید
    & " WHERE (((Tbl_Customer.CustomerID)= '" & strA & "' ) and ((Tbl_Customer.CustomerName)= '" & strA & "' ))"

  25. #25

    نقل قول: طولانی بودن کد در VBA

    باسلام دوستان لطفا يكي كمك كنه!!!!!!!!!!!!
    من ماكرويي را طراحي كردم كه با گرفتن دوپارامتر(كد و جنسيت) گزارشي را چاپ مي كند
    سوال اول : چگونه مي توان ماكرو را بدون واردكردن پارامتر از طريق حلقه For اجرا كرد
    سوال دوم : چگونه به يك المان(دكمه يا خودماكرو) كليد فوري تخصيص داد؟
    با تشكر
    آخرین ویرایش به وسیله beyramali02 : پنج شنبه 20 بهمن 1390 در 17:39 عصر

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

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