اذهب الي المحتوي
أوفيسنا

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

قام بنشر (معدل)

السلام عليكم ورحمة الله وبركاته

هل يمكن معرفة ان القاعدة في خصائصها نموذج بدء تشغيل ؟ ام لا ؟

كيف يمكن تعديل هذا النموذج الى نموذج اخر ؟؟

بارك الله في جهودكم 

مرفق قاعدة للتعديل عليها

 

 

a.accdb

1.png

تم تعديل بواسطه ابو البشر
قام بنشر

انا استعمل Macro اسمه Autoexec

والذي معناه انه اول شيء يشتغل عند فتح الاكسس ،

وفيها اضع اسم النموذج الذي اريد فتحه ، او الدالة في الوحدة النمطية اللي اريدها تشتغل 🙂

 

جعفر

  • Like 2
قام بنشر

اشكركم اساتذتي

@ازهر عبد العزيز

@jjafferr

@ابوبسمله

هذي كلها اعرفها بارك الله فيكم ولكن كان السبب في السؤال ....

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

A.OpenCurrentDatabase Dpath
A.CurrentDb.Properties("StartUpForm") = "Form.frm-UserLogon"

طبعا A  هي قاعدة خارجية

قام بنشر

كنت مستغرب من ابو البشر يسأل هذا السؤال البسيط ، والآن عرفنا السبب 😁

 

هل انت متأكد ان اسم النموذج "Form.frm-UserLogon" وليس "Form.frm_UserLogon" او "frm-UserLogon" او  "frm_UserLogon"

شوف اسم النموذج اذا صحيح 

  • Haha 2
قام بنشر
11 دقائق مضت, jjafferr said:

كنت مستغرب من ابو البشر يسأل هذا السؤال البسيط ، والآن عرفنا السبب 😁

كنت ولازلت انسان اتعلم وبسيط لا ارتقى الى شريف علمكم بارك الله فيك 😉

13 دقائق مضت, jjafferr said:

هل انت متأكد ان اسم النموذج "Form.frm-UserLogon" وليس "Form.frm_UserLogon" او "frm-UserLogon" او  "frm_UserLogon"

شوف اسم النموذج اذا صحيح 

نعم لان البرنامج كان يعمل ... ولازال يعمل على اوفيس 2007 ويندوز 7

جهازي حاليا :: ويندوز 10 64Bit اوفيس 19

 

 

  • Like 1
قام بنشر

من تجربتي في الرابط المرفق ، لم استعمل كلمة Form في اسم النموذج

.

احذفه وجرب ،

ووهل جربت تفتح البرنامج مباشرة ، فهل يشتغل دون اخطاء ؟

  • Like 1
قام بنشر (معدل)
2 ساعات مضت, ابو البشر said:

كنت ولازلت انسان اتعلم وبسيط لا ارتقى الى شريف علمكم بارك الله فيك 😉

انضم لاخى ابو البشر

بالنسبه لى قمت بالتجربه ويندوز 7 اوفيس 2019 الجميع 32 بت

فظهر لى الخطأ رقم 3270 وبحثت بعدها فوجدت بانه لايجد الخاصيه لاضافتها

فقمت باضافه الخواص

 

Private Sub أمر0_Click()

On Error GoTo Error_Handler

Static acc As Access.Application
Dim db As DAO.Database
Dim strDbName As String

strDbName = CurrentProject.Path & "\a.accdb"
Set acc = New Access.Application

Set db = acc.DBEngine.OpenDatabase(strDbName, False, False)

acc.OpenCurrentDatabase strDbName

    Set Property = acc.CurrentDb.CreateProperty("StartUpForm", 10, "frm_2", True)
    Call acc.CurrentDb.Properties.Append(Property)
'    acc.DoCmd.OpenForm "frm_2"
    
Error_Handler_Exit:
    Exit Sub

Error_Handler:
    If Err.Number = 3367 Then
        Resume Error_Handler_Exit
    End If

