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

كيفية حل كود خطا 13 type mismatch


User user

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

عند الضغط على اختيار صورة يظهر خطا Type mismatch 13
مرفق الكود المستخدم 
Dim Fol As Object, DoneFiles As String
Dist = CurrentProject.Path & "/" & "Im" & "/" & [Ir] & ".jpg"
DoneFiles = "ÇáÕæÑÉ ÇáãÎÊÇÑÉ :"
Set Fol = Application.FileDialog(3)
Fol.AllowMultiSelect = False
If Fol.show Then
For I = 1 To Fol.SelectedItems.Count
sFile = ImageName(Fol.SelectedItems(I), sPath)
'If Dir(Dist & sFile) & "" = "" Then
FileCopy sPath & sFile, Dist & sFile
DoneFiles = DoneFiles & vbCrLf & I & "-" & sFile
Me.Hphoto.Value = Dist & sFile
'Else
'MsgBox "Êã ÑÝÖ ÇáÚãáíÉ " & vbCrLf & sFile & vbCrLf & "Êã ÇÎÊíÇÑ åÐå ÇáÕæÑÉ ãÓÈÞÇ "
If I > 1 Then MsgBox DoneFiles
Exit Sub
'End If
Next
End If
Exit Sub

 

Capture3.JPG

تم تعديل بواسطه User user
رابط هذا التعليق
شارك

اليك هذا الكود ... يعمل لك فولدر ان لم يكن موجود في مسار القاعدة وايضا باسم الموظف او اي شي انت تحدده.

الكود للامانة لاحد الاساتذة مع  بعض التعديلات البسيطة ... للاسف لا اعرف من هو جزاه الله كل الخير.

لقد جربت الكود الان وهو يعمل بشكل صحيح ..لا تنسى تغير اسماء الحقول 

On Error GoTo err:
Dim Fs, Cf, strFolder
Const msoFileDialogFilePicker As Long = 3
Dim objDialog As Object
Set objDialog = Application.FileDialog(msoFileDialogFilePicker)
strFolder = CurrentProject.Path & "\" & "Image"
Set Fs = CreateObject("Scripting.FileSystemObject")
If Fs.FolderExists(strFolder) = False Then
Set Cf = Fs.CreateFolder(strFolder)
If Fs.FolderExists(strFolder) = True Then
MsgBox "'" & strFolder, vbInformation, "' تم انشاء المجلد في المسار التالي "
Else
MsgBox "'" & strFolder, vbExclamation, "'لم يتم انشاء المجلد"
End If
End If

If IsNull([Names]) Or [Names] = Null Or [Names] = "" Then 
[Names].SetFocus
MsgBox "من فضلك يجب كتابة الاسم أولا حتى تتمكن من إضافة صورة", vbInformation, "يجب كتابة الاسم"
Exit Sub
End If

  
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")
    Dim varFile As Variant
    Dim destpath As Variant
    Me.Image = ""

   Set fDialog = Application.FileDialog(msoFileDialogFilePicker)

With fDialog

      .AllowMultiSelect = False

      .Title = "رجاءً قم بتحديد مكان الصورة"

      .Filters.Clear
      .Filters.Add "png image", "*.png"
      .Filters.Add "jpg image", "*.jpg"
      .Filters.Add "jpeg image", "*.jpeg"
      .Filters.Add "All Files", "*.*"

      If .show = True Then

         For Each varFile In .SelectedItems
         
       
         destpath = Application.CurrentProject.Path & "\" & "Image" & "\" & Me.Names & "f." & Right$(varFile, Len(varFile) - InStrRev(varFile, "."))
         FileCopy varFile, destpath
         Me.Image = destpath
         Me.Refresh
            
Next

Else
         MsgBox "You clicked Cancel in the file dialog box."
End If
End With
Exit Sub
err:
         MsgBox err.Description & " " & err.Number

وافنا بالنتيجة.

بالتوفيق

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

منذ ساعه, سامي الحداد said:

اليك هذا الكود ... يعمل لك فولدر ان لم يكن موجود في مسار القاعدة وايضا باسم الموظف او اي شي انت تحدده.

الكود للامانة لاحد الاساتذة مع  بعض التعديلات البسيطة ... للاسف لا اعرف من هو جزاه الله كل الخير.

لقد جربت الكود الان وهو يعمل بشكل صحيح ..لا تنسى تغير اسماء الحقول 

On Error GoTo err:
Dim Fs, Cf, strFolder
Const msoFileDialogFilePicker As Long = 3
Dim objDialog As Object
Set objDialog = Application.FileDialog(msoFileDialogFilePicker)
strFolder = CurrentProject.Path & "\" & "Image"
Set Fs = CreateObject("Scripting.FileSystemObject")
If Fs.FolderExists(strFolder) = False Then
Set Cf = Fs.CreateFolder(strFolder)
If Fs.FolderExists(strFolder) = True Then
MsgBox "'" & strFolder, vbInformation, "' تم انشاء المجلد في المسار التالي "
Else
MsgBox "'" & strFolder, vbExclamation, "'لم يتم انشاء المجلد"
End If
End If

If IsNull([Names]) Or [Names] = Null Or [Names] = "" Then 
[Names].SetFocus
MsgBox "من فضلك يجب كتابة الاسم أولا حتى تتمكن من إضافة صورة", vbInformation, "يجب كتابة الاسم"
Exit Sub
End If

  
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")
    Dim varFile As Variant
    Dim destpath As Variant
    Me.Image = ""

   Set fDialog = Application.FileDialog(msoFileDialogFilePicker)

With fDialog

      .AllowMultiSelect = False

      .Title = "رجاءً قم بتحديد مكان الصورة"

      .Filters.Clear
      .Filters.Add "png image", "*.png"
      .Filters.Add "jpg image", "*.jpg"
      .Filters.Add "jpeg image", "*.jpeg"
      .Filters.Add "All Files", "*.*"

      If .show = True Then

         For Each varFile In .SelectedItems
         
       
         destpath = Application.CurrentProject.Path & "\" & "Image" & "\" & Me.Names & "f." & Right$(varFile, Len(varFile) - InStrRev(varFile, "."))
         FileCopy varFile, destpath
         Me.Image = destpath
         Me.Refresh
            
Next

Else
         MsgBox "You clicked Cancel in the file dialog box."
End If
End With
Exit Sub
err:
         MsgBox err.Description & " " & err.Number

وافنا بالنتيجة.

بالتوفيق

مفيش كود مختصر مثل الخاص بنا فوق 

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

تفضل هذا التعديل 

الصق هذا الكود في اي مكان داخل محرر الأكواد

سيتم انشاء مجلد بإسم Im في حال عدم وجوده و سيتم حفظ نسخة من الصورة

Public Function SaveImag(ImagtPath As String, FileNewName As String)
On Error GoTo ErrH
Dim fso As Object, Syso As Object, fldrname As String, fldrpath As String, MyFile As String, DstFile As String
fldrname = "Im"
Set fso = CreateObject("scripting.filesystemobject")
    fldrpath = CurrentProject.Path & "\" & fldrname
    If Not fso.FolderExists(fldrpath) Then
       fso.createfolder (fldrpath)
    End If
    MyFile = ImagtPath
    DstFile = CurrentProject.Path & "/" & fldrname & "/" & FileNewName & ".jpg"
    DBEngine.Idle
    Set Syso = CreateObject("Scripting.FileSystemObject")
    Syso.copyfile MyFile, DstFile
    Set Syso = Nothing
    SaveImag = DstFile
    MsgBox "تم اضافة الصورة بنجاح", vbInformation + vbMsgBoxRight, "تأكيد"
Exit Function
ErrH:
MsgBox "رقم الخطأ" & " : " & Err.Number & vbNewLine & "وصف الخطأ" & " : " & vbNewLine & Err.Description, vbExclamation + vbMsgBoxRight, "تنبيه"
End Function

من المفترض انه يوجد لديك العناصر التالية

- مربع نص اسم الصورة

- مربع نص مسار الصورة

- ازرار اختيار الملف

- ازرار تنفيذ الإجراء او حفظ الصورة

في ازار اختيار الصورة استخدم الكود التالي

Dim Addfile As Object
Set Addfile = Application.FileDialog(3)
With Addfile
  .AllowMultiSelect = False
  .InitialFileName = ""
  .title = "اختيار صورة"
  .Filters.Clear
  .Filters.Add "All Files", "*.jpg,*.png"
  If .Show = True Then
      ImagePathText = Trim(.SelectedItems(1)) ' مربع النص الذي سيتم تخزين مسار الصورة به
      Else
      Exit Sub
  End If
End With

 

و في ازرار الحفظ ضع الكود التالي

call SaveImag(ImagePathText, FileName)

ImagePathText   تعني مربع نص مسار الصورة
FileName   تعني اسم الصورة

مرفق مثال تطبيق لذلك

image.png.8e96b5f0e7da9526d3b08b485d51028e.png

MyData16.accdb

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

10 ساعات مضت, د.كاف يار said:

تفضل هذا التعديل 

الصق هذا الكود في اي مكان داخل محرر الأكواد

سيتم انشاء مجلد بإسم Im في حال عدم وجوده و سيتم حفظ نسخة من الصورة

Public Function SaveImag(ImagtPath As String, FileNewName As String)
On Error GoTo ErrH
Dim fso As Object, Syso As Object, fldrname As String, fldrpath As String, MyFile As String, DstFile As String
fldrname = "Im"
Set fso = CreateObject("scripting.filesystemobject")
    fldrpath = CurrentProject.Path & "\" & fldrname
    If Not fso.FolderExists(fldrpath) Then
       fso.createfolder (fldrpath)
    End If
    MyFile = ImagtPath
    DstFile = CurrentProject.Path & "/" & fldrname & "/" & FileNewName & ".jpg"
    DBEngine.Idle
    Set Syso = CreateObject("Scripting.FileSystemObject")
    Syso.copyfile MyFile, DstFile
    Set Syso = Nothing
    SaveImag = DstFile
    MsgBox "تم اضافة الصورة بنجاح", vbInformation + vbMsgBoxRight, "تأكيد"
Exit Function
ErrH:
MsgBox "رقم الخطأ" & " : " & Err.Number & vbNewLine & "وصف الخطأ" & " : " & vbNewLine & Err.Description, vbExclamation + vbMsgBoxRight, "تنبيه"
End Function

من المفترض انه يوجد لديك العناصر التالية

- مربع نص اسم الصورة

- مربع نص مسار الصورة

- ازرار اختيار الملف

- ازرار تنفيذ الإجراء او حفظ الصورة

في ازار اختيار الصورة استخدم الكود التالي

Dim Addfile As Object
Set Addfile = Application.FileDialog(3)
With Addfile
  .AllowMultiSelect = False
  .InitialFileName = ""
  .title = "اختيار صورة"
  .Filters.Clear
  .Filters.Add "All Files", "*.jpg,*.png"
  If .Show = True Then
      ImagePathText = Trim(.SelectedItems(1)) ' مربع النص الذي سيتم تخزين مسار الصورة به
      Else
      Exit Sub
  End If
End With

 

و في ازرار الحفظ ضع الكود التالي

call SaveImag(ImagePathText, FileName)

ImagePathText   تعني مربع نص مسار الصورة
FileName   تعني اسم الصورة

مرفق مثال تطبيق لذلك

image.png.8e96b5f0e7da9526d3b08b485d51028e.png

MyData16.accdb 836 kB · 1 download

من فضلك لو محتاج اضيف اكثر من صورة للعميل هيكون صيغه الكود ازاى 
هيكون فيه لدى 4 مسارات لحقل Image

 

تم تعديل بواسطه User user
رابط هذا التعليق
شارك

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