نمایش نتایج 1 تا 40 از 46

نام تاپیک: درخواست راهکار

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    58
    پست
    1,057

    نقل قول: درخواست راهکار

    سلام
    در ابتدا باید عرض کنم شما باید اطلاعات لیست هر ماه وام را در یک لیست جداگانه تهیه کنید . به عبارتی اگر لیست وام برای ماههای مختلف در شیت های یک فایل اکسل قرار دارد شما باید لیست هر شیت را جدا و بصورت یک فایل مستقل ایجاد کنید
    بنده اطلاعات سه شیت فایل اکسل شما رو تبدیل به سه تا فایل نمودم و نامی که برای آنها انتخاب کردم شامل عدد سال و عدد ماه میباشد.
    فرض را براین قرار داده ام که اطلاعات شیت اول مربوط به فروردین 1403 ، شیت دوم اردیبهشت 1403 و شیت سوم خرداد 1403 میباشد.
    و اما مواردی که در ارتباط با فایل اکسس باید عرض کنم :
    در فایل اکسس ابتدا یک جدول با نام TblMainExcel ایجاد کرده ام که دارای 10 فیلد با نام های فینگلیش شده نام های فارسی ستون های فایل اکسل میباشد .
    سپس یک فرم اصلی با نام FrmImport ایجاد کرده ام که در این فرم کمند باتنی تحت عنوان افزودن اطلاعات از اکسل تعبیه نموده ام که در رویداد کلیک آن کد های زیر بکار رفته :

    Dim dag As Office.FileDialog
    Dim IntSal As Integer
    Dim IntMah As Integer
    Dim strFile As String
    Dim item As Variant
    Set dag = Application.FileDialog(msoFileDialogFilePicker)
    dag.AllowMultiSelect = False
    dag.Title = "Select the Excel file to import"
    dag.Filters.Clear
    dag.Filters.Add "Excel SpreadSheets", "*.xls,*.xlsx"
    If dag.Show Then
    For Each item In dag.SelectedItems
    strFile = Dir(item)
    Me.txtPath = item
    Next
    End If
    IntSal = Left(strFile, 4)
    IntMah = Mid(strFile, 5, 2)
    If DCount("Sal", "TblMainExcel", "Sal=" & IntSal & "") > 0 And DCount("Mah", "TblMainExcel", "Mah=" & IntMah & "") > 0 Then
    MsgBox " .اطلاعات فايل انتخاب شده قبلاً اضافه گردیده است", vbCritical + vbMsgBoxRight, "توجه"
    Exit Sub
    End If
    On Error Resume Next
    CurrentDb.Execute "drop table [TblImportedExcel]"
    If IsNull([txtPath]) Or Me.txtPath = "" Then
    MsgBox "فايلي انتخاب نشده است", vbInformation + vbMsgBoxRight, "توجه"
    Exit Sub
    Else
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "TblImportedExcel", Me.txtPath, True
    DoCmd.OpenQuery "QAppendRec", acViewNormal, acEdit
    DoCmd.RunSQL "Update TblMainExcel Set TblMainExcel.Sal=" & IntSal & ",Mah=" & IntMah & " where Sal is null"
    MsgBox "اطلاعات فايل " & mahname(IntMah) & " سال " & IntSal & " با موفقيت اضافه گرديد", vbInformation + vbMsgBoxRight, "توجه"
    End If


    چند خط کد اول مربوط به انتخاب فایل اکسل میباشد . بعد از چند خط کد فوق شماره سال و شماره ماه فایل انتخاب شده که از مسیر فایل انتخاب شده استخراج گردیده در دو متغییر IntSal و IntMah قرار داده ام و در کد بعدی زیر شرط گذاشته ام که با توجه به شماره سال و ماه اگر اطلاعات سال و ماه فایل انتخاب شده قبلاً به جدول اکسس اضافه شده باشد پیغام « اطلاعات قبلاً اضافه گردیده » صادر شود و ادامه عملیات متوقف شود .

    If DCount("Sal", "TblMainExcel", "Sal=" & IntSal & "") > 0 And DCount("Mah", "TblMainExcel", "Mah=" & IntMah & "") > 0 Then
    MsgBox " .اطلاعات فايل انتخاب شده قبلاً اضافه گرده است", vbCritical + vbMsgBoxRight, "توجه"
    Exit Sub
    End If

    با کد زیر جدولTblImportedExcel که اطلاعات فایل اکسل در آن ایمپورت شده و اطلاعات آن به جدول TblMainExcel اضافه شده حذف میبشود ( بمنظور دریافت اطلاعات جدید)

    CurrentDb.Execute "drop table [TblImportedExcel]"

    و در نهایت از طریق کدهای زیر ابتدا چک میشود که اگر فایل اکسلی انتخاب نشده باشد پیغام عدم انتخاب فایل صادر شود در غیر اینصورت اطلاعات فایل اکسل انتخاب شده به جدول اکسس از طریق کوئری QAppendRec اضافه شود.
    ضمنا با کد زیر شماره سال و ماه نام فایل انتخاب شده به دو فیلد ایجادی در جدول اکسس تحت عنوان Sal و Mah اضافه میشود .

    در سابفرم فرم اصلی هم اطلاعات تجمیعی وام افراد نمایش داده میشود.
    تا این مرحله بررسی کن و مواردی که برای کنترل مد نظرت است مطرح کن تا ان شاءااله در ادامه انجام شود .
    فعلاً ...
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله eb_1345 : جمعه 07 اردیبهشت 1403 در 01:18 صبح

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

  1. پاسخ: 13
    آخرین پست: دوشنبه 12 آبان 1399, 13:00 عصر
  2. پاسخ: 1
    آخرین پست: یک شنبه 06 فروردین 1396, 09:01 صبح
  3. پاسخ: 2
    آخرین پست: جمعه 31 مرداد 1393, 10:12 صبح
  4. پاسخ: 7
    آخرین پست: سه شنبه 28 آذر 1391, 13:48 عصر

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

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