db.Close
Set db = Nothing

End Sub

 

 

New folder.rar

تم تعديل بواسطه ابوبسمله
  • Like 2
قام بنشر
11 ساعات مضت, ابوبسمله said:

فظهر لى الخطأ رقم 3270 وبحثت بعدها فوجدت بانه لايجد الخاصيه لاضافتها

فقمت باضافه الخواص

ياريت تخبرنا عنها ، لأنها ضاعت وسط الكود 🙂

  • Like 1
قام بنشر (معدل)
53 دقائق مضت, jjafferr said:

ياريت تخبرنا عنها ، لأنها ضاعت وسط الكود 🙂

صباح الخير اخى ومعلمى العزيز جعفر

بالنسبه للخطأ المذكو كان عند استعمال الكود الاول

2.png

1.png

تم تعديل بواسطه ابوبسمله
قام بنشر (معدل)

للفائدة هذي دالة Function وضيفتها تعيين الخواص لقاعدة البيانات .. وفي حال لو لقيها ما موجودة ينشأها 🙂 

 

Public Enum propType
    PropTypeString = 1
    PropTypeInteger = 2
    PropTypeDouble = 3
    PropTypeBoolean = 4
    PropTypeDate = 5
End Enum


Function CreateProperty(propName As String, propType As propType, propValue As Variant)
' Chat GPT

    On Error Resume Next
    Dim app As dao.Database
    Set app = CurrentDb
    app.CreateProperty propName, propType, propValue, True
    If Err.Number <> 0 Then
        ' Property already exists, set the value
        app.Properties(propName) = propValue
    End If
    On Error GoTo 0
End Function

وتناديها بهذي الطريقة :

Call CreateProperty("MyProperty", PropTypeString, "Hello World!")

 

تم تعديل بواسطه Moosak
تعديل بسيط على الدالة
  • Like 2
قام بنشر
14 ساعات مضت, ابوبسمله said:

انضم لاخى ابو البشر

بالنسبه لى قمت بالتجربه ويندوز 7 اوفيس 2019 الجميع 32 بت

فظهر لى الخطأ رقم 3270 وبحثت بعدها فوجدت بانه لايجد الخاصيه لاضافتها

فقمت باضافه الخواص

 

Private Sub أمر0_Click()

On Error GoTo Error_Handler

Static acc As Access.Application
Dim db As DAO.Database
Dim strDbName As String

strDbName = CurrentProject.Path & "\a.accdb"
Set acc = New Access.Application

Set db = acc.DBEngine.OpenDatabase(strDbName, False, False)

acc.OpenCurrentDatabase strDbName

    Set Property = acc.CurrentDb.CreateProperty("StartUpForm", 10, "frm_2", True)
    Call acc.CurrentDb.Properties.Append(Property)
'    acc.DoCmd.OpenForm "frm_2"
    
Error_Handler_Exit:
    Exit Sub

Error_Handler:
    If Err.Number = 3367 Then
        Resume Error_Handler_Exit
    End If

db.Close
Set db = Nothing

End Sub

 

للاسف اخي @ابوبسمله

لم يتم التعديل على نموذج القاعدة الاخرى

2 ساعات مضت, Moosak said:

للفائدة هذي دالة Function وضيفتها تعيين الخواص لقاعدة البيانات .. وفي حال لو لقيها ما موجودة ينشأها 🙂 

 

Public Enum propType
    PropTypeString = 1
    PropTypeInteger = 2
    PropTypeDouble = 3
    PropTypeBoolean = 4
    PropTypeDate = 5
End Enum


Function CreateProperty(propName As String, propType As propType, propValue As Variant)
' Chat GPT

    On Error Resume Next
    Dim app As Access.Application
    Set app = Application
    app.CreateProperty propName, propType, propValue
    If Err.Number <> 0 Then
        ' Property already exists, set the value
        app.Properties(propName) = propValue
    End If
    On Error GoTo 0
End Function

وتناديها بهذي الطريقة :

