sandanet قام بنشر أبريل 28, 2017 قام بنشر أبريل 28, 2017 (معدل) السلام عليكم اخواني واساتذتي الكرام تحية طيبة وبعد .. سؤالي هو كيف يمكنني استعمال هذا الامر في مربع النص text2.AutoCompleteMode = AutoCompleteMode.SuggestAppend كما تجدوه عندما تبحثون في مربع نص google وجدت فيديو يوضح الطريقة لكنه بلغة ال Csharp وهذا هو رابط الفيديو .. بصراحة شرح جميل وتطبيق ممتاز لكني لم استطع تطبيقه https://www.youtube.com/watch?v=Jnye77emTbo وشكراً تم تعديل أبريل 28, 2017 بواسطه sandanet 2
jjafferr قام بنشر أبريل 28, 2017 قام بنشر أبريل 28, 2017 (معدل) وعليكم السلام هذه الخاصية موجودة في مربع الحوار في الاكسس ، الطريقتين اللتان اشار فيهما الفيديو يعني السؤال كيف نعمله في مربع نص؟ جعفر تم تعديل أبريل 28, 2017 بواسطه jjafferr 2
sandanet قام بنشر أبريل 28, 2017 الكاتب قام بنشر أبريل 28, 2017 @jjafferr نعم استاذ جعفر كيف نعملها في مربع النص 2
jjafferr قام بنشر أبريل 28, 2017 قام بنشر أبريل 28, 2017 نعم تقدر (لدرجة ما) ، ولكن بتعب 1. نعمل طريقة للبحث ، في حقل النص ، مثل الربط التالي: 2. نأخذ أول نتيجة من النموذج الفرعي ونضعه في حقل نص البحث ، 3. نغير شكل النموذج الفرعي الى ListBox ، يطول ويقصر على اساس عدد الكلمات اللي تأتي من البحث ، وفي النهاية بيصير عندنا كما هو الحال في ComboBox ، فليش التعب جعفر 2
sandanet قام بنشر أبريل 28, 2017 الكاتب قام بنشر أبريل 28, 2017 طيب هذا الكود يحتاج الى تعديل ممكن تطلع عليه 1- كود الوحدة النمطية Option Compare Database Option Explicit Public conn As New ADODB.Connection Public rs As New Recordset Dim bExit As Boolean Public Sub Egy(sTextBox As TextBox, sTable As String, sField As String, Optional sDBPass As String) On Error Resume Next Dim lLen As Long, strSQL As String If bExit = True Or sTextBox = "" Then Exit Sub lLen = Len(sTextBox) strSQL = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data.mdb;Persist Security Info=False" If conn.State <> 1 Then conn.Open strSQL strSQL = "SELECT * FROM " & sTable & " WHERE " & sField & " LIKE '" & sTextBox & "%'" If rs.State = 1 Then rs.Close rs.Open strSQL, conn, adOpenKeyset, adLockReadOnly If rs.EOF And rs.BOF Then Exit Sub sTextBox.Text = rs(sField) If sTextBox.SelText = "" Then sTextBox.SelStart = lLen Else sTextBox.SelStart = InStr(sTextBox.Text, sTextBox.SelText) End If sTextBox.SelLength = Len(sTextBox.Text) End Sub ومن ثم هذا الكود في النموذج Private Sub text76_Change() Egy Text1, "IETEM_NEM", "ITEM_NEM" End Sub Egy اسم الوظيفية في الوحدة النمطية Text1 هو اسم مربع النص IETEM_NEM اسم الجدول والاخيرة اسم الحقل
jjafferr قام بنشر أبريل 28, 2017 قام بنشر أبريل 28, 2017 عفوا أوس ، بس مافهمت اللي تريده ايش دخل هذه الوحدة النمطية بالرابط اللي اعطيتك!! كود البرنامج اللي في الرابط جدا بسيط ، وفيه شرح عن كل سطر: Private Sub n2_Change() Dim fld As String Dim x() As String Dim A As String '1 'add the 1st field to search in fld = "[كلمات ارشادية]" '** Add additional fields to search in as well, 'so everytime you want to add additional fields, copy the FULL next line, and add the field name fld = fld & " & ' ' & " & "[موضوع الخطاب]" 'fld = fld & " & ' ' & " & "[my other field]" '1 '2 'do the initial subform Record Source mySQL1 = "Select * From [المستندات]" mySQL = mySQL1 & " Where " 'now we want to split the search code into smaller bits, 'if seperate by / \ * or space, then change this seperator to | (a unique letter), 'this way we will have more than ONE word to search for Me.n2.SetFocus A = Me.n2.Text A = Replace(A, "/", "|") A = Replace(A, "\", "|") A = Replace(A, " ", "|") A = Replace(A, "*", "|") 'the words are split and ready x = Split(A, "|") If UBound(x) = 0 Then 'Still one word, search for it mySQL = mySQL & fld mySQL = mySQL & " Like '*" & x(i) & "*'" Else 'it is ONE word and a seperate by / \ * or space, 'so lets make a Where statement for each seperate word For i = LBound(x) To UBound(x) If i = 0 Then 'its a word and a seperator, the NEXT word is NOT added yet mySQL = mySQL & fld mySQL = mySQL & " Like '*" & x(i) & "*'" Else 'its multiple words, add the AND command between each word mySQL = mySQL & " AND " & fld mySQL = mySQL & " Like '*" & x(i) & "*'" End If Next i End If 'if the Search field is Empty, use the initial mySQL1 If Len(Me.n2.Text & "") = 0 Then mySQL = mySQL1 End If 'Debug.Print mySQL Me.sfrm_Search.Form.RecordSource = mySQL '2 End Sub جعفر
sandanet قام بنشر أبريل 29, 2017 الكاتب قام بنشر أبريل 29, 2017 @jjafferr تم حل المشكلة اخي جعفر قمت بعمل المطلوب بشكل لابأس به انظر المرفق .. الربط الذي اعطيتنياه للأسف يختلف نوعا ما عما كنت اريده .. على العموم توصلت الى حل جيد نوعا ما ينقصني فيه امر بسيط وهو عند الضغط على سجل من النموذج الفرعي كيف انقل قيمته لمربع النص على النموذج الرئيسي؟ المرفق مثال للطريقة .. طبعا بالتأكيد يحتاج الى لمسات جمالية وابداعات منك test.zip 1
محمد سلامة قام بنشر أبريل 29, 2017 قام بنشر أبريل 29, 2017 (معدل) اجعل مصدر مربع النص = [subform].[taxt1] subform اسم النموذج الفرعي Taxt1 اسم مربع النص في النموذج الفرعي 3 ساعات مضت, sandanet said: ينقصني فيه امر بسيط وهو عند الضغط على سجل من النموذج الفرعي كيف انقل قيمته لمربع النص على النموذج الرئيسي؟ تم تعديل أبريل 29, 2017 بواسطه محمد سلامة
sandanet قام بنشر أبريل 29, 2017 الكاتب قام بنشر أبريل 29, 2017 (معدل) 4 ساعات مضت, محمد سلامة said: اجعل مصدر مربع النص = [subform].[taxt1] subform اسم النموذج الفرعي Taxt1 اسم مربع النص في النموذج الفرعي عزيزي استاذ محمد لكن مربع النص هو للبحث اي يجب ادخال جزء من الاسم وما ان يظهر لك الاسم في القائمة تستطيع اختياره .. هذه هي الفكرة لكن اذا جعلت مصدر مربع النص النموذج الفرعي فلن تستطيع اجراء البحث تم تعديل أبريل 29, 2017 بواسطه sandanet
jjafferr قام بنشر أبريل 29, 2017 قام بنشر أبريل 29, 2017 8 ساعات مضت, sandanet said: 1. تم حل المشكلة اخي جعفر قمت بعمل المطلوب بشكل لابأس 2. توصلت الى حل جيد نوعا ما ينقصني فيه امر بسيط وهو عند الضغط على سجل من النموذج الفرعي كيف انقل قيمته لمربع النص على النموذج الرئيسي؟ 3. المرفق مثال للطريقة .. طبعا بالتأكيد يحتاج الى لمسات جمالية وابداعات منك 1. الحمدلله 2. هذه اعمل حدث على "نقر" الحقل الموجود في النموذج الفرعي ، ويكون الكود هكذا : (مثلا ، اسم حقل نص النموذج الرئيسي TextBox_Name ، واسم الحقل الموجود في النموذج الفرعي SubForm_Field ): me.parent.TextBox_Name = me.SubForm_Filed 3. ان شاء الله سأتطلع عليه لاحقا جعفر
أبو إبراهيم الغامدي قام بنشر أبريل 29, 2017 قام بنشر أبريل 29, 2017 السلام عليكم جميعاً.. متابع بشغف.. في انتظار المنتج النهائي.. قريباً إن شاء الله الاستاذ جعفر أرجو أن تضع هنا نسخة قاعدة البيانات التي أشرت إليها متضمنةً للتعديلات الجديدة
sandanet قام بنشر أبريل 29, 2017 الكاتب قام بنشر أبريل 29, 2017 (معدل) 3 ساعات مضت, jjafferr said: 1. الحمدلله 2. هذه اعمل حدث على "نقر" الحقل الموجود في النموذج الفرعي ، ويكون الكود هكذا : (مثلا ، اسم حقل نص النموذج الرئيسي TextBox_Name ، واسم الحقل الموجود في النموذج الفرعي SubForm_Field ): me.parent.TextBox_Name = me.SubForm_Filed 3. ان شاء الله سأتطلع عليه لاحقا جعفر تسلم ايدك استاذي الغالي جعفر تم حل المشكلة بنجاح مع بعض التعديل على الكود الذي وضعته كالتالي Forms!formS1!SubFrm.Form.FldText.Text حيث ان fromS1 هو النموذج الرئيسي و SubFrm هو النموذج الفرعي و FldText هو اسم الحقل في النموذج الفرعي بالمناسبة قمت باستعمال طريقتك الموضحة في الرابط "هدية: البحث عن اي جزء من الكلمة ، في اي عدد من الحقول" مع بعض التعديلات الطفيفة والحمد لله الامور ماشية تمام .. اشكرك جزيل الشكر على ماتقدمه تحياتي هذه التعديلات في الملف المرفق test.zip تم تعديل أبريل 29, 2017 بواسطه sandanet 1
jjafferr قام بنشر أبريل 29, 2017 قام بنشر أبريل 29, 2017 السلام عليكم سيدي الفاضل ، عاشت ايدك ، اكواد بسيطة ونتائج رائعة التغييرات اللي انا عملتها: 1. اذا كتبت شيء ، وغيرت رأيك ، فتستطيع ان تضغط على الزر Esc (Escape) ، وسوف يختفي النموذج الفرعي ، Private Sub text76_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then SubFrm.Visible = False Else SubFrm.Visible = True End If End Sub 2. اذا كتبت شيء ، فارتفاع النموذج الفرعي يطول ويقصر مع عدد السجلات الموجودة ، اكثر عدد هو 3 ، Private Sub text76_Change() On Error Resume Next Dim x As String SubFrm.Visible = True x = Me.text76.Text Me.Text11.Value = x Me.SubFrm.Requery 'تغيير ارتفاع النموذج الفرعي حسب عدد سجلاته Dim rst As DAO.Recordset Set rst = Me.SubFrm.Form.RecordsetClone rst.MoveLast RC = rst.RecordCount If RC > 3 Then Me.SubFrm.Height = Me.SubFrm!FldText.Height * 3 Else Me.SubFrm.Height = Me.SubFrm!FldText.Height * RC End If rst.Close: Set rst = Nothing End Sub 3. اذا كتبت شيء ، ونقرت على الاسم في النموذج الفرعي ، فسيتغير سجل النموذج الرئيسي حسب الاسم المختار ، وهنا فانت لست بحاجة الى زر البحث Private Sub FldText_Click() 'Forms!formS1.ITEM_NEM = Me.FldText Me.Parent.text76 = Forms!formS1!SubFrm.Form.FldText.Text 'اظهر نتيجة البحث Me.Parent.Form.Requery 'Me.Parent.text76.SetFocus Forms!formS1!SubFrm.Form.Visible = False End Sub جعفر 624.test.mdb.zip 4
أبو عبدالله الحلوانى قام بنشر أبريل 29, 2017 قام بنشر أبريل 29, 2017 السلام عليكم جهد كبير جزاكم الله خيرا ولكن أعتقد أن هنالك فكرة أيسر من هذا وستوفر علينا كل هذا العناء وقد تم طرحها بالمنتدى من قبل وهى استخدام الـ Combo Box مع فلترة البيانات داخل الكمبوبكس حسب الحروف المدخلة مع التحكم بخاصية DrowpDown أثناء البحث بهذا الموضوع توضيح للفكرة www.officena.net/ib/topic/36947-البحث-في-مربع-تحرير-وسرد/
sandanet قام بنشر أبريل 29, 2017 الكاتب قام بنشر أبريل 29, 2017 2 ساعات مضت, jjafferr said: السلام عليكم سيدي الفاضل ، عاشت ايدك ، اكواد بسيطة ونتائج رائعة التغييرات اللي انا عملتها: 1. اذا كتبت شيء ، وغيرت رأيك ، فتستطيع ان تضغط على الزر Esc (Escape) ، وسوف يختفي النموذج الفرعي ، Private Sub text76_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then SubFrm.Visible = False Else SubFrm.Visible = True End If End Sub 2. اذا كتبت شيء ، فارتفاع النموذج الفرعي يطول ويقصر مع عدد السجلات الموجودة ، اكثر عدد هو 3 ، Private Sub text76_Change() On Error Resume Next Dim x As String SubFrm.Visible = True x = Me.text76.Text Me.Text11.Value = x Me.SubFrm.Requery 'تغيير ارتفاع النموذج الفرعي حسب عدد سجلاته Dim rst As DAO.Recordset Set rst = Me.SubFrm.Form.RecordsetClone rst.MoveLast RC = rst.RecordCount If RC > 3 Then Me.SubFrm.Height = Me.SubFrm!FldText.Height * 3 Else Me.SubFrm.Height = Me.SubFrm!FldText.Height * RC End If rst.Close: Set rst = Nothing End Sub 3. اذا كتبت شيء ، ونقرت على الاسم في النموذج الفرعي ، فسيتغير سجل النموذج الرئيسي حسب الاسم المختار ، وهنا فانت لست بحاجة الى زر البحث Private Sub FldText_Click() 'Forms!formS1.ITEM_NEM = Me.FldText Me.Parent.text76 = Forms!formS1!SubFrm.Form.FldText.Text 'اظهر نتيجة البحث Me.Parent.Form.Requery 'Me.Parent.text76.SetFocus Forms!formS1!SubFrm.Form.Visible = False End Sub جعفر 624.test.mdb.zip ماشاء الله عليك دائما عندك لمسات ابداعية جميلة الله يبارك فيك اخي جعفر 34 دقائق مضت, أبو عبدالله الحلوانى said: السلام عليكم جهد كبير جزاكم الله خيرا ولكن أعتقد أن هنالك فكرة أيسر من هذا وستوفر علينا كل هذا العناء وقد تم طرحها بالمنتدى من قبل وهى استخدام الـ Combo Box مع فلترة البيانات داخل الكمبوبكس حسب الحروف المدخلة مع التحكم بخاصية DrowpDown أثناء البحث بهذا الموضوع توضيح للفكرة www.officena.net/ib/topic/36947-البحث-في-مربع-تحرير-وسرد/ استاذي الفاضل ممكن ترفق مثال بسيط يوضح الفكرة يكون افضل تحياتي
Shivan Rekany قام بنشر أبريل 30, 2017 قام بنشر أبريل 30, 2017 7 ساعات مضت, sandanet said: ماشاء الله عليك دائما عندك لمسات ابداعية جميلة الله يبارك فيك اخي جعفر استاذي الفاضل ممكن ترفق مثال بسيط يوضح الفكرة يكون افضل تحياتي هذا الرابط فيه مثال كلا الموضوعين جيدين لكن انا برأيي افضل المثال الاعلاه في هذا الموضوع على المثال في رابط الاعلاه 1
jjafferr قام بنشر أبريل 30, 2017 قام بنشر أبريل 30, 2017 8 ساعات مضت, sandanet said: ماشاء الله عليك دائما عندك لمسات ابداعية جميلة الله يبارك فيك اخي جعفر حياك الله جعفر
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.