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

كيف يمكن معرفة اسم نموذج بدء التشغيل في قاعدة البيانات


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

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

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

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

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

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

 

 

a.accdb

1.png

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

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

ادخل غلى ملف ثم خيارات قم خيارات قاعدة البيانات الحالية ستجد كما في الصورة نموذج بدئ التشغيل اذا كان موجود بالامكان تغيره اذا اردت الى نموذج اخر 

التقاط.JPG

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

انا استعمل 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
رابط هذا التعليق
شارك

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