اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
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

 

جعفر

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information