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

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

قام بنشر

السلام عليكم 

كنت طرحت موضوع عرض السجلات في التقرير 

ولم اجد الا اجابه من الاستاذ ابو خليل بأن اسهل طريقة هي وضع السجلات 

في جدول مؤقت 

اليوم اطرح نفس السؤال وطلب المساعده في عرض السجلات في نموذج بطريقة عرض نماذج مستمره 

بدون جداول مؤقته 

حاليا استخدم مربع القائمة لكن مع الاسف لايفي بالغرض لعدم التمكن من تنسيق القائمه واستخدام 

التنسيق الشرطي 

AdoForm.rarFetching info...

قام بنشر
  في 1‏/6‏/2022 at 15:16, kanory said:

طيب ... ايش رأيك في هذا ...... اذا كان ينفعك ...

Expand  

ما فهمت المقصود 

هذا يحدد مصدر السجلات 

المطلوب عرضها بالنموذج بطريقة عرض نماذج مستمرة 

 

قام بنشر

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

 

هذا الملف من مكتبتي وفيه طلبك ، ولكن للاسف وقتي لا يسمح لي بتعديل ملفك !!

 

image.png.9779e7c141e6df62f9509ad4c387f6ec.png

.

وهذه اكواد الطريقة:

Option Compare Database
Option Explicit

    
Private Sub Form_Open(Cancel As Integer)
On Error Resume Next

    Dim dbs As DAO.Database
    Dim rstDAO As DAO.Recordset
    Dim rstADO As ADODB.Recordset
    Dim fld As ADODB.Field
    Dim strSQL As String


    Set rstADO = New ADODB.Recordset
    With rstADO
        .Fields.Append "EmployeeID", adInteger, , adFldKeyColumn
        .Fields.Append "FirstName", adVarChar, 10, adFldMayBeNull
        .Fields.Append "LastName", adVarChar, 20, adFldMayBeNull
        .Fields.Append "Email", adVarChar, 64, adFldMayBeNull
        .Fields.Append "Include", adInteger, , adFldMayBeNull
        .Fields.Append "Selected", adBoolean, , adFldMayBeNull
        .CursorType = adOpenKeyset
        .CursorLocation = adUseClient
        .LockType = adLockPessimistic
        .Open
    End With
    
    Set dbs = CurrentDb
    strSQL = "SELECT EmployeeID, FirstName, LastName, Email " & _
             "FROM Employees ORDER BY LastName, FirstName"
    Set rstDAO = dbs.OpenRecordset(strSQL, dbOpenDynaset)

    Do Until rstDAO.EOF
        rstADO.AddNew
        rstADO.Fields(0) = rstDAO!EmployeeID
        rstADO.Fields(1) = rstDAO!FirstName
        rstADO.Fields(2) = rstDAO!LastName
        rstADO.Fields(3) = rstDAO!Email
        rstADO.Fields(4) = Null
        rstADO.Fields(5) = Null
        rstADO.Update
        
        rstDAO.MoveNext
    Loop

    Set Me.Recordset = rstADO
    Me.AllowAdditions = True

    Set rstDAO = Nothing
    Set dbs = Nothing

End Sub

Private Sub txtEmployeeID_DblClick(Cancel As Integer)

    Dim rst As New ADODB.Recordset
    
    Set rst = Me.Recordset.Clone
    
    With rst
        .AddNew
        .Fields(0) = 99
        .Fields(1) = "danny"
        .Fields(2) = "lesandrini"
        .Fields(3) = "d@l.org"
        .Fields(4) = 1
        .Fields(5) = True
        .Update
    End With
    
    Set Me.Recordset = rst

End Sub

 

جعفر

ADORST.mdbFetching info...

  • Like 1
قام بنشر
  في 2‏/6‏/2022 at 05:58, jjafferr said:

هذا الملف من مكتبتي وفيه طلبك ، ولكن للاسف وقتي لا يسمح لي بتعديل ملفك !!

Expand  

الله يعطيك العافية 

سأحاول بأذن لله تطبيق الطريقة 

لكن استفسار لوسمحت 

  في 2‏/6‏/2022 at 05:58, jjafferr said:
Dim dbs As DAO.Database
Expand  

بالنسبة لهذا المتغير 

تم تعريفه على قاعدة البيانات الحالية 

كيف سيكون في حالة الاتصال Sql Server

قام بنشر
  في 2‏/6‏/2022 at 07:21, د.كاف يار said:

فضل جرب هذا التعديل بدون عمل جداول مؤقته 

Expand  

الله يعطيك العافية 

طريقتك تعتمد على إنشاء استعلام 

وبالتالي حفظ جملة الاتصال بالسيرفر في الاستعلام 

وهنا سيكون اسم المستخدم والرقم السري للسيرفر مكشوف 

image.png.184d2d532e9dbd6a4b1b6d04672f1617.png

