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

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

قام بنشر

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

لدي الكود الذي كتبه الاستاذ  jjafferr  في الموضوع ادناه ...

و الاستاذ جعفر غير متواجد من فترة ... عسى المانع خير ...

و الان بعد بعض التعديلات الكود لا يعمل ... الرجاء تعديله ليناسب هذه التعديلات ... 

مع التقدير ...

 

New .rar

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

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

حياك الله اخي كرار ...

انت قمت بتغيير اغلب مسميات الحقول والذي يعتمد عليه الكود الذي قام به الأستاذ جعفر  ...

هنا مثال 

Set rst = CurrentDb.OpenRecordset("Select * From sh Order By tash")

جملة  select في الريكورد ست تختار من الجدول sh وانت قمت بتغييره الى tb_sh  كذلك tash انت قمت بتغييرها إلى تاريخ الوصل .. وهكذا ..

ما عليك فعله هو احد امرين .. 

1-تغيير المسميات في الكود بما يتناسب مع مسميات الحقول لديك ..

2- إرجاع تسميات حقول الجداول الى ماكانت عليه ..

بإمكانك ارجاعها الى ماكانت عليه مع الإستعانه بالتسمية التوضيحية للحقل  ... لكي تظهر باللغة العربية ..

اما اسم الحقل نفسه فأنصحك بأن يكون باللغة الإنجليزية ..

 

اتمنى اني افدتك ..

وفقنا الله واياك ..

تم تعديل بواسطه سعيد صواب
  • Like 1
قام بنشر
في 12/5/2015 at 16:16, karrar sabry said:

و الاستاذ جعفر غير متواجد من فترة ... عسى المانع خير ...

الحمدلله كنت في الزيارة :rol:

جرب المرفق لوسمحت :rol:

 

في 12/7/2015 at 07:25, سعيد صواب said:

انت قمت بتغيير اغلب مسميات الحقول والذي يعتمد عليه الكود الذي قام به الأستاذ جعفر  ...

رحم الله والديك أخي سعيد ، انت وفرت علي اكثر من نصف الطريق :rol:

 

جعفر

231.1.New .accdb.zip

قام بنشر

وعليكم السلام أخي كرار :rol:

 

من متابعتي لردودك في المنتدى ، كان يجب علي ان افهم انك جربت تغيير الكود المطلوب واصطدمت بهذه الرسالة ، وتوقفت عندها :rol::

0.Too_Few_Parametrs.jpg.19439a7e34ff0985

 

وافضل طريقة للتغلب عليها ، ان ترجع الكرة الى ملعبي :rol:

 

السبب في حصولك هذه الرسالة ، هو ان لديك معايير 3 في الاستعلام sh11 والذي يعتمد عليه الاستعلام sh .

طيب ، اذا الاستعلام sh11 يستطيع ان يقرأ المعايير من النموذج ee ، فلماذا لا يستطيع الكود ان يقرأه!!

والجواب ان الاكسس عبارة عن اكثر من برنامج مرتبطه ببعضها ،

فمنها الـ jet والذي الان يسمى Ace من الاصدار 2007 ، وهو مسئول عن الاستعلامات وبقية امور الاكسس ،

ومنها الاكسس شخصيا ، وكود VBA جزء منه ،

والبرنامجين ، صحيح انهم مرتبطين ، ولكن هناك بعض الامور التي لا يتفاهمون عليها مباشرة ، بل يجب عمل وسيط بينهم ،

وحل هذه الرسالة هي احد الاشياء اللي محتاجة وسيط :rol:

 

كود اصطياد الخطأ ، في الكود المرفق ، هو حلقة الوصل ، واخذ مني الوقت الطويل لتضبيطه ليتلائم مع برمامجك ، فاعتذر عن التأخر على الرد عليك :rol:

 

Private Sub cmd_Combine_Click()
On Error GoTo err_cmd_Combine_Click

    'delete the old data
    mySQL = "Delete * From tbl_PP"
    CurrentDb.Execute (mySQL)
    
    Dim rstpp As DAO.Recordset
    Dim rst As DAO.Recordset
    Dim strSql As String
    
    Set rstpp = CurrentDb.OpenRecordset("Select * From tbl_PP")
   
'1
'j    Set rst = CurrentDb.OpenRecordset("Select * From sh Order By tash")
'j2    Set rst = CurrentDb.OpenRecordset("Select * From tb_sh Order By [تاريخ الوصل]")
    strSql = "Select * From sh Order By [تاريخ الوصل]"
    Set rst = CurrentDb.OpenRecordset(strSql)
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    
    'add all the records
    For i = 1 To RC
        
        rstpp.AddNew
'j            rstpp!iDate = rst!tash
'j            rstpp!Purchase = rst!mbsh
            rstpp!iDate = rst![تاريخ الوصل]
            rstpp!Purchase = rst!mb
        rstpp.Update
        
        rst.MoveNext
    Next i
    
    
'2
'j    Set rst = CurrentDb.OpenRecordset("Select * From ts Order By tats")
'j2    Set rst = CurrentDb.OpenRecordset("Select * From tb_ts Order By [تاريخ]")
    strSql = "Select * From ts Order By [تاريخ]"
    Set rst = CurrentDb.OpenRecordset(strSql)
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    
    'we should check if the date is available, then we should use it
    For i = 1 To RC
        
'j        rstpp.FindFirst "iDate=#" & rst!tats & "#"
        rstpp.FindFirst "iDate=#" & rst![تاريخ] & "#"
        
        If rstpp.NoMatch Then
            
            rstpp.AddNew
