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

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

Threaded View

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

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

    نقل قول نوشته شده توسط moustafa مشاهده تاپیک
    بانک اطلاعاتی برنامه مورد استفاده به نحوی از انحاء حالا ناشی ازقوانین و آئین نامه ها ، الگوریتم و روشها ، نیازمندیها و...دچار تغییر میشه .بانک خام و جدید باید جایگزین بانک قدیمی که حاوی اطلاعات است بشه .در حالت دستی جدولهای قدیمی رو امپورت میکنیم یا مستقیما و با کوئری الحاقی اطلاعات رو میریزم تو جداول جدید. بدیهیه که هر جا فیلدی در مقصد نباشه یا ساختارش همخونی نداشته باشه اور میده وکوئری اجرا نمیشه .یه فرم میخوائیم در برنامه قدیمی که اطلاعات جداول همنامشو بریزه در برنامه جدید که مسیرش از طریق دیالوگ فایل تعیین میشه.سایر آبجکتها هم در برنامه جدید مستقل از قدیمی است و در اخر برنامه قدیمی حذف وبرنامه جدید با اطلاعات بروزرسانی میشه
    با تشکر
    با سلام دوباره
    من کدها رو برای انتقال اطلاعات کل جداول بانک قدیم رو به جداول بانک جدید تغییر دادم
    در ضمیمه دو تا فایل اکسس یکی با نام OldData.accdb که مربوط به بانک اطلاعاتی قدیم است و دیگری با نام accdbNew.Data که مربوط به بانک اطلاعاتی جدید است .جداول بانک اطلاعاتی جدید همون جداول بانک اطلاعاتی قدیم است با این تفاوت که بعضی از فیلدهای اونها آن نسبت به جداول بانک اطلاعاتی قدیم
    از نظر تعداد فیلد یا دیتا تایپ با هم فرق می کنه
    کدهای انتقال اطلاعات در فرم بانک قدیم است .

    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 DCount("*", "" & RS1.Name & "", "Transferred=0") = 0 Then
    MsgBox "رکورد جديدي براي انتقال وجود ندارد "
    Exit Sub
    End If
    If RS2.Name = RS1.Name 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 & " Where (" & tdf.Name & ".Transferred=false)"
    DoCmd.RunSQL StrSql
    DoCmd.RunSQL "Update " & tdf.Name & " Set " & tdf.Name & ".Transferred=TRUE Where " & tdf.Name & ".Transferred=false"
    DoCmd.SetWarnings True
    FldName = ""
    Fld1Select = ""
    End If
    End If
    Next
    RS1.Close
    RS2.Close
    Set RS1 = Nothing
    Set RS2 = Nothing
    Set tdf = Nothing
    End Sub

    از دوست بزرگوارم جناب استاد مازولاق عزیز خواهش می کنم کدها رو بررسی بفرماین و اگه تشخیص میدن جاهائی از کدها باید اصلاح بشه یادآوری نمایند.
    فایل های ضمیمه فایل های ضمیمه

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

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

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

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