امام المتعبثين 😁

طريقة الاستاذ جعفر تفي بالغرض لكن بحاجه الى تفاصيل  الاتصال بالسيرفر بدل من القاعدة الحالية 

لان جملة الاتصال ستكون داخل محرر الاكود ولن يتم الوصول اليها بعد تحويل الملف الى accde

قام بنشر
  في 2‏/6‏/2022 at 05:03, alsihran said:

ما فهمت المقصود 

هذا يحدد مصدر السجلات 

المطلوب عرضها بالنموذج بطريقة عرض نماذج مستمرة 

 

Expand  

طيب الكود يقوم بالازم ....

ضعه في حدث عند تحميل النموذج ...

اذا وصلت جهازي سوف ادرج لك المثال المطبق ان شاء الله تعالى واعتقد انه يفي بالغرض ولا يمكن الوصول الى بيانات السيرفر غن قبل العابثين 🤣

  • Like 1
قام بنشر
  في 2‏/6‏/2022 at 11:55, kanory said:

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

Expand  

الله يعطيك العافية 

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

وهذا يعني ( أن الاتصال بالسيرفر سيبقى مفتوح الى ان يتم اغلاق النموذج )

image.png.30f8129c5e32fdd85a16c382d3076f31.png

والمطلوب :

استعلام يحضر البيانات ويغلق الاتصال 

كما في طريقة الاستاذ  جعفر 

والاستاذ @د.كاف يار

  • Like 1
قام بنشر

قمت بالتعديل على كود الاستاذ @jjafferr

Private Sub Form_Open(Cancel As Integer)
On Error Resume Next

    Dim dbs As ADODB.Connection
    Dim rstDAO As ADODB.Recordset
    Dim rstADO As ADODB.Recordset
    Dim fld As ADODB.Field
    Dim strSQL As String


    Set rstADO = New ADODB.Recordset
    With rstADO
        .Fields.Append "EmployeeID", adInteger, , adFldKeyColumn
        .Fields.Append "FirstName", adVarChar, 10, adFldMayBeNull
        .Fields.Append "LastName", adVarChar, 20, adFldMayBeNull
        .Fields.Append "Email", adVarChar, 64, adFldMayBeNull
        .Fields.Append "Include", adInteger, , adFldMayBeNull
        .Fields.Append "Selected", adBoolean, , adFldMayBeNull
        .CursorType = adOpenKeyset
        .CursorLocation = adUseClient
        .LockType = adLockPessimistic
        .Open
    End With
        Set dbs = CreateObject("ADODB.Connection")

dbs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Shran\Desktop\AdoForm\Adb_Dat.accdb;Persist Security Info=False;"

'    Set dbs = CurrentDb
    strSQL = "SELECT EmployeeID, FirstName, LastName, Email " & _
             "FROM Employees ORDER BY LastName, FirstName"
    Set rstDAO = dbs.OpenRecordset(strSQL, dbOpenDynaset)

    Do Until rstDAO.EOF
        rstADO.AddNew
        rstADO.Fields(0) = rstDAO!EmployeeID
        rstADO.Fields(1) = rstDAO!FirstName
        rstADO.Fields(2) = rstDAO!LastName
        rstADO.Fields(3) = rstDAO!Email
        rstADO.Fields(4) = Null
        rstADO.Fields(5) = Null
        rstADO.Update
        
        rstDAO.MoveNext
    Loop

    Set Me.Recordset = rstADO
    Me.AllowAdditions = True

    Set rstDAO = Nothing
    Set dbs = Nothing

لكي يحضر البيانات من قاعدة بيانات خارجية ( مثال تقريبي لمحاكات السيرفر )

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

وبعد تتبع الكود اثناء التنفيذ وجدته يستمر في عملية Loop بدون توقف 

ما اعرف وين المشكلة ......؟

قام بنشر
  في 2‏/6‏/2022 at 12:27, alsihran said:

الله يعطيك العافية 

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

وهذا يعني ( أن الاتصال بالسيرفر سيبقى مفتوح الى ان يتم اغلاق النموذج )

والمطلوب :

استعلام يحضر البيانات ويغلق الاتصال 

 

Expand  

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

  • Like 2
قام بنشر
  في 6‏/6‏/2022 at 14:32, kanory said:

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

Expand  

شكرا لك على تفاعلك في الموضوع 

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

في الحقيقة  ما اعرف هل المطلوب ممكن مع Ado Recordset    أم لا 

بحثت في المواقع الاجنبية لكن ما وصلت لنتيجة كل الموجود نفس طريقة الاستاذ جعفر 

يحضر البيانات من جدول في نفس قاعدة البيانات 

الهدف من المطلوب المعرفة وزيادة المعلومات ☺️

لو احد الاساتذة يعطيني اجابة جازمه بأن المطلوب ممكن او غير ممكن 

مع الشكر للجميع 

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