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

نام تاپیک: append کردن اطلاعات فیلدهای مشترک دو جدول متفاوت با کد

Threaded View

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

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

    نقل قول نوشته شده توسط moustafa مشاهده تاپیک
    در vba مشابه continuo در زبانهای مثل پایتون وجاوا و... نداریم که در حلقه های شمارشی نظیر for از یک شماره یا عضو با شرایطی که تعیین می کنیم بگذره در کد زیر با اولین شرط کلا از حلقه خارج میشه در حالیکه ما میخوائیم رد شه بره سراغ شی بعدی
    For Each tdf In CurrentDb.TableDefs
    ' If DCount("*", "" & tdf.Name & "", "Transferred=false") = 0 Then
    If Not (tdf.Name Like "MSys*" Or tdf.Name Like "~*") Then
    Set RS1 = CurrentDb.OpenRecordset(tdf.Name)
    Set RS2 = DBEngine.OpenDatabase(NewDataBsePath, False, False, "").OpenRecordset(tdf.Name)
    If DCount("*", "" & RS1.Name & "", "Transferred=0") = 0 Then
    MsgBox RS1.Name & "رکورد جديدي براي انتقال وجود ندارد "
    Exit For
    End If

    Public Sub AppendCommonFieldsData()
    On Error Resume Next
    Dim Fld1 As DAO.Field, Fld2 As DAO.Field, StrSql As String, FldName As String, Fld1Select As String, tdf As DAO.TableDef
    Dim RS1 As DAO.Recordset
    Dim RS2 As DAO.Recordset
    Dim NewDataBsePath As String
    NewDataBsePath = "e:\NewData.accdb"
    For Each tdf In CurrentDb.TableDefs
    If Not (tdf.Name Like "MSys*" Or tdf.Name Like "~*") Then
    Set RS1 = CurrentDb.OpenRecordset(tdf.Name)
    Set RS2 = DBEngine.OpenDatabase(NewDataBsePath, False, False, "").OpenRecordset(tdf.Name)
    If RS2.Name = RS1.Name And RS1.RecordCount > 0 And RS2.RecordCount = RS1.RecordCount Then
    MsgBox "! قبلا منتقل شده " & RS1.Name & " اطلاعات جدول ", vbOKOnly + vbInformation + vbMsgBoxRight, "!توجه"
    End If
    If RS2.Name = RS1.Name And RS1.RecordCount > 0 And RS2.RecordCount = 0 Then
    For Each Fld1 In RS1.Fields
    For Each Fld2 In RS2.Fields
    If Fld2.Name = Fld1.Name And Fld2.Type = Fld1.Type Then
    FldName = FldName & ", " & Fld1.Name
    Fld1Select = Fld1Select & "," & tdf.Name & "." & Fld1.Name
    Exit For
    ElseIf Fld2.Name = Fld1.Name And Fld2.Type <> Fld1.Type Then
    'MsgBox " انتقال اطلاعات به فيلد فوق صورت نگرفت " & Fld2.Name & " بعلت مغايرت نوع ديتاتايپ فيلد ", vbOKOnly + vbInformation + vbMsgBoxRight, "!توجه"
    Exit For
    End If
    Next
    Next
    FldName = Right(FldName, Len(FldName) - 1)
    Fld1Select = Right(Fld1Select, Len(Fld1Select) - 1)
    DoCmd.SetWarnings False
    StrSql = "INSERT INTO [;DATABASE=" & NewDataBsePath & ";PWD=""]." & tdf.Name & " (" & FldName & ")SELECT " & Fld1Select & " FROM " & tdf.Name & ""
    DoCmd.RunSQL StrSql
    DoCmd.SetWarnings True
    FldName = ""
    Fld1Select = ""
    MsgBox "! منتقل شد " & RS1.Name & " اطلاعات جدول ", vbOKOnly + vbInformation + vbMsgBoxRight, "!توجه"
    End If
    If RS2.Name <> RS1.Name Then
    MsgBox "! در بانک اطلاعاتي جديد موجود نمي باشد " & RS1.Name & " جدول ", vbOKOnly + vbInformation + vbMsgBoxRight, "!توجه"
    End If
    End If
    Next
    RS1.Close
    RS2.Close
    Set RS1 = Nothing
    Set RS2 = Nothing
    Set tdf = Nothing
    End Sub

    کد های بالارو جایگزین کدهای قبلی کن ونتیجه رو بررسی کن !
    در کدهای جدید فیلد Transferred که برای کنترل انتقال اطلاعات به جداول بانک قدیم اضافه کرده بودم حذف کردم و برای کنترل انتقال اطلاعات از مقایسه خصوصیت RecordCount رکوردست ها استفاده کردم
    آخرین ویرایش به وسیله eb_1345 : دوشنبه 09 مهر 1403 در 01:17 صبح

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

  1. سوال: روش append کردن یک المنت کپی شده (چندین بار append کردن)
    نوشته شده توسط Black_Hammer در بخش jQuery
    پاسخ: 3
    آخرین پست: پنج شنبه 07 اردیبهشت 1396, 15:40 عصر
  2. سوال: تفاوت Append و AppendLine چیست؟
    نوشته شده توسط irpersian20 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 15 بهمن 1395, 08:11 صبح
  3. سوال: بر عکس append چیه؟
    نوشته شده توسط ABZiko در بخش طراحی وب (Web Design)
    پاسخ: 16
    آخرین پست: یک شنبه 09 شهریور 1393, 11:56 صبح
  4. Append کردن یه بانک رو بانک دیگه
    نوشته شده توسط tahayazdani در بخش Backup & Restore
    پاسخ: 5
    آخرین پست: سه شنبه 06 دی 1390, 14:42 عصر
  5. append از جداول 2 data base متفاوت
    نوشته شده توسط ebi_isf در بخش SQL Server
    پاسخ: 1
    آخرین پست: دوشنبه 20 آذر 1385, 12:12 عصر

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

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