17-11-16, 02:08 PM (آخر تعديل لهذه المشاركة : 17-11-16, 02:09 PM {2} بواسطة Ashraf Elafify.
تعديل السبب: اضافه المرفقات
)
السلام عليكم ورحمة الله وبركاته
اخوانى الكرام
عملت برنامج للفاتورة الذكيه و يعمل لدى العميل بشكل مرضى ولكن به مشكله على جهاز العميل
حيث عند البحث بين تاريخين فى شاشه المبيعات عند الضغط على ذر البحث يعطى العميل كل العمليات التى تم بيعها.
مع المفروض انه يختار التاريخين الى قام بالبيع بينهما فقط .
وانا استخدم الاداه DTPicker1 + DTPicker2 ليقوم المستخدم باختيار التاريخين بينهما و اسم العميل او لا يختار اسم العميل وقمت بضبط تنسيق التاريخين كما يلى
dd/mm/yyyy
و جمله البحث كما يلى
كود :
DTPicker1.Value = Format(DTPicker1, "dd/mm/yyyy")
DTPicker2.Value = Format(DTPicker2, "dd/mm/yyyy")
Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & DTPicker1.Value & "# and #" & DTPicker2.Value & "# and Date >= #" & DTPicker1.Value & "# and Date <= #" & DTPicker1.Value & "# "
Data1.Refresh
Data1.Recordset.MoveLast
فقمت بتغيير اعدادات الويندوز و اختيار تنسيق التاريخ لجهاز الكمبيوتر ليصبح dd/mm/yyyy .
فأيضا اعطانى كل عمليا البيع وليس ما ابحث عنه فقط .
فقمت باستخدام text1 وقمت بتغير التنسيق ليكون dd/mm/yyyy فايضا نفس المشكله
فقمت بتعديل قاعدة البيانات ليصبح التنسيق تاريخ قصير بتنسيق dd/mm/yyyy
فلم يعمل ايضا
ولكن عند تغير DTPicker1 ليصبح تنسيقها mm/dd/yyyy مع الحفاظ على تنسيق DTPicker2 مع تنسيق dd/mm/yyyy
يعطى النتائج مظبوطه و لكن تنسيق اداه DTPicker1 بشكل و اداه DTPicker2 بشكل أخر يفقد البرنامج رونقه.
فهل اجد من يساعدنى فى ضبط التنسيق و البحث بين تاريخين او اجد لديكم حل أخر
بارك الله فيكم جميعا
الشاشه وقاعدة البيانات فى المرفقات
لا اله الا انت سبحانك انى كنت من الظالمين.
اللهم انك عفو كريم حليم تحب العفو فاعفوا عنا.
اللّهُمَّ اغْفِرْ لِي وَلِوالِدَيَّ وَارْحَمْهُما كَما رَبَّيانِي صَغِيراً، اللَّهُمَّ اجْزِهِما بِالاِحْسانِ إِحْسانا وَبِالسَّيِّئاتِ غُفْرانا، اللَّهُمَّ اغْفِرْ لِلْمُؤْمِنينَ وَالمُؤْمِناتِ الاَحْياءِ مِنْهُمْ وَالاَمْواتِ.
سبحان الله والحمدلله ولا إله إلا الله والله أكبر زنه عرشك ومداد كلماتك ورضاء نفسك وكما ينبغى لجلال شأنك وعظيم سلطانك وعدد ما كان وعدد ما سيكون وعدد الحركات و السكون وعدد ما نعلم وعدد مالانعلم وعدد كل شيئ احصيته بعلمك يا كريم
أهلا أخي الكريم , حول تنسيق التاريخ بهذا التنسيق لأنه نفس التنسيق المحفوظ في الجدول بغض النظر عن إعدادات الجهاز أو أداة البيكر , جرب إستخدام جملة الإستعلام بهذا الشكل :
PHP كود :
Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & Format$(DTPicker1.Value,"mm/dd/yyyy") & "# and #" & Format$(DTPicker2.Value,"mm/dd/yyyy") & "# " Data1.Refresh Data1.Recordset.MoveLast
اخى العزيز احمد منصور
بارك الله فيك اخى و جعلها فى ميزان حسناتك
لم يضبط معى كود البحث
لقد قمت بتغييره كما تفضلت ولكنه اعطانى جميع عمليات البيع السابقة.
لا اله الا انت سبحانك انى كنت من الظالمين.
اللهم انك عفو كريم حليم تحب العفو فاعفوا عنا.
اللّهُمَّ اغْفِرْ لِي وَلِوالِدَيَّ وَارْحَمْهُما كَما رَبَّيانِي صَغِيراً، اللَّهُمَّ اجْزِهِما بِالاِحْسانِ إِحْسانا وَبِالسَّيِّئاتِ غُفْرانا، اللَّهُمَّ اغْفِرْ لِلْمُؤْمِنينَ وَالمُؤْمِناتِ الاَحْياءِ مِنْهُمْ وَالاَمْواتِ.
سبحان الله والحمدلله ولا إله إلا الله والله أكبر زنه عرشك ومداد كلماتك ورضاء نفسك وكما ينبغى لجلال شأنك وعظيم سلطانك وعدد ما كان وعدد ما سيكون وعدد الحركات و السكون وعدد ما نعلم وعدد مالانعلم وعدد كل شيئ احصيته بعلمك يا كريم
السلام عليكم
اعتقد بأنه يوجد خطأ في التنسيق للتاريخ لديك
ولكن
جرب تغيير التنسيق في الاستعلام فقط للاداة DTPicker1
واترك الثانية كما هي
PHP كود :
Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & Format(DTPicker1.Value,"mm/dd/yyyy") & "# and #" & DTPicker2.Value & "# "
21-11-16, 10:52 AM (آخر تعديل لهذه المشاركة : 21-11-16, 11:17 AM {2} بواسطة Ashraf Elafify.)
لقد قمت بتجربه هذا اخى الكريم
ولكن نفس المشكله قائمة
اخوانى الكرام
لقد قمت بوضع اثنين تكست بوكس وقمت باخذ قيمة DTPicker1.Value للتكست بوكس كما فى الكود التالى
كود :
On Error Resume Next
If CClientName.Text = "" Then CClientName.Text = "*"
DTPicker1.Value = Format(DTPicker1, "mm/dd/yyyy")
DTPicker2.Value = Format(DTPicker2, "dd/mm/yyyy")
TDTPicker1.Text = DTPicker1.Value
TDTPicker2.Text = DTPicker2.Value
TDTPicker1.Text = Format(TDTPicker1, "mm/dd/yyyy")
TDTPicker2.Text = Format(TDTPicker2, "dd/mm/yyyy")
Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between '" & Format$(TDTPicker1.Text, "mm/dd/yyyy") & "' and '" & Format$(TDTPicker2.Text, "dd/mm/yyyy") & "' and Date >= '" & Format$(TDTPicker1.Text, "mm/dd/yyyy") & "' and Date <= '" & Format$(TDTPicker2.Text, "dd/mm/yyyy") & "' "
Data1.Refresh
Data1.Recordset.MoveLast
و يعمل ولكن تنسيق التاريخ فى ال DTPicker1 به خلل
انظر الصورة التاليه
تنسيق التاريخ يظهرة على انه فى شهر يناير 2016
و عند اختيار تاريخ 13/11/2016 يعمل جيدا بدون اى خلل حيث انه لايوجد شهر رقم 13.
ارجو من لديه حل او فكرة ان يبلغنى بها
وبارك الله فى الجميع
اخوانى الكرام
انظروا فى المرفقات عند الضغط على ذر البحث يعطينى نتيجه صحيحه
و عند الضغط عليه مرة اخرى يعطينى نتيجه اخرى ( بمعنى يعطى جميع عمليات البيع ) بدون التغيير فى اى شيئ
فقط بسبب تنسيق التاريخ .
بالرجاء اريد من لديه رأى انا فى امس الحاجه له.
وشكرا اخوانى الكرام
لا اله الا انت سبحانك انى كنت من الظالمين.
اللهم انك عفو كريم حليم تحب العفو فاعفوا عنا.
اللّهُمَّ اغْفِرْ لِي وَلِوالِدَيَّ وَارْحَمْهُما كَما رَبَّيانِي صَغِيراً، اللَّهُمَّ اجْزِهِما بِالاِحْسانِ إِحْسانا وَبِالسَّيِّئاتِ غُفْرانا، اللَّهُمَّ اغْفِرْ لِلْمُؤْمِنينَ وَالمُؤْمِناتِ الاَحْياءِ مِنْهُمْ وَالاَمْواتِ.
سبحان الله والحمدلله ولا إله إلا الله والله أكبر زنه عرشك ومداد كلماتك ورضاء نفسك وكما ينبغى لجلال شأنك وعظيم سلطانك وعدد ما كان وعدد ما سيكون وعدد الحركات و السكون وعدد ما نعلم وعدد مالانعلم وعدد كل شيئ احصيته بعلمك يا كريم
عند تجربه امر بحث عن المبيعات وجدت ان هناك تبديل بين DTPicker1 و DTPicker2 فى الترتيب بالفورم
فعند البحث بين تاريخين 01/11/2016 و 22/11/2016
فى كل مره تضغط على ذر البحث يأتى بنتيجه مختلفه عن الاخر
بمعنى مره تأتى النتيجه صحيحه و الاخرى خطأ ثم الصحيحة ثم الخطأ و هكذا فى كل ضغطه على الذر.
فهل هناك حل أخر
بارك الله فى الجميع
لا اله الا انت سبحانك انى كنت من الظالمين.
اللهم انك عفو كريم حليم تحب العفو فاعفوا عنا.
اللّهُمَّ اغْفِرْ لِي وَلِوالِدَيَّ وَارْحَمْهُما كَما رَبَّيانِي صَغِيراً، اللَّهُمَّ اجْزِهِما بِالاِحْسانِ إِحْسانا وَبِالسَّيِّئاتِ غُفْرانا، اللَّهُمَّ اغْفِرْ لِلْمُؤْمِنينَ وَالمُؤْمِناتِ الاَحْياءِ مِنْهُمْ وَالاَمْواتِ.
سبحان الله والحمدلله ولا إله إلا الله والله أكبر زنه عرشك ومداد كلماتك ورضاء نفسك وكما ينبغى لجلال شأنك وعظيم سلطانك وعدد ما كان وعدد ما سيكون وعدد الحركات و السكون وعدد ما نعلم وعدد مالانعلم وعدد كل شيئ احصيته بعلمك يا كريم
ده كود البرنامج بالكامل احذف الكود الموجود وضع هذا الكود
بالتوفيق
PHP كود :
Dim cn As New adodb.Connection Dim cn1 As New adodb.Connection Dim cn2 As New adodb.Connection Dim cn3 As New adodb.Connection Dim cn4 As New adodb.Connection Dim cn5 As New adodb.Connection Dim cn6 As New adodb.Connection Dim cn7 As New adodb.Connection Dim rsitem As New adodb.Recordset Dim rsitem1 As New adodb.Recordset Dim rsitem2 As New adodb.Recordset Dim rsitem3 As New adodb.Recordset Dim rsitem4 As New adodb.Recordset Dim rsitem5 As New adodb.Recordset Dim rsitem6 As New adodb.Recordset Dim rsitem7 As New adodb.Recordset Option Explicit Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const CB_SETITEMHEIGHT = &H153 Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Private Const SM_CXVSCROLL = 2 Dim m_bFilterEnabled As Boolean Dim m_lRowHeight As Long Dim m_lComboHeight As Long Dim m_lScrollWidth As Long Private daoDB36 As Database Private rs As DAO.Recordset Dim sPath As String Public Function refreshall() 'ÊÍÏíË ÇáãÌãæÚ Dim i As Integer On Error Resume Next Data1.Recordset.MoveFirst Text_sum.Text = CDbl(0) For i = 1 To Data1.Recordset.RecordCount Text_sum.Text = CDbl(Text_sum.Text) + CDbl(Text3Data1.Text) Data1.Recordset.MoveNext Next End Function Public Function RefreshTDiccountTotal() 'ÊÍÏíË ÇáãÌãæÚ Dim i As Integer On Error Resume Next Data3.Recordset.MoveFirst Text_sumDisscount.Text = CDbl(0) For i = 1 To Data3.Recordset.RecordCount Text_sumDisscount.Text = CDbl(Text_sumDisscount.Text) + CDbl(TDiccountTotal.Text) Data3.Recordset.MoveNext Next End Function Private Sub PrintInvoice_Click() On Error Resume Next CR1.ReportSource = 0 CR1.ReportFileName = App.Path & ("\invoiceno.rpt") CR1.Action = 1 End Sub Private Sub Command1_Click() 'Data1.RecordSource = "select * from QInvoice where date between #" & DTPicker1.Value & " # and #" & DTPicker2.Value & "# and Date >= #" & DTPicker1.Value & "# and Date <= #" & DTPicker2.Value & "# " 'Data1.Refresh 'Data1.Recordset.MoveLast
End Sub Private Sub CMDSearch_Click() On Error Resume Next If CClientName.Text = "" Then CClientName.Text = "*" DTPicker1.Value = Format(DTPicker1, "dd/mm/yyyy") DTPicker2.Value = Format(DTPicker2, "dd/mm/yyyy") TDTPicker1.Text = DTPicker1.Value TDTPicker2.Text = DTPicker2.Value 'TDTPicker1.Text = "13/10/2016" 'TDTPicker2.Text = "10/13/2016" 'TDTPicker1.Text = Format(TDTPicker1, "mm/dd/yyyy") TDTPicker2.Text = Format(TDTPicker2, "dd/mm/yyyy") 'Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & TDTPicker1.Text & "# and #" & TDTPicker2.Text & "# and Date >= #" & TDTPicker1.Text & "# and Date <= #" & TDTPicker2.Text & "# " 'Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & Format$(DTPicker1.Value, "mm/dd/yyyy") & "# and #" & Format$(DTPicker2.Value, "dd/mm/yyyy") & "# and Date >= #" & Format$(DTPicker1.Value, "mm/dd/yyyy") & "# and Date <= #" & Format$(DTPicker2.Value, "dd/mm/yyyy") & "# " Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between '" & Format$(TDTPicker1.Text, "dd/MMM/yyyy") & "' and '" & Format$(TDTPicker2.Text, "dd/MMM/yyyy") & "'" Data1.Refresh Data1.Recordset.MoveLast Data3.RecordSource = "select * from QCreditors where ClientName like '" & CClientName.Text & "*" & "' and Date Between '" & Format$(TDTPicker1.Text, "dd/MMM/yyyy") & "' and '" & Format$(TDTPicker2.Text, "dd/MMM/yyyy") & "'" Data3.Refresh Data3.Recordset.MoveLast Form_Activate Me.Textsum Me.refreshall Me.RefreshTDiccountTotal TDifF.Text = Val(TTotalòSellingPrice.Text) - Val(TTotalCostPrice.Text) - Val(TDisccount.Text) End Sub Public Sub Textsum() On Error Resume Next If CClientName.Text = "" Then CClientName.Text = "*" DTPicker1.Value = Format(DTPicker1, "dd/mm/yyyy") DTPicker2.Value = Format(DTPicker2, "dd/mm/yyyy") TDTPicker1.Text = DTPicker1.Value TDTPicker2.Text = DTPicker2.Value TDTPicker1.Text = Format(TDTPicker1, "dd/mm/yyyy") TDTPicker2.Text = Format(TDTPicker2, "dd/mm/yyyy") 'Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & DTPicker1.Value & "# and #" & DTPicker2.Value & "# and Date >= #" & DTPicker1.Value & "# and Date <= #" & DTPicker2.Value & "# " ' Data1.Refresh ' Data1.Recordset.MoveFirst Data1.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & TDTPicker1.Text & "# and #" & TDTPicker2.Text & "# and Date >= #" & TDTPicker1.Text & "# and Date <= #" & TDTPicker2.Text & "# " Data1.Refresh Data1.Recordset.MoveLast Data4.RecordSource = " select * from QInvoice where ClientName like '" & CClientName.Text & "*" & "' and Date Between #" & TDTPicker1.Text & "# and #" & TDTPicker2.Text & "# and Date >= #" & TDTPicker1.Text & "# and Date <= #" & TDTPicker2.Text & "# " Data4.Refresh Data4.Recordset.MoveFirst Text_sum.Text = 0 TTotalCostPrice.Text = 0 TTotalòSellingPrice.Text = 0 ' Data4.Recordset.MoveFirst 1 If Not Data4.Recordset.EOF Then On Error Resume Next Text_sum.Text = CDbl(Text_sum.Text) + CDbl(Text3.Text) TTotalCostPrice.Text = CDbl(TTotalCostPrice.Text) + CDbl(TCostPrice.Text) TTotalòSellingPrice.Text = CDbl(TTotalòSellingPrice.Text) + CDbl(TotalSumSellingPrice.Text) Data4.Recordset.MoveNext GoTo 1 End If End Sub
Private Sub DTPicker1_Change() On Error Resume Next DTPicker1.Value = Format(DTPicker1.Value, "dd/MMM/yyyy") TDTPicker1.Text = DTPicker1.Value
End Sub Private Sub DTPicker2_Change() On Error Resume Next TDTPicker2.Text = DTPicker2.Value End Sub Private Sub Exit_Click() On Error Resume Next Unload Me End Sub Private Sub Print_Click() On Error Resume Next CR1.ReportSource = 0 CR1.ReportFileName = App.Path & ("\invoicesearchbyname.rpt") CR1.Action = 1 End Sub Private Sub SearchItemName_Change() On Error Resume Next Data2.RecordSource = " select * from QNewItem where ItemName = '" & SearchItemName.Text & "' order by ID" Data2.Refresh Me.refreshall Me.RefreshTDiccountTotal End Sub Private Sub Command11_Click() On Error Resume Next Unload Me End Sub Private Sub Form_Resize() 'On Error Resume Next DBGrid1.Width = Val(Screen.Width) - 290 DBGrid1.Height = Val(Screen.Height) - 2200 'Me.refreshall 'Me.RefreshTDiccountTotal End Sub Private Sub Form_Load() On Error Resume Next DBGrid1.Width = Val(Screen.Width) - 290 DBGrid1.Height = Val(Screen.Height) - 2200 ' DTPicker1.Value = Day(Now) & "/" & Month(Now) & "/" & Year(Now) DTPicker2.Value = Day(Now) & "/" & Month(Now) & "/" & Year(Now) ' DTPicker1.Value = Format(DTPicker1, "dd/mm/yyyy") DTPicker2.Value = Format(DTPicker2, "dd/mm/yyyy")
بارك الله فيك اخى الكريم/ احمد عبد العليم
جارى التجربه ان شاء الله.
وبارك الله فى الجميع وجعلها في ميزان حسناتكم
لا اله الا انت سبحانك انى كنت من الظالمين.
اللهم انك عفو كريم حليم تحب العفو فاعفوا عنا.
اللّهُمَّ اغْفِرْ لِي وَلِوالِدَيَّ وَارْحَمْهُما كَما رَبَّيانِي صَغِيراً، اللَّهُمَّ اجْزِهِما بِالاِحْسانِ إِحْسانا وَبِالسَّيِّئاتِ غُفْرانا، اللَّهُمَّ اغْفِرْ لِلْمُؤْمِنينَ وَالمُؤْمِناتِ الاَحْياءِ مِنْهُمْ وَالاَمْواتِ.
سبحان الله والحمدلله ولا إله إلا الله والله أكبر زنه عرشك ومداد كلماتك ورضاء نفسك وكما ينبغى لجلال شأنك وعظيم سلطانك وعدد ما كان وعدد ما سيكون وعدد الحركات و السكون وعدد ما نعلم وعدد مالانعلم وعدد كل شيئ احصيته بعلمك يا كريم
25-11-16, 06:13 PM (آخر تعديل لهذه المشاركة : 25-11-16, 06:36 PM {2} بواسطة Ashraf Elafify.)
اخى العزيز احمد عبد العليم
بارك الله فيك اخى
بعد استبدالى جميع اكواد الفورم التى ارسلتها الى بما لدى من اكواد لتلافى الخطأ فى تنسيق التاريخ
ايضاً اخى لم تعمل
كما يظهر فى الصور المرفقه
فى الصورة رقم 1 يتم كتابه التنسيق التاريخ 11/01/2016 ( يعنى الشهر ثم الثوم ثم السنه ) تأتى النتائج مضبوطه جيدا.
اما فى الصورة رقم 2 يتم كتابه تنسيق التاريخ 01/1/2016 ( يعنى يوم ثم شهر ثم سنه ) تأتى كل عمليات البيع . وهذا خطأ.
ارجو الافادة
وللجميع الشكر و العرفان
جزاكم الله خيرا
ممكن اخوانى التعديل على المرفقات
و تغيير او حذف الخطأ به
حتى يتسنى لى معرفه خطئى به و عدم تكرارة مرة اخرى
لا اله الا انت سبحانك انى كنت من الظالمين.
اللهم انك عفو كريم حليم تحب العفو فاعفوا عنا.
اللّهُمَّ اغْفِرْ لِي وَلِوالِدَيَّ وَارْحَمْهُما كَما رَبَّيانِي صَغِيراً، اللَّهُمَّ اجْزِهِما بِالاِحْسانِ إِحْسانا وَبِالسَّيِّئاتِ غُفْرانا، اللَّهُمَّ اغْفِرْ لِلْمُؤْمِنينَ وَالمُؤْمِناتِ الاَحْياءِ مِنْهُمْ وَالاَمْواتِ.
سبحان الله والحمدلله ولا إله إلا الله والله أكبر زنه عرشك ومداد كلماتك ورضاء نفسك وكما ينبغى لجلال شأنك وعظيم سلطانك وعدد ما كان وعدد ما سيكون وعدد الحركات و السكون وعدد ما نعلم وعدد مالانعلم وعدد كل شيئ احصيته بعلمك يا كريم