'j                rstpp!iDate = rst!tats
'j                rstpp!Payment = rst!mbts
                rstpp!iDate = rst![تاريخ]
                rstpp!Payment = rst!mblk
            rstpp.Update
            
        Else
            
            rstpp.Edit
                'rstpp!iDate = rst!tats
'j                rstpp!Payment = rst!mbts
                rstpp!Payment = rst!mblk
            rstpp.Update
            
        End If
        
        rst.MoveNext
    Next i
    
    rstpp.Close: Set rstpp = Nothing
    rst.Close: Set rst = Nothing
    DoCmd.OpenTable "tbl_pp"
        
        
Exit Sub
err_cmd_Combine_Click:

        If Err.Number = 3061 Then  'too few parameters, expected 1 or more
            
            'this error occurs when trying to run a query which needs its parameters from a Form,
            'the Form should be open with the parameter, then this code take the values properly
            
            Dim qdf As QueryDef
            Dim prm As Parameter
            
            'Set qdf = CurrentDb.QueryDefs("strSql")
            Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", strSql)
            For Each prm In qdf.Parameters
                prm.Value = Eval(prm.Name)
            Next prm

            Set rst = qdf.OpenRecordset(dbOpenDynaset)
            DoCmd.DeleteObject acQuery, "NewQueryDef"
            
            Resume Next
        
        Else
        
            MsgBox Err.Number & vbCrLf & Err.Description
        End If
            
End Sub

 

 

جعفر

231.1.New .accdb.zip

  • Like 2
  • 1 month later...
قام بنشر
في ١٣‏/١٢‏/٢٠١٥ at 11:47, jjafferr said:

:rol:

السلام عليكم استاذ جعفر ... ان شاء الله تكون بخير

عندي مشكلة في الجملة " As DAO.Recordset " كما في الصورة المرفقة

علما اني طبقت الكود في " مثال مستقل " و عمل تمام 

لكن لما طبقته في " برنامج " ظهرت الرسالة كما في الصورة المرفقة ... :blink:

مع شكري مقدما ... :fff:

New Bitmap Image.bmp

قام بنشر

وعليكم السلام :rol:

 

نصيحة:

اول ما تنقل محتويات برنامج الى آخر ، تأكد انك تقارن مكتبات VBA البرنامجين ايضا :rol:

 

وردا على سؤالك ، وتأييدا لما قاله اخي سعيد:

3 ساعات مضت, سعيد صواب said:

تأكد هل هذه المكتبة موجودة في برنامجك الذي تطبق فيه الكود 

Microsoft DAO object library

.

او تختار:

Microsoft Office xx.x Access Database Engine Object Library

فمثلا اذا عندك اكسس 2010 ، سيكون:

Microsoft Office 14.0 Access Database Engine Object Library

 

 

جعفر

قام بنشر
5 ساعات مضت, سعيد صواب said:

حياك الله اخي كرار 

مشاركة مع استاذنا جعفر 

تأكد هل هذه المكتبة موجودة في برنامجك الذي تطبق فيه الكود 

Microsoft DAO object library

بالتويق

:fff:

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

وردا على سؤالك ، وتأييدا لما قاله اخي سعيد

:fff:

شكرا أساتذتي الكرام على وقتكم ... وربي لا يحرمنا منكم :fff::fff:

هذه المكتبة لم تكن موجودة  Microsoft DAO object library 

* لكنها غير موجودة في المثال الذي طبقته انا , و الكود يعمل بلا مشكلة :blink:

قام بنشر
2 ساعات مضت, karrar sabry said:

هذه المكتبة لم تكن موجودة  Microsoft DAO object library 

* لكنها غير موجودة في المثال الذي طبقته انا , و الكود يعمل بلا مشكلة :blink:

هذا صحيح ، ولكن أخي سعيد كان يشير الى سبب رسالة الخطأ عموما ،

لهذا السبب ، انا اضفت وقلت:

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

او تختار:

فمثلا اذا عندك اكسس 2010 ، سيكون:

Microsoft Office 14.0 Access Database Engine Object Library

 

 

جعفر

قام بنشر
1 ساعه مضت, karrar sabry said:

فهمت ... يعني 1.اما المكتبة الاولى أو 2.الثانية أو 3.كلاهما ... :rol:

1 و 2 نعم ،

اما 3 ، فلا ، والبرنامج اصلا لن يسمح لكن بذلك:rol:

 

 

جعفر

قام بنشر
في ٢١‏/١‏/٢٠١٦ at 11:21, jjafferr said:

:rol:

استاذ جعفر العزيز ...

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

لكن حساب العميل لا ...

لو سمحت افحص الكود ... :rol:

وشكرا مقدما ...:fff:

http://www.mediafire.com/download/az8svczu9zjxhc0/%D9%85%D8%AB%D8%A7%D9%84.rar

قام بنشر

السلام عليكم أخي كرار :rol:

 

تذكر لما قلت لك:

في 12/12/2015 at 00:26, jjafferr said:

كود اصطياد الخطأ ، في الكود المرفق ، هو حلقة الوصل

وهو: Error GoTo err_cmd_Combine_Click

 

وانت استخدمت نفس الكود للزر الآخر كذلك!!

 

رجاء تعديل حدث الزر الآخر من

err_cmd_Combine_Click

الى

err_cmd_Combine_Click2

 

ويوجد في مكانين في الحدث :rol:

 

 

جعفر

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.

×
×
  • اضف...

Important Information