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

نام تاپیک: تطبیق عبارات Declare فایل های اکسس با سیستم ویندوز

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    مدیر بخش آواتار Abbas Amiri
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    اصفهان
    پست
    2,327

    تطبیق عبارات Declare فایل های اکسس با سیستم ویندوز

    سلام
    چند روز پیش خواستم از یک فایل اکسس استفاده کنم که مثل خیلی از موارد دیگه پیغام خطای مخصوص عبارات Declare ظاهر شد.
    تصمیم گرفتم کدی بنویسم تا مجبور نباشم بصورت دستی اینکار را انجام دهم . این کد را بادر یک محیط VBA غیر فایلی که میخواهیم تغییر دهیم اجرا کنیم .

    Sub Win32_64DeclareCompatible(DBName As String)
    Dim App As Access.Application
    Dim db As DAO.Database
    Dim mdl As Module
    Dim lStr As String, rStr As String, i As Long, j As Long, ChangedNum As Integer
    Dim strOldText As String, strNewText As String
    #If Win64 Then
    strOldText1 = "Declare Function"
    strNewText1 = "Declare Ptrsafe Function"
    strOldText2 = "Declare Sub"
    strNewText2 = "Declare Ptrsafe Sub"
    #Else
    strOldText1 = "Declare Ptrsafe Function"
    strNewText1 = "Declare Function"
    strOldText2 = "Declare Ptrsafe Sub"
    strNewText2 = "Declare Sub"
    #End If
    Set App = New Access.Application
    'On Error Resume Next
    strPWD = InputBox("در صورت وجود پسورد، آنرا تايپ کنيد")

    App.OpenCurrentDatabase DBName, , strPWD
    'App.Visible = False
    Set db = App.CurrentDb
    cnt = db.Containers("Modules").Documents.Count - 1


    For k = 0 To cnt
    DoEvents
    snam = db.Containers("Modules")(k).Name
    App.DoCmd.OpenModule (snam)

    Set mdl = App.Modules(snam)
    With mdl

    For i = 1 To .CountOfLines
    If .Find(strOldText1, i, 1, i, -1) Then
    j = InStr(.Lines(i, 1), strOldText1) - 1
    lStr = Left(.Lines(i, 1), j)
    rStr = Right(.Lines(i, 1), Len(.Lines(i, 1)) - j - Len(strOldText1))
    .ReplaceLine i, lStr & strNewText1 & rStr
    ChangedNum = ChangedNum + 1
    End If
    If .Find(strOldText2, i, 1, i, -1) Then
    j = InStr(.Lines(i, 1), strOldText2) - 1
    lStr = Left(.Lines(i, 1), j)
    rStr = Right(.Lines(i, 1), Len(.Lines(i, 1)) - j - Len(strOldText2))
    .ReplaceLine i, lStr & strNewText2 & rStr
    ChangedNum = ChangedNum + 1
    End If

    Next

    End With
    DoCmd.Close acModule, snam
    Next
    Set oDoc = Nothing
    Set mdl = Nothing
    Set db = Nothing
    App.Quit acQuitSaveAll
    Set App = Nothing
    MsgBox ChangedNum & " Expression Changed"

    End Sub


    آخرین ویرایش به وسیله Abbas Amiri : چهارشنبه 11 شهریور 1394 در 19:11 عصر دلیل: اصلاح و بهینه سازی کدها

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

  1. رمز گشایی فایل های اکسس
    نوشته شده توسط korosh00 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: یک شنبه 12 شهریور 1391, 10:56 صبح
  2. سوال: چطور از فایل های اکسس در vs.net2010 استفاده کنم؟
    نوشته شده توسط ALPking در بخش Access
    پاسخ: 1
    آخرین پست: سه شنبه 09 خرداد 1391, 10:43 صبح
  3. سوال: کم حجم کردن فایل های اکسس بصورت شگفت انگیز
    نوشته شده توسط milad.biroonvand در بخش Access
    پاسخ: 7
    آخرین پست: دوشنبه 16 آبان 1390, 22:54 عصر
  4. سوال: تغییر آیکن فایل های اکسس
    نوشته شده توسط esafb52 در بخش Access
    پاسخ: 2
    آخرین پست: شنبه 31 مرداد 1388, 14:58 عصر
  5. exe کردن فایل های اکسس و اکسل ؟
    نوشته شده توسط fardin_f10 در بخش Access
    پاسخ: 7
    آخرین پست: یک شنبه 06 اسفند 1385, 11:40 صبح

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

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