Call CreateProperty("MyProperty", PropTypeString, "Hello World!")

 

اخي @Moosak ممكن تطبقها على المرفق السابق ... بارك الله فيك

قام بنشر
25 دقائق مضت, ابو البشر said:

للاسف اخي @ابوبسمله

لم يتم التعديل على نموذج القاعدة الاخرى

وعلام الاسف اخى ابو البشر ليس هناك ما يستدعى الاسف بارك الله فيك

اطلع ع الفيديو لان لا يوجد عندى برامج للصور المتحركه الان

بالتوفيق اخى

Video_2023-01-28_2.rar

  • Like 1
قام بنشر
12 دقائق مضت, ابوبسمله said:

وعلام الاسف اخى ابو البشر ليس هناك ما يستدعى الاسف بارك الله فيك

اتأسف لأني اشغلتكم معي بارك الله فيكم جميعا

جاري المشاهدة للفيديو .... جزاك الله خيرا

قام بنشر (معدل)
في 28‏/1‏/2023 at 15:10, ابو البشر said:

ممكن تطبقها على المرفق السابق

للأسف لم تنجح محاولاتي ..

ولكن كحل سريع لتخرج من مشكلة تعيين الخاصية هذه ..

افتح قاعدة البيانات المطلوبة ومن الخصائص ضع أي نموذج بداية للقاعدة يدويا ..

وبهذا تستطيع بعدها من تغيير اسم النموذج بالكود بدون مشاكل 🙂 

تم تعديل بواسطه Moosak
  • Thanks 1
قام بنشر

استخدم هذه الفنكشن لتغيير startupform
 

Private Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Boolean
Dim db As Database, prp As Property
Const conPropNotFoundError = 3270
On Error GoTo Change_Err
Set db = CurrentDb
db.Properties(strPropName) = varPropValue
ChangeProperty = True
Exit Function

Change_Err:
If Err = conPropNotFoundError Then
Set prp = db.CreateProperty(strPropName, varPropType, varPropValue)
db.Properties.Append prp
Resume Next
Else
ChangeProperty = False
Exit Function
End If
End Function

واستدعيه 
ChangeProperty "StartupForm", dbText, "YourFormName"

  • Like 1
  • Thanks 1
قام بنشر

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

 

كود اخوي ابو بسملة = تفتح قاعدة بيانات خارجية ، وتغير اسم النموذج الذي يفتح البرنامج الخارجي ،

بينما كودي انا = تفتح قاعدة بيانات خارجية ، وتفتح النموذج الذي تريد 🙂

 

قمت بتجربة برنامجي على 3 كمبيوترات:

وندوز ، اكسس 2010 32بت ،

وندوز 7 ، اكسس 2019 64بت ،

وندوز 10 ، اكسس 365 64بت ،

واشتغل تمام :

image.png.39fa5a86fb9e49bb5056525be222d09c.png

.

والكود :

Option Compare Database
Option Explicit

    Dim appAccess As Object
    Dim DB_Path As String
'

Private Sub cmd_Open_frm_1_Click()
On Error GoTo err_cmd_Open_frm_1_Click

    'if the Remote Application/Form is open, close it first
    appAccess.DoCmd.Quit
    
    Set appAccess = CreateObject("Access.Application")
    DB_Path = CurrentProject.Path & "\a.accdb"
    appAccess.OpenCurrentDatabase (DB_Path)
    appAccess.DoCmd.OpenForm "frm_1"
    appAccess.Visible = True
    appAccess.UserControl = True
    Set appAccess = Nothing
    appAccess.DoCmd.Quit

Exit_cmd_Open_frm_1_Click:

    Exit Sub
err_cmd_Open_frm_1_Click:

    If Err.Number = 91 Or Err.Number = 462 Then
        'the application is NOT open, ignore the error
        Resume Next
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
        Resume Exit_cmd_Open_frm_1_Click
    End If
    
End Sub


Private Sub cmd_Open_frm_2_Click()
On Error GoTo err_cmd_Open_frm_2_Click
    
    'if the Remote Application/Form is open, close it first
    appAccess.DoCmd.Quit
    
    Set appAccess = CreateObject("Access.Application")
    DB_Path = CurrentProject.Path & "\a.accdb"
    appAccess.OpenCurrentDatabase (DB_Path)
    appAccess.DoCmd.OpenForm "frm_2"
    appAccess.Visible = True
    appAccess.UserControl = True
    'Set appAccess = Nothing

Exit_cmd_Open_frm_2_Click:

    Exit Sub
err_cmd_Open_frm_2_Click:

    If Err.Number = 91 Or Err.Number = 462 Then
        'the application is NOT open, ignore the error
        Resume Next
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
        Resume Exit_cmd_Open_frm_2_Click
    End If
    
End Sub

Private Sub cmd_quit_Click()
On Error GoTo err_cmd_quit_Click


    GetObject(DB_Path).Application.Quit

Exit_cmd_quit_Click:

    Exit Sub
err_cmd_quit_Click:


        MsgBox Err.Number & vbCrLf & Err.Description
        Resume Exit_cmd_quit_Click
  
End Sub

 

جعفر

Open Form another DB_jj.zip

  • Like 3
  • Thanks 1
قام بنشر
في 28‏/1‏/2023 at 13:52, ابو البشر said:

اتأسف لأني اشغلتكم معي بارك الله فيكم جميعا

جاري المشاهدة للفيديو .... جزاك الله خيرا

لا يوجد اسف بين الاخوان اخى ابوالبشر وانت اخ عزيز علينا وفيك بارك الله اخى

هل شاهدت الفيديو ؟

واياكم اخى

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

واشتغل تمام :

وشغال معايا تمام معلمنا العزيز جعفر وجزاك الله عنا كل خير اخى ومعلمى 💐

ولكن اصل السؤال لاخى ابوالبشر 👇

في 27‏/1‏/2023 at 17:39, ابو البشر said:

هذي كلها اعرفها بارك الله فيكم ولكن كان السبب في السؤال ....

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

A.OpenCurrentDatabase Dpath
A.CurrentDb.Properties("StartUpForm") = "Form.frm-UserLogon"

طبعا A  هي قاعدة خارجية

فهل قام احد الاخوه بتجربه المثال لان المثال لم يعمل مع اخى ابو البشر ولا اعلم اين المشكله

  • Thanks 1
قام بنشر
49 دقائق مضت, ابوبسمله said:

فهل قام احد الاخوه بتجربه المثال لان المثال لم يعمل مع اخى ابو البشر ولا اعلم اين المشكله

يعمل ياعم احمد انا جربته بشكل سريع على نفس الاجهزة في مشاركتي السابقة

5 ساعات مضت, مبرمج متقاعد said:

ويندوز 11 64 اوفيس 2016 32 ✔️

ويندوز 11 64 اوفيس 2021 64  ✔️

ويندوز 10 64 اوفيس 2019 64 ✔️

ولم يعمل على جهاز بنظام ويندوز 2003 ستاندر اديشن ولم اجرب مثال اخي جعفر على هذا الجهاز واكتفيت بماتم الاشارة اليه

تحياتي

  • Like 1
  • Thanks 1
قام بنشر
3 ساعات مضت, مبرمج متقاعد said:

يعمل ياعم احمد انا جربته بشكل سريع على نفس الاجهزة في مشاركتي السابقة

تسلم اخى ومعلمى العزيز خالد 💐

3 ساعات مضت, مبرمج متقاعد said:

ولم يعمل على جهاز بنظام ويندوز 2003 ستاندر اديشن ولم اجرب مثال اخي جعفر على هذا الجهاز واكتفيت بماتم الاشارة اليه

تحياتي

لا املك هذا الاصدار للتجربه وجهاز بطىء ولكن يفى بالغرض الى الان والحمد لله

تحياتى اخى ومعلمى العزيز

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