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

jjafferr

أوفيسنا
  • Posts

    9,871
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    403

كل منشورات العضو jjafferr

  1. 2. لانه انا شايف الدالة ConnectSQL() بتنادي نفسها اذا الكنكشن مغلق ! وخلق الكائن وفتحه ياتي بعد مناداة الدالة ! فهنا هل سيتم تنفيذ باقي جسم الدالة خصوصا انها تتطلب تمرير الكائن cnn وهو لسا لم تسند له القيم !! 1. والله أخوي رمهان البرنامج ليس بالكامل ، ومشتت ، وصار لي 7 سنوات ما لمسته ، فما اتذكر ايش وضعه 2. انا فتحت الاتصال من كود النموذج الاساسي بمناداة الدالة Call ConnectSQL(cnn) جعفر
  2. وعليكم السلام أخي كرار هاي ما كانت سهلة لازم تستخدم الزر اللي في النموذج ، والكود حقه: Private Sub 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 Set rstpp = CurrentDb.OpenRecordset("Select * From tbl_PP") '1 Set rst = CurrentDb.OpenRecordset("Select * From sh Order By tash") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'add all the records For i = 1 To RC rstpp.AddNew rstpp!iDate = rst!tash rstpp!Purchase = rst!mbsh rstpp.Update rst.MoveNext Next i '2 Set rst = CurrentDb.OpenRecordset("Select * From ts Order By tats") 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 rstpp.FindFirst "iDate=#" & rst!tats & "#" If rstpp.NoMatch Then rstpp.AddNew rstpp!iDate = rst!tats rstpp!Payment = rst!mbts rstpp.Update Else rstpp.Edit 'rstpp!iDate = rst!tats rstpp!Payment = rst!mbts rstpp.Update End If rst.MoveNext Next i rstpp.Close: Set rstpp = Nothing rst.Close: Set rst = Nothing DoCmd.OpenQuery "qry_PP" End Sub . وهذه النتيجة: جعفر 231.الرصيد.accdb.zip
  3. هذا من لطفك وإحسانك
  4. حياك الله أستاذ علي ، وعذرا على التأخر في الاجابة نعم تستطيع ان تستخدم الكود كما ذكرت ، ولكن الامر Dlookup ثقيل على البرنامج ، وهو سيستخدم 31 مرة (صحيح الكمبيوترات سريعة هذه الايام ، وقد لا تلاحظ البطئ ) ، ولكني افضل ان نجعله في الكود ، بحيث تفحص اللغة بكود شبيه للذي وضعته انت ، وعلى اساس اللغة تستخدم if else جعفر
  5. تفضل أخي عبدالله تستعمل النموذج ، وتذهب الى السجل الذي تريد ، ثم تنقر على زر تصدير السجل الى الاكسل ، وسيتم حفظ ملف البيانات بصيغة xls وبرقم الشخص ، في نفس مجلد البرنامج ، الكود التالي يقوم بالعمل: Private Sub cmd_to_xls_Click() 'Created by Helen Feddema 8-18-2000 'Last modified 8-18-2000 'File_Name = "c:\" & me.emp_no & ".xls" File_Name = Application.CurrentProject.Path & "\" & Me.emp_no & ".xls" Template_Name = Application.CurrentProject.Path & "\230.Orphan_Details.xlt" On Error GoTo err_cmd_to_xls_Click Dim appExcel As Object 'Excel.Application Dim bks As Object 'Excel.Workbooks Dim wks As Object 'Excel.Worksheet Set appExcel = GetObject(, "Excel.Application") Set bks = appExcel.Workbooks 'Open the workbook bks.Add Template_Name Set wks = appExcel.ActiveSheet 'Write Access data directly to cells in worksheet With wks .Range("B11").Value = Me.first_name .Range("B12").Value = Me.last_name .Range("B13").Value = Me.birth_date .Range("B14").Value = DateDiff("yyyy", CDate(Me.birth_date), Now) .Range("B15").Value = Me.gender End With appExcel.DisplayAlerts = False wks.Saveas FileName:=File_Name, FileFormat:=56 appExcel.Quit appExcel.DisplayAlerts = True 'cleaning up Set appExcel = Nothing Set bks = Nothing Set wks = Nothing ErrorHandlerExit: Exit Sub err_cmd_to_xls_Click: If Err = 429 Then 'Excel is not running; open Excel with CreateObject Set appExcel = CreateObject("Excel.Application") Resume Next Else MsgBox "Error No: " & Err.Number & "; Description: " & Err.Description Resume ErrorHandlerExit End If End Sub . رجاء التأكد ان المرفقين موجودين في مجلد واحد (طبعا تستطيع ان تغيره لاحقا ، بتغيير مساره في الكود) ، سؤال: لماذا لا تصدر البيانات بصيغة pdf بدلا عن الاكسل؟ حيث يمكنك تصدير البيانات من تقرير الاكسس بصيغة pdf مباشرة جعفر 230.Orphan_Details.zip
  6. حياك الله أخوي ، وعذرا على التأخر في الرد
  7. وعليكم السلام تأكد ان الحدث off_AfterUpdate لا يبدأ بـ Private ، وانما يبدأ بـ Public جعفر
  8. أخي وائل خلينا نعطي الاستاذ رمهان استراحة ، والله يخليك جرب المرفق الكود التالي هو اللي يقوم بالعمل: Sub mm(xx) Dim rs As DAO.Recordset Set rs = Me.F_ordersubform.Form.RecordsetClone rs.FindFirst "itemcode='" & xx & "'" 'check if this item is already on the list If rs.NoMatch = False Then Dim Msg, Style, Title, Help, Ctxt, Response, MyString Msg = "هذا الصنف موجود على قائمة الزبون ، هل انتقل الى الصنف الموجود" & vbCrLf & _ "This Item already Exists on the list, should we go there" & vbCrLf & vbCrLf & vbCrLf & _ "Yes = انتقل الى الصنف" & vbCrLf & _ "No = اضف الصنف مرة اخرى" Style = vbYesNoCancel + vbCritical + vbDefaultButton3 ' Define buttons. Title = "الصنف مكرر ، ماذا تريد ان تعمل" ' Define title. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' User chose Yes. Me.F_ordersubform.Form.Bookmark = rs.Bookmark 'Me.F_ordersubform!Qty.SetFocus Exit Sub End If End If 'NoMatch جعفر 222.1.KFC.mdb.zip
  9. . وأخي العزيز ، نموذجك ليس بالكامل unbound ، فعندك مربح التحرير ComboBox متصل بالجدول مباشرة الطريقة اللي انا عملتها في احد برامجي السابقة كانت كالتالي: 1. عملت وحدة نمطية كالتالي: Option Compare Database Option Explicit Dim cnn As New ADODB.Connection Dim srstADO As ADODB.Recordset Public Function ComboRecordset(strCombo As Control, strSQL As String) 'do the Recordset for the Form's ComboBoxes 'open a connection if the connection is not open ' If cnn.State <> adStateOpen Then Call ConnectSQL(cnn) ' End If Set srstADO = New ADODB.Recordset With srstADO .Source = strSQL .ActiveConnection = cnn .CursorType = adOpenKeyset .LockType = adLockOptimistic .CursorLocation = adUseClient .Open End With Set strCombo.Recordset = srstADO 'close the ADO object, once the data are set in the controls If srstADO.State = adStateOpen Then srstADO.Close Set srstADO = Nothing End If End Function Public Function ConnectSQL(cnn) 'Set a global SQL Server connection object 'Stop On Error GoTo error_handler 'open a connection if the connection is not open 'If cnn.State <> adStateOpen Then ' Call ConnectSQL(cnn) 'End If If cnn.State = adStateOpen Then Exit Function End If Dim sConnect As String Dim BE, BE_File BE = "Access" If BE = "Access" Then BE_File = "C:\temp\ABC_BE\ABC_BE2.mdb;" sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & BE_File End If 'BE If Not cnn Is Nothing Then Set cnn = CreateObject("ADODB.Connection") cnn.ConnectionString = sConnect cnn.Open End If If cnn.Errors.Count > 0 Then 'hide the error message, as the system still runs ok MsgBox "An error occured while attempting to connect to SQL Server BOND: " & vbCrLf & cnn.Errors(0).Number & vbCrLf & cnn.Errors(0).Description, vbOKOnly, "" End If exit_function: 'Nothing to do here Exit Function error_handler: ' Stop MsgBox Err.Number & vbCrLf & Err & ", " & Error$ 'MsgBox Err & ", " & Error$ Resume exit_function End Function . 2. وفي حدث On_Load النموذج ، كان هذا الكود ينادي الوحدة النمطية ، ويملئ ComboBox: 'set the ComboBoxes Recordsets 's__Folder_Number strSQL = "SELECT DISTINCT Folder_Number FROM tbl_Folders WHERE Folder_Number Is Not Null;" Call ComboRecordset(s__Folder_Number, strSQL) 'i__Folder_Year strSQL = "SELECT DISTINCT Folder_Year FROM tbl_Folders WHERE Folder_Year Is Not Null;" Call ComboRecordset(i__Folder_Year, strSQL) للعلم جعفر
  10. وعليكم السلام الرابط التالي لأحد زملائي القدامى Leigh Purvis ، وفيه العديد من الامثلة: http://www.databasedevelopment.co.uk/examples.htm انزل المثال: unBound.zip في البرنامج ، اختر اسم اي شخص في القائمة ، ثم انقر على الزر Orders Recordset ، النموذج الجديد هو هدفك ، هو والنموذج الفرعي ، وانت خبير في كيف النظر في كود Recordset جعفر . برمجة Recordset عبارة عن استعلام ، واذا اردت ربط اكثر من جدول ، فاعمل استعلام واربط الجداول مثلما شئت ، ولما تحصل على النتائج الصحيحة ، انسخ SQL الاستعلام وضعه في Recordset (انا كسلان ، فما ادوخ راسي في بناء SQL مباشرة ). . أخوي رمهان ، انا بفتح موضوع جديد بس للعزيزين ، حول كيف تسحر الناس بالاكسس ، وان شاء الله ارسل لك الدعوة جعفر
  11. وعليكم السلام أخي الفاضل اشاركك الرأي في اننا اذا اردنا لبرنامجنا النجاح 100% يجب ان نعمل برنامج يشتغل على 32 بت و 64 بت انا سبق وان شاركت في الرابط التالي ، وفيه كذلك رابط لشركة مايكروسوفت يشرح كيفية حل المشكلة: http://www.officena.net/ib/topic/59661-الأكسس-32-بت،-64-بت/?do=findComment&comment=398477 ولكن الحل خاص لكل دالة API على حدة ، فالمبرمج يمكن ان يضبط برنامجه جعفر
  12. وعليكم السلام أخي الكريم ممكن تعطينا معلومات أكثر عن سبب طلبك لوسمحت جعفر
  13. أخي طارق وبعد جهد ، استطعت الدخول في البرنامج غدا ان شاء الله اشوف طلبك جعفر
  14. السلام عليكم اعتقد بأني اكملت اولا ، وملاحظة التفريغ ، رجاء التأكد في كود النموذج الرئيسي ، هناك مكانين كتبت لك: '5 'هنا مكان الكود الجديد ' فتستطيع ان تضع كودك هناك (انا لم اضعه لأن هناك حقول في الكود ليست موجودة في النموذجين ، فلم ارد ان يعطي البرنامج اخطاء). جعفر 226.1.Edf.mdb.zip
  15. أخي الكريم كما توقعت ، فالاكسس 2007 الذي كنت تستعمله كان 32 بت ، وعليه لم يصادف مشكلة في تشغيل دوال API ، بينما الان ، فانت قمت بتنصيب اكسس 2013 64 بت ، وهذا لا يتوافق مع دوال API . رجاء مراجعة الرابط التالي: http://www.officena.net/ib/topic/64036-هل-استخدم-اوفيس-32-بت-او-64-بت/ جعفر نعم هناك طريقة لجعل الكود يعمل على برنامجك ، ولكن ماذا ستفعل في بقية البرامج؟
  16. حياك الله عمل الكود في النموذج والاستعلام فقط اما التقرير ففي المجاميع والفرز وتركت لك اصل الاستعلام والتقرير جعفر
  17. وعليكم السلام أخي أبوعبدالله بالبحث السريع في المنتدى ، وجدت الرابط التالي: http://www.officena.net/ib/topic/13380-ارتباط-أكسس-بالأوفيس-وغيره-من-البرامج/#comment-57644 والذي يحتوي على 3 روابط تخص Registry جعفر
  18. أخي طارق البارحة انزلت الملف ، ولكن وللأسف لم استطع فتح برنامجين ، احصل على رسالة اني لا املك الصلاحية لفتحهم انزلت الان الملف من رابطك الجديد ، وان شائ الله خير جعفر
  19. حد جاب اسمي تفضل سيدي الكريم بس للعلم ، المنتدى فيه الكثير من الشباب اللي فيهم الخير والبركة غيري جعفر 235.الورشة.accdb.zip
  20. السلام عليكم أستاذ علي بعد ما اخذت غفوة ، لاحظت ان الكود اللي اعطيتك مشابه للكود اللي انت وضعته وبعد البحث ، اتضح اني في التقرير rpt_Absent_Late ، عملت كود علشان اتصيد هذا الخطأ ، ولكني لم افعّله في نهاية التقرير ، بدلا عن: If Err.Number = 1 Then 'Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If اكتب If Err.Number = 13 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If جعفر
  21. ما شاء الله ، 6 مشاركات وانتوا تتكلموا عني ، وانا مافي الدنيا خلوني اجيب بخور اتبخر فيه وشاكر جميل كلماتك أخي ابوعارف جعفر
  22. وعليكم السلام هل نسخة 2013 هي 64 بت ، بينما نسخة 2007 كانت 32 بت؟ وماهي رسالة الخطأ ، انت لم تعرضها لنا؟ جعفر
×
×
  • اضف...

Important Information