بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
10148 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
415
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
اللي استغربت منه هو ، لما عملت تحويل لوضع النموذج ، بدلا من يسار الى يمين ، عملته من اليمين الى اليسار ، واذا بالمربع الاحمر ما صارت يعمل كما يجب !! -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير ، مناقشة
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
1. سابقا كنا اذا اردنا استعمال الويب كام WebCam فكنا نستعمل مثل هذه الطريقة: . والان مع الوندوز 10 ، اصبحنا لا نحتاج الى برامج خارجية ، فالوندوز 10 يحتوي على برنامج التصوير والذي يحتوي على عرض مباشر للموظف ، ويمكن التحكم به برمجيا. -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
1. حجم الصور صحيح ان الاكسس يتعامل مع حجم الصورة ، ولكن حجم الصور له تأثير على عمل البرنامج ، ليس فقط في بطئ البرنامج ، وانما في فعاليته (نعم اعرف هذا الكلام غريب ، ولكن الفيديو رقم 3 في الاسفل يثبت هذه النقطة). دائما اعمل تصغير لحجم الصورة ليتناسب مع حجم الشاشة ، سواء للنموذج او التقرير ، والافضل ان تكون الصورة اكبر من بحوالي 20%-30% من حجم الكائن في النموذج/التقرير حتى يعطي صورة ادق. اذا لاحظنا الصورة التالية : التصوير من الكاميرا = 5616x3744 بكسل حجم شاشتي = 1680x1050 بكسل ، اي حوالي 33% من الحجم الاصلي ووضعت شعار المنتدى في الشاشة ، وكائن الصورة حجمه 350x200 بكسل. ومع الاسف الشديد ، فقد رأيت برامج بحيث استخدم المبرمج صورة بحجم 4333x4333 هنا !! في الصور الكبيرة ، المشكلة تكمن ، بما انها في الاكسس وقت التشغيل ، فهي محسوبة من ذاكرة الاكسس ، فقد تحصل على رساله بتجاوز اكسس من حجم الذاكرة الخاصة به. وللعلم ، فالاكسس مو من البرامج التي تتعامل مع الصور بشكل سلسل ، وليس الاسوء. صحيح ان حجم الصورة ادناه BG_Sizes2.JPG=11.7MB ، ولكن عند فتح الصور المضغوطة بجميع انواعها (مثلا jpg او png) ، فحجمها يكون كما لو كانت بصيغة BMP ، والصورة ادناه تكون بحجم 60MB . ولكن للعلم ، فعند فتح اي صورة ، فالكمبيوتر يفك ضغط الصور ويتعامل معها على انها BMP !! . 1. اداء الكمبيوتر بدون صورة في الخلفية: . 2. اداء الكمبيوتر باستخدام صورة صغيرة في الخلفية: . 3. اداء الكمبيوتر باستخدام صورة كبيرة في الخلفية: . لاحظ فرق الاداء. جعفر -
عيدكم مبارك وايامكم سعيدة ان شاء الله
-
السلام عليكم عيدكم مبارك وايامكم سعيدة ان شاء الله. كان الطلب: نريد التصوير ، وتقطيع الصورة من خلال نموذج اكسس ، والجواب كان "استوديوهات مسقط" ، بكل ما للاستوديو من ادوات 🙂 عمل البرنامج ، وبدون الدخول في التفاصيل ، والدروس ستكون في التفاصيل : تختار من البداية اذا كنت تريد استعمال كاميرا كانون Canon EOS (كاميرا واحدة او كاميرتين) ، او تستخدم ويب كام WebCam (استعملنا 4k ولكننا لم نكن راضين عن جودة الصور لإستخدامها في الهوية ، نعم ممكن استعمالها للهويات المؤقتة). عند ادخال رقم الموظف ، يأتي البرنامج بالصورة القديمة للموظف (قد يعطيك الموظف رقمه الوظيفي بالخطأ ، فمن مقارنة صورته القديم بشكله الان تستطيع ان تعرف اذا كان هو نفس الموظف) ، اذا كان هذا اول استخدام للتصوير (الانارة ، وضبط عدسة الكاميرا لوضوح الصورة ، او تقريب الصورة) ، فنقوم بعمله وملاحظة صورة الموظف من نافذة التصوير في الاكسس. نقوم بالنقر على الزر "التقط صورة من كانون" او "التقط صورة من ويب كام". في النموذج نرى الصورة التي تم التقاطها الان. نستخدم المربع الاحمر في ضبط مقاسات الصورة ، أ. يدويا عن طريق تحريك المربع او توسيعه من الاطراف او الزوايا ليلائم الحجم الذي نريد قص الصورة ، اما اذا اردنا من اكسس ان يقوم بتضيط مقاسات المربع تلقائيا (وهو الافضل والاسرع) ، فلمرة واحدة ، يجب علينا النقر على زر "نموذج الادوات" ، ثم ننقر على زر "اختيار لون الخلفية" ، مما سيعطينا ايقونة اختيار اللون ، فننقر بها على لون الخلفية (اعلى الرأس). ثم نمسك مفتاح Ctrl على الكيبورد وننقر على اي مكان في الوجه. و 95% من الوقت ، لا نحتاج الى عمل تعديل يدوي على المربع. عندما يكون المربع في المكان الصحيح ، انقر على زر "قص الصورة" ، فيقوم الاكسس باستبدال الصورة الجديدة مكان القديمة. بهذه الطريقة ، يتم تصوير وقص صورة الموظف في اقل من دقيقة واحدة ، وببساطة. ستكون هناك سلسلة من الدروس التعليمية في كيفية التعامل مع الصور في الاكسس ، هنا في هذا الموضوع ، وحتى يكون الموضوع متسلسل في افكاره ، سيكون هذا الموضوع مغلق للتعليقات. اما التعليقات والاسئلة فستكون في الموضوع التالي ان شاء الله جعفر . والتصوير كان بهذه الكاميرات .
-
فتح نفس النموذج لعدد غير محدود
-
في برنامج الصور ، وبسبب شح المعلومات ، كنت اشوف نجوم السماء في كل وقت !! كل شوي ويتوقف البرنامج ، او النتائج ما تكون صحيحة ، او ... فكان اعتمادي الكبير على نافذة immediate window لقراءة القيم ، فكان مهم ان تبقى القيم عند توقف البرنامج. نعم هي الطريقة المتعارف عليها (وعادة هي سجل واحد بعدة حقول) ، والتي ذكرها اخوي موسى كذلك بالتفصيل وبالدوال ، وانا استعمل هذه الطريقة في برامجي كذلك ، ولكني استدعي بيانات جميع الحقول مرة واحدة (دائما احاول ان اقلل من زيارات الجدول قدر الامكان ، وجعل الجدول جاهز للمستخدمين) ، فانادي القيم هكذا: dim tbl_values as string, x() as string tbl_values = dLookup("Aspect_Ratio_Width & '|' & Aspect_Ratio_Height & '|' & Lock_Aspect_Ratio & '|' & Save_On_Exit_Sides & '|' & IrfanView_Path & '|' & Employees_Pic_Folder & '|' & Others_Pic_Folder & '|' & Big_Pic_Folder & '|' & tmp_Pic_Folder & '|' & Pictures_BackUp_Folder & '|' & Left_Position & '|' & Top_Position & '|' & Save_On_Exit_Position & '|' & Percent_Smaller_Picture & '|' & EOS_or_Webcam & '|' & How_Many_EOS", "tbl_Settings") x = Split(tbl_values, "|") 'x(0)*15 Aspect_Ratio_Width 'x(1)*15 Aspect_Ratio_Height 'x(2) Lock_Aspect_Ratio 'x(3) Save_On_Exit_Sides 'x(4) IrfanView_Path 'x(5) Employees_Pic_Folder 'x(6) Others_Pic_Folder 'x(7) Big_Pic_Folder 'x(8) tmp_Pic_Folder 'x(9) Pictures_BackUp_Folder 'x(10) Left_Position 'x(11) Top_Position 'x(12) Save_On_Exit_Position 'x(13) Percent_Smaller_Picture 'x(14) EOS_or_Webcam 'x(15) How_Many_EOS 'Debug.Print x(11) . ولكن ومع استعمال الجدول ذو السجلات الكثيرة ، فعندنا 3 طرق: 1. استعمال الدوال العادية ، وتكون هناك دالة خاصة لكل سجل (لأننا لا نعرف رقم السجل وانما قيمة في حقل) ، 2. استعمال Recordset ، 3. والطريقة الاخيرة هي TempVars. نعم لكل طريقة ميزة وعيوب ، وبعد ان القيت اقلامي ، اخترت الطريقة الثالثة 🙂
-
. 1. هي عادة احاول التمسك بها ، مثل عند الانتهاء من عمل Recordset ، فلا يوجد داعي لإستعمال set rst=Nothing ، ولكنها عادة جيدة خصوصا لما يكون عندك مجموعة من Recordsets 🙂 2.1. الحد الاقصى لـ TempVars هو 255 متغير فقط ، 2.2. هذه الطريقة استعملها فقط لجدول اعدادات البرنامج ، ولا اعتقد انها ستتعدى 30-40 معلومة ، وكما قلت سابقا:
-
معلومة قيمة ، شكرا جزيلا 🙂 احنا كل اللي نعرفة عن الشبكة هو ، عندنا DNS وعندنا IP (لما ما يشتغل DNS) للوصول لمجلد المشاركة على السيرفر في الشبكة ، وكله تمام 🙂
-
تم اضافة كود تحديث بيانات الجدول و TempVars ، واتضح انه اسهل مما كنت اتوقع 🙂 Function Update_a_Field(New_Value As String, Field_Name As String) ' ' usage from the Form, for example: ' Call Update_a_Field(Forms!frm_Main!BG_Pixel_Color, "Color_Reference") ' '- update the field value in the table DoCmd.SetWarnings False 'DoCmd.RunSQL ("UPDATE tbl_Settings SET sValue =" & Me.BG_Pixel_Tolerance & " WHERE sName='Color_Tolerance'") DoCmd.RunSQL ("UPDATE tbl_Settings SET sValue =" & New_Value & " WHERE sName='" & Field_Name & "'") DoCmd.SetWarnings True '- update the TempVar TempVars.Remove (Field_Name) '- Remove the field TempVars.Add (Field_Name), New_Value '- add the field with the new value End Function . اخوي موسى: عندي برنامج ، على حاسبتين او ثلاث ، يطبعون منه حوالي 1000 وصل خلال نصف ساعة ، وبه صورتين وبيانات اخرى ، والسيرفر بعيد حوالي كيلومتر او اثنين (اذا تحسب اطوال كيبلات الشبكة) ، تصور اذا كنا نطلب مسار الصور كلما اردنا طباعة وصل
-
ولا تنسى ان هذا الجدول لإعدادات البرنامج ، وليست بيانات للتداول بين المستخدمين ، لذا ، وحتى لو اضطررنا لتحديث معلومة معينة في الجدول (وهو واقع الحال هنا كذلك) ، فهذا لا يؤثر على عمل بقية المستخدمين ، فلكل مستخدم اعداداته ومزاجه في استخدام هذه الاعدادات. عند تحديث معلومة معينة (مثلا آخر مكان كان فيه كائن المربع Top و Left) : 1. عند تشغيل البرنامج ، انا آخذ هذه المعلومة من الجدول ، ويقوم البرنامج بعرضها على النموذج ، 2. اثناء عمل البرنامج ، واثناء تحريك المربع ، فانا آخذ هذه القيم من الكائن مباشرة ، 3. وعند الخروج من البرنامج ، يتم حفظ هذه المعلومة في الجدول. نعم لم اتطرق لكود التحديث ، وان شاء الله اضعه هنا حين اكتماله
-
وعليكم السلام اخوي موسى شكرا على مرورك وملاحظاتك 🙂 1. كلامك صحيح بالنسبة الى معظم البرامج ، ولكن البرنامج الذي اعمل عليه هو يعمل كبرنامج مستقل ، فالبيانات محتاج لقراءتها مرة واحدة عند فتح البرنامج. 2. البرنامج لتصوير الموظفين (قريبا سأعمل موضوع خاص به ان شاء الله) ، فيجب ان اجعله يعمل مع اعدادات المؤسسة (المجلدات) ، ومكان حفظ الصور لا علاقة لها بمجلد البرنامج. وبما انني لم انتهي 100% من البرنامج ، فلن استغني عن افكاركم 🙂
-
السلام عليكم بالاشارة الى الموضوع التالي ، والطرق التي تمت الاشارة اليها : في المشاريع اللي احتاج لها اعدادات ، كنت استعمل جدول بسطر واحد ، ولكن في احد مشاريعي ، هذه الاعدادات وصلت الى 21 ولا تزال في زيادة ، فعملت تغيير في الجدول ، واصبح هناك سجل خاص لكل واحدة من الاعدادات: . . وهذا شكل النموذج المستمر للمستخدم: . وبياناته : . ونعرف انه في النموذج المستمر ، لا نستطيع التحكم بشكل حقل دون آخر (إلا عن طريق التنسيق الشرطي ، وعن طريق كود خاص يخص مربع الزر Command button) ، لذلك كان من المهم ان اكتب عبارة معين في اسم الحقل حتى اميزه عن الآخرين (او ان اعمل حقل اكتب فيه طريقة التعامل مع هذا السجل (استفيد منه في التنسيق الشرطي مثلا)) ، لذا نرى ان زر (command button) جميع الحقول التي بحاجة الى اختيار مجلد لها ، بدأ اسم الحقل بالكلمة Path (طبعا هذا مثال) ، وعليه استطعت ان اخفي الزر لبقية السجلات هكذا: Private Sub Detail_Paint() If Left(Me.sName, 4) <> "Path" Then Me.cmd_Path.Transparent = True Else Me.cmd_Path.Transparent = False End If End Sub وعند فتح البرنامج ، اقوم بتشغيل هذه الدالة حتى يتم استيراد البيانات من الجدول الى ذاكرة اكسس : Option Compare Database Option Explicit ' '- tbl_Settings contain the defaults for this program, '- instead of having all these fields in one record, '- we have records of these fields sName, sValue, sDataType '- so here we deal with these values, read/write ' '- jjafferr '- v1. 17/04/2025 ' Function tbl_Settings_Data() '- load the values for the table to TempVars, for each field Dim rstS As DAO.Recordset Dim RC As Long, i As Long Set rstS = CurrentDb.OpenRecordset("Select * From tbl_Settings") rstS.MoveLast: rstS.MoveFirst: RC = rstS.RecordCount For i = 1 To RC '- clean the old values of THIS record TempVars.Remove (rstS!sName) '- since TempVars is Variant, lets set the actual field values based on the field sDataType If rstS!sDataType = "Number" Or rstS!sDataType = "Yes/No" Then TempVars.Add (rstS!sName), CLng(rstS!sValue) ElseIf rstS!sDataType = "Text" Then TempVars.Add (rstS!sName), CStr(rstS!sValue) ElseIf rstS!sDataType = "Date/Time" Then TempVars.Add (rstS!sName), CDate(rstS!sValue) End If rstS.MoveNext Next i rstS.Close: Set rstS = Nothing End Function Function ListTempVars() '- list all TemVars values in this Database Dim i As Long For i = 0 To TempVars.Count - 1 Debug.Print TempVars(i).Name, TempVars(i).Value, VarType(TempVars(i)) Next i End Function Function Update_a_Field(New_Value As String, Field_Name As String) ' ' usage from the Form, for example: ' Call Update_a_Field(Forms!frm_Main!BG_Pixel_Color, "Color_Reference") ' '- update the field value in the table DoCmd.SetWarnings False 'DoCmd.RunSQL ("UPDATE tbl_Settings SET sValue =" & Me.BG_Pixel_Tolerance & " WHERE sName='Color_Tolerance'") DoCmd.RunSQL ("UPDATE tbl_Settings SET sValue =" & New_Value & " WHERE sName='" & Field_Name & "'") DoCmd.SetWarnings True '- update the TempVar TempVars.Remove (Field_Name) '- Remove the field TempVars.Add (Field_Name), New_Value '- add the field with the new value End Function . وعليه ، وعند طلب اي قيمة في البرنامج ، استعمل: اسم الحقل في الجدول Path_Employees_Pic_Folder طريقة طلب القيمة TempVars!Path_Employees_Pic_Folder طريقة استعماله Me.Picture = TempVars!Path_Employees_Pic_Folder & Me.Employee_ID & ".jpg" . السبب الذي جعلني استخدم TempVars يدلا عن الاكواد العامة او الدوال الخاصة هو ، اني اخذ البيانات من الجدول مرة واحدة فقط عند تشغيل البرنامج ، وهذه البيانات تبقى في ذاكرة البرنامج حتى عند استلام رسالة خطأ (عند ظهور رسالة الخطأ ، يقوم اكسس بحذف جميع المتغيرات التي بذاكرنه ، ما عدا بيانات TempVars) ، وبكل بساطة يمكننا قراءة قيمتها من نافذة immediate window في صفحة الكود هكذا: . رجاء ملاحظة ان علامة الاستفهام يجب ان تكون بالانجليزي. ---------------------------------------------------------- 30-05-2025 تم اضافة كود تحديث بيانات الجدول و TempVars ، واتضح انه اسهل مما كنت اتوقع 🙂 جعفر
-
تغيير صورة ( شعار / صورة / غير ذلك ) في النماذج والتقارير
jjafferr replied to عاشق_الرقي's topic in قسم الأكسيس Access
وعليكم السلام اما طريقتي: 1. اعمل مجلد للصور (مثلا اسمه Logo) في نفس مكان وجود قاعدة بياناتك (الكود المسار سيختلف اذا كانت قاعدة بياناتك هي الواجهة او جداول البيانات)، 2. اعمل صورة لإسم الشركة (مثلا img_Company.jpg) ، وصورة اخرى لإسم الفرع ، القسم ، الشعبة ، وهكذا ، صورة لكل شيء تريد عرضه في البرنامج او طباعته)، 3. فب النموذج او التقرير اعمل كائن للصورة (مثلا Company_img)، 4. في حدث OnLoad للنموذج ، او حدث تنسيق قسم التفصيل في التقرير ، اكتب الكود التالي لكل صورة me.Company_img.picture= currentproject.path & "\Logo\img_Company.jpg" . -
وعليكم السلام الافكار الجديدة دائما تخلينا نفكر خارج الصندوق، شكرا جزيلا اخوي ابو جودي 🙂
- 17 replies
-
- 1
-
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
الموقع التالي فيه روابط وفيها برنامج اكسس ممكن الاستفادة منه (البرنامج للبيع، بس يمكنك انزاله بلاش) : https://isladogs.co.uk/32-64-bit-conversion/index.html
- 28 replies
-
- 3
-
-
- اداة تحويل الاكواد،
- 32 الى 64،
-
(و1 أكثر)
موسوم بكلمه :
-
وعليكم السلام اهلا اخي فادي 🙂 اهم شيء في هذا الموضوع، هو الرجوع الى تعليمات مايكروسوفت في التعامل مع دوال نواة 64 بت ، في الرابط التالي: https://www.microsoft.com/en-us/download/details.aspx?id=9970 ملف النص في الرابط اعلاه يعطيك تفاصيل الدالة على نواة 64 بت. المثال الذي استعملته انت، وانا متأكد بأنك كنت حريص في انتقاء الدالة، توجد به 3 فروقات عن الدالة في ملف مايكروسوفت (السطر الثاني من ملف مايكروسوفت) : والمسألة لا تتوقف عند هذا السطر فقط، فهناك دوال معقدة تحتاج الى استعمال if# في دالتي الخاصة. رجاء قراءة الموضوعين التاليين ، فطريقة العمل تختلفان ، وفيهما بعض الامثلة المختلفة: . .
- 28 replies
-
- 1
-
-
- اداة تحويل الاكواد،
- 32 الى 64،
-
(و1 أكثر)
موسوم بكلمه :
-
مشكلة في حجم ملف الـ Database الحد الاقصى للمساحة
jjafferr replied to pingo22's topic in قسم الأكسيس Access
حياكم الله 🙂