-
Posts
4300 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
181
Foksh last won the day on ديسمبر 3
Foksh had the most liked content!
السمعه بالموقع
2414 Excellentعن العضو Foksh

- تاريخ الميلاد 07/02/1982
البيانات الشخصية
-
Gender (Ar)
ذكر
-
Job Title
فني صيانة موبايل وكمبيوتر
-
البلد
الأردن ♥
-
الإهتمامات
برمجة وصيانة الموبايل والكمبيوتر
اخر الزوار
-
فتح التقرير عن طريق البدياف داخل النموذج
Foksh replied to بلال اليامين's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته .. أخي بلال أنت عضو فضي ( نتمنى لك المزيد من الدرجات ) ، وما زلت - متأسفاً منك - لا تهتم لأي ملاحظات يتم طرحها خلال المشاركات أو قوانين المنتدى . العنوان :- نكتشف أن مقصده ومعناه مختلف عما تريده أنت . الشرح :- تبخل على أخوانك في المنتدى بالشرح وتكتفي بكلمات لا تتعدى أصابع اليد . إرفاق ملف :- برأيك هل الصورة و 8 كلمات كافيات لتوصيل ما تفكر به لمن يقرأ الموضوع دون ارفاق ملف !!! شكراً لك على رحابة صدرك مراراً وتكراراً في تقبل الملاحظات التي ليس لها هدف إلا أن تحظى بطريق سليم لتوصيل معلومتك -
مطلوب فتح مرفق داخل قاعدة البيانات بدون مسار خارجي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
كفكرة خطرت ببالي وقد حدثتها الى ما يلي :- أن تكون الدالة عامة شاملة ويمكن استخدامها في أكثر من موضع أو جدول أو حقل أو سجل أو حتى عدد مرفقات . بحيث جعلتها تقبل استقبال اسم الجدول ، واسم حقل المرفقات ، واسم حقل لتحديد السجل ، ومربع النص = تحديد اي سجل ، ورقم المرفق لو كان الحقل متعدد المرفقات . فآكسيس يتعامل مع أول مرفق كقيمة تسلسلية = 0 ( كما هو الحال في الأعمدة داخل الكومبوبوكس مثلاً أو الليست بوكس ) . لذا حدّثتها لتكون بهذا الشكل :- Public Sub OpenSpecificAttachment(ByVal TableName As String, _ ByVal AttachmentField As String, _ ByVal PKFieldName As String, _ ByVal RecordID As Long, _ Optional ByVal AttachmentIndex As Integer = 0) Dim rs As DAO.Recordset Dim rst As DAO.Recordset2 Dim filePath As String Dim cachePath As String Dim subFolder As String cachePath = Environ("LOCALAPPDATA") & "\Microsoft\Windows\INetCache\" Randomize subFolder = "Foksh" & Int((9999 * Rnd) + 1) If Dir(cachePath & subFolder, vbDirectory) = "" Then MkDir cachePath & subFolder CreatedFolders.Add cachePath & subFolder End If Set rs = CurrentDb.OpenRecordset("SELECT " & AttachmentField & " FROM " & TableName & _ " WHERE " & PKFieldName & "=" & RecordID) Set rst = rs.Fields(AttachmentField).Value If AttachmentIndex > 0 Then rst.Move AttachmentIndex Else rst.MoveFirst End If If Not rst.EOF Then filePath = cachePath & subFolder & "\" & rst.Fields("FileName").Value If Dir(filePath) = "" Then rst.Fields("FileData").SaveToFile filePath End If FollowHyperlink filePath End If rst.Close: Set rst = Nothing rs.Close: Set rs = Nothing End Sub بحيث تم تمرير باراميتر افتراضي القيمة للمرفق الأول لسهولة الإستدعاء ، حيث سيكون الإستدعاء متعدد الأشكال كما يلي :- Call OpenSpecificAttachment("tblEnDc", "progIcon", "ID", Me.ID) 'المرفق الأول أو الوحيد Call OpenSpecificAttachment("tblEnDc", "progIcon", "ID", Me.ID, 0) ' المرفق الأول أو الوحيد أيضاً Call OpenSpecificAttachment("tblEnDc", "progIcon", "ID", Me.ID, 1) ' المرفق الثاني اذا كان عدد المرفقات أكثر من واحد Call OpenSpecificAttachment("tblEnDc", "progIcon", "ID", Me.ID, 2) ' المرفق الثالث اذا كان عدد المرفقات أكثر من واحد وعند الخروج من النموذج ، ولحذف المجلد بشكل آمن ، قمت بجعل الدالة التي تفتح المرفق تقوم بتسجيل اسم المجلد الذي أنشأته في قائمة ( Collection ) . وعند إغلاق النموذج ، تمر على هذه القائمة فقط وتحذف المجلدات التي أنشأناها عند استعراض المرفقات فقط فذ هذا النموذج . حيث تم تعريف المتغير التالي في أول المديول :- Public CreatedFolders As New Collection وإضافة الدالة التالية التي تقوم على حذف المجلد بما يحتويه :- Public Sub SafeDeleteFolder(ByVal folderPath As String) Dim f As String On Error Resume Next f = Dir(folderPath & "\*.*", vbNormal) Do While f <> "" Kill folderPath & "\" & f f = Dir Loop RmDir folderPath End Sub وبالتالي عند إغلاق النموذج ، تم استخدام الكود التالي لتمرير الحذف للمجلدات :- Private Sub Form_Close() Dim folderPath As Variant On Error Resume Next For Each folderPath In CreatedFolders Call SafeDeleteFolder(folderPath) Next Set CreatedFolders = Nothing End Sub ليصبح المرفق كالتالي كاملاً متكاملاً :- DbTest.zip -
وعليكم السلام ورحمة الله وبركاته .. فقط وضح لنا أخي بشار عن آلية إضافة السجلات في النموذج enar_dman حتى نتتبع الخلل .
-
اخي الكريم ، وعليكم السلام ورحمة الله وبركاته ... ارجو منك الإهتمام بتنسيق موضوعك ليسهل قراءته لمن يمر به ويحاول مساعدتك .. المطلوب غير واضح حتى من خلال الصور. ثم انك تستخدم مسميات عربية + من عدة مقاطع ..... إلخ ، وهذا لا يشجع البعض على المساهمة في المساعدة ، لأن التعامل مع المسميات العربية للعناصر والمكونات له تبعات مزعجة ومتعبة في الحلول . شكراً لك
-
مطلوب فتح مرفق داخل قاعدة البيانات بدون مسار خارجي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
انظر الصورة المرفقة للتأكد . لذالك ، وتحقيقاً لنفس الفكرة من زر Open .. استخدمت الدالة التالية :- Public Sub OpenAttachmentFile(ByVal RecordID As Long, Optional ByVal PKFieldName As String = "ID") Dim rs As DAO.Recordset Dim rst As DAO.Recordset2 Dim filePath As String Dim cachePath As String Dim subFolder As String cachePath = Environ("LOCALAPPDATA") & "\Microsoft\Windows\INetCache\" Randomize subFolder = "ACC" & Int((9999 * Rnd) + 1) If Dir(cachePath & subFolder, vbDirectory) = "" Then MkDir cachePath & subFolder End If Set rs = CurrentDb.OpenRecordset("SELECT progIcon FROM tblEnDc WHERE " & PKFieldName & "=" & RecordID) Set rst = rs.Fields("progIcon").Value If Not rst.EOF Then filePath = cachePath & subFolder & "\" & rst.Fields("FileName").Value If Dir(filePath) = "" Then rst.Fields("FileData").SaveToFile filePath End If FollowHyperlink filePath End If rst.Close: Set rst = Nothing rs.Close: Set rs = Nothing End Sub واستدعيها حسب رقم السجل من خلال الزر كما يلي :- Call OpenAttachmentFile(Me.ID) طبعاً اسم المجلد عشوائي لمحاكاة نفس اسلوب آكسيس في السطر subFolder = "ACC" & Int((9999 * Rnd) + 1) -
مطلوب فتح مرفق داخل قاعدة البيانات بدون مسار خارجي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
طبعاً المجلد ACC9BE9 هو مجلد عشوائي -
مطلوب فتح مرفق داخل قاعدة البيانات بدون مسار خارجي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
اعتذر عن مقاطعتك ومخالفتك الرأي .. فآكسيس يستخدم المسار التالي في مربع حوار المرفقات عند النقر على الزر Open C:\Users\Foksh\AppData\Local\Microsoft\Windows\INetCache\ACC9BE9 المسار من جهازي الشخصي باستبدال اسم المستخدم Foksh في جهازك للتجربة -
مطلوب فتح مرفق داخل قاعدة البيانات بدون مسار خارجي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
متابع عن بعد 😊 لأن ما يفعله آكسيس هو استخراج المرفق إلى مجلد Temp ثم فتحه باستخدام :- FollowHyperlink filePath -
مطلوب رابط أو امتداد أو مسار صورة في حقل مرفقات في الجدول
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
طيب .. جرب الفكرة المدمجة من آكسيس نفسه 🤔 Database2.accdb -
مطلوب رابط أو امتداد أو مسار صورة في حقل مرفقات في الجدول
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
اعتذر .. الفكرة والمطلوب غير واضحين لي نهائياً 😐 . -
متعقب التغييرات ⭐ هدية ~ متعقب التغييرات الذكي 2024⭐
Foksh replied to Foksh's topic in قسم الأكسيس Access
أولاً :- من خلال تجربتي الأخيرة على مرفق لأحد الأخوة ، حيث كان المفتاح الأساسي لديه في جداوله = حقل نصي ولكنه يحتوي أرقام . وقد ظهرت لدي مشكلة بعد تنفيذ المطلوب على أكمل وجه بسبب أن الحقل ID الذي افترضناه في جدول استخراج الفروقات = حقل رقمي . ولذا تم التعامل مع هذه النقطة بحيث يتم انشاء حقل ID بنفس نوع حقل المفتاح الأساسي في الجدولين المُقارن بينهما ( لإضفاء المرونة في التعامل ليس إلا ) . ثانياً :- تمكين المستخدم من نقل وتحديث السجلات الفارقة فقط بين الجدول الأول - وقد تم تصنيفه بالجدول ( المتغير ) - والجدول الثاني الذي تم تصنيفه بالجدول ( الثابت ) . وبالتالي حتى السجلات الغير موجودة في الجدول الثابت سيتم إضافتها من الجدول المتغير إلى الثابت . UnMatched.zip -
مطلوب رابط أو امتداد أو مسار صورة في حقل مرفقات في الجدول
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
طيب ، كمحاولة وأعتقد انها بعيدة كل البعد عن ما يجول في خاطر أستاذنا أبو خليل .. حاولت الانتقال الى حجز مسار الصورة بعد الاستخراج أو عند وجودها من خلال TempVars . كما في المثال البسيط التالي :- Public Function RelinkIsIco() As String Dim rs As DAO.Recordset Dim rst As DAO.Recordset2 Dim FilePath As String Set rs = CurrentDb.OpenRecordset("SELECT progIcon FROM tblEnDc") Set rst = rs.Fields("progIcon").Value If Not rst.EOF Then FilePath = CurrentProject.Path & "\" & rst.Fields("FileName").Value If Dir(FilePath) = "" Then rst.Fields("FileData").SaveToFile FilePath End If TempVars.Add "IconPath", FilePath RelinkIsIco = FilePath End If rst.Close: Set rst = Nothing rs.Close: Set rs = Nothing End Function وعليه فإنه يمكن استخدام مسار هذا الـ TempVars حتى كمصدر للصورة أو أينما تريد ( كقيمة ثابتة لا تتأثر بالأخطاء البرمجية مثل المتغيرات العامة التي قد تكون String ) . والإستدعاء كما هو حالياً لديك . أو حتى في مصدر عنصر الصورة :- =[TempVars]![IconPath] -
Minesweeper.zip
-
إضافة السجلات الغير موجودة من جدول الى جدول آخر
Foksh replied to RAIANESAMI's topic in قسم الأكسيس Access
تفضل أخي الكريم / ملفك بعد التعديل وتوسيع النطاق في العمل . وأرجو منك الإهتمام بمواضيعك وأغلاق ما يستحق الإغلاق إشعاراً للقارئ بأن الموضوع قد تم حله والإجابة عليه . فتفاعلك يعكس فكرك . UnMatched123.zip -
مطلوب رابط أو امتداد أو مسار صورة في حقل مرفقات في الجدول
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
وجب مني التوضيح وبما أننا نتعامل مع الصور حالياً ، فإن آكسيس وباستخدام مسار وهمي لملف غير موجود سينتج لك خطأ قريباً من هذا :- وبالتالي ، الداعي للتوضح يستدعي التنقيح .