اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

بخصوص FileDialog(msoFileDialogFilePicker


mrbakr
إذهب إلى أفضل إجابة Solved by jjafferr,

الردود الموصى بها

3 ساعات مضت, ابا جودى said:

' Requires reference to Microsoft Office xx Object Library xx=Version No OF Access

 

هذه صورة من برنامجي ، اكسس 2010 ، والمكتبة اصبحت Miscrosoft Access xx Object Library :

image.png.9a88f53e8eb066979f618daeb72286a0.png

.

 

وانا لا احب ان استعمل المكتبة ، لأنها لها علاقة بنسخة الاكسس ، واختيار المكتبة تسمى بـالربط المسبق Early Binding (مع ان هذه الطريقة اسرع ، ويساعدك الاكسس في اعطائك المتغيرات المتوفرة للأمر عند عمل: مسافة او نقطة او فتح قوس)،

فإذا تمت البرمجة على النسخة الاقدم ، وتم استعمال البرنامج على النسخة الاحدث ، فيقوم البرنامج تلقائيا بتغيير المكتبة للأحدث ،

واما اذا تمت البرمجة على النسخة الاحدث ، وتم استعمال البرنامج على النسخة الاقدم ، فلن يعمل البرنامج ، وسيعطيك خطأ !!

ولتفادي هذه المشكلة ، فيمكننا عمل ربط متأخر Late Binding بتعريف المتغير بـ Object ، هكذا :

    Dim FileDialog As Object

    With Application.FileDialog(3)
        .Title = "Choose File"
        .Filters.Clear
        .Filters.Add "Pic Files", "*.jpg ; *.bmp"
        .AllowMultiSelect = False
        .InitialFileName = ""
        If .Show = -1 Then
          Open_a_File = .SelectedItems(1)
        End If
    End With

 

جعفر

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

10 ساعات مضت, jjafferr said:

هذه صورة من برنامجي ، اكسس 2010 ، والمكتبة اصبحت Miscrosoft Access xx Object Library :

image.png.9a88f53e8eb066979f618daeb72286a0.png

.

 

وانا لا احب ان استعمل المكتبة ، لأنها لها علاقة بنسخة الاكسس ، واختيار المكتبة تسمى بـالربط المسبق Early Binding (مع ان هذه الطريقة اسرع ، ويساعدك الاكسس في اعطائك المتغيرات المتوفرة للأمر عند عمل: مسافة او نقطة او فتح قوس)،

فإذا تمت البرمجة على النسخة الاقدم ، وتم استعمال البرنامج على النسخة الاحدث ، فيقوم البرنامج تلقائيا بتغيير المكتبة للأحدث ،

واما اذا تمت البرمجة على النسخة الاحدث ، وتم استعمال البرنامج على النسخة الاقدم ، فلن يعمل البرنامج ، وسيعطيك خطأ !!

ولتفادي هذه المشكلة ، فيمكننا عمل ربط متأخر Late Binding بتعريف المتغير بـ Object ، هكذا :


    Dim FileDialog As Object

    With Application.FileDialog(3)
        .Title = "Choose File"
        .Filters.Clear
        .Filters.Add "Pic Files", "*.jpg ; *.bmp"
        .AllowMultiSelect = False
        .InitialFileName = ""
        If .Show = -1 Then
          Open_a_File = .SelectedItems(1)
        End If
    End With

 

جعفر

جزاكم الله خيرا والدى الحبيب و استاذى الجليل و معلمى القدير استاذ @jjafferr

  • Like 1
رابط هذا التعليق
شارك

  • أفضل إجابة

استعمل هذا الحدث بدل الموجود عندك :

Private Sub btn_search_Click()

    
    Dim FileDialog As Object

    With Application.FileDialog(3)
        .Title = "Please select a File"
        .Filters.Clear
        .Filters.Add "extensions", "*.xls, *.xlsx, *.txt"
        .AllowMultiSelect = False
        .InitialFileName = ""
        If .Show = -1 Then
          Me.path = .SelectedItems(1)
        End If
    End With
    
End Sub

 

جعفر

رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

بدل هذا السطر
Dim FSO As New FileSystemObject, msg As String


استعمل
Dim FSO As Object, msg As String

.

ولكن الظاهر انك يوم من الايام كنت تريد تعمل شيء بالامر FSO  والذي يُستخدم في ادارة الملفات و المجلدات ، ووضعت الكود الخاص به ، ثم حذفت الكود ، ولكن نسيت ان تحذف الجزء العلوي منه ، وعليه فأنت الآن بحاجة الى هذا السطر بدل السطر اعلاه:

Dim msg As String

 

جعفر

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information