safaa salem5 قام بنشر ديسمبر 11, 2023 قام بنشر ديسمبر 11, 2023 (معدل) عندى حقل هيتكتب فيه قيمه من مقطعين عايزه بمجرد كتابة القيمة يتنقل المقطع الاقل لحقل low والقيمه الاكبر لحقل high مع العلم ان شكل القيمه الاساسيه بيكون زى كدا ( 10 - 25) او بدون اقواس 10 - 25 او بعلامه عشريه ( 10.4 - 25.7) New Microsoft Access Database.accdbFetching info... تم تعديل ديسمبر 11, 2023 بواسطه safaa salem5
Foksh قام بنشر ديسمبر 11, 2023 قام بنشر ديسمبر 11, 2023 بالافتراض أن صيغة الرقم المكتوبة في الحقل الأول بهذا الشكل 25 - 10 Private Sub TextBox1_LostFocus() ' التحقق من أن مربع النص ليس فارغًا If Not IsEmpty(Me.TextBox1.Value) Then ' تحويل القيمة إلى عددين Dim values() As String values = Split(Me.TextBox1.Value, " - ") ' التحقق من أن هناك قيمتين مفصولتين بفاصلة "-" If UBound(values) = 1 Then ' تحويل القيم إلى أرقام Dim lowValue As Double Dim highValue As Double lowValue = CDbl(values(0)) highValue = CDbl(values(1)) ' تحديث قيم low و high في مربعي النص المستهدفين Me.low.Value = lowValue Me.high.Value = highValue Else ' رسالة تنبيه إذا كان التنسيق غير صحيح MsgBox "يرجى إدخال القيم بالتنسيق الصحيح (على سبيل المثال: 10 - 15)" End If End If End Sub حيث أن TextBox1 هو مربع النص الذي به القيمة سابقة ، وعند الخروج منه سينقل القيم تلقائيا للمربعين low و high . لعدم توافر جهاز كمبيوتر حالياً ، أعلميني بالنتيجة.
safaa salem5 قام بنشر ديسمبر 11, 2023 الكاتب قام بنشر ديسمبر 11, 2023 في 11/12/2023 at 19:44, Foksh said: بالافتراض أن صيغة الرقم المكتوبة في الحقل الأول بهذا الشكل 25 - 10 Private Sub TextBox1_LostFocus() ' التحقق من أن مربع النص ليس فارغًا If Not IsEmpty(Me.TextBox1.Value) Then ' تحويل القيمة إلى عددين Dim values() As String values = Split(Me.TextBox1.Value, " - ") ' التحقق من أن هناك قيمتين مفصولتين بفاصلة "-" If UBound(values) = 1 Then ' تحويل القيم إلى أرقام Dim lowValue As Double Dim highValue As Double lowValue = CDbl(values(0)) highValue = CDbl(values(1)) ' تحديث قيم low و high في مربعي النص المستهدفين Me.low.Value = lowValue Me.high.Value = highValue Else ' رسالة تنبيه إذا كان التنسيق غير صحيح MsgBox "يرجى إدخال القيم بالتنسيق الصحيح (على سبيل المثال: 10 - 15)" End If End If End Sub حيث أن TextBox1 هو مربع النص الذي به القيمة سابقة ، وعند الخروج منه سينقل القيم تلقائيا للمربعين low و high . لعدم توافر جهاز كمبيوتر حالياً ، أعلميني بالنتيجة. Expand
Foksh قام بنشر ديسمبر 11, 2023 قام بنشر ديسمبر 11, 2023 جربي اكتبي القيم بدون الأقواس ، مثلاً 10 - 25
safaa salem5 قام بنشر ديسمبر 11, 2023 الكاتب قام بنشر ديسمبر 11, 2023 انواع الحقول مختلفه وانا عايزه القيمه الاساسيه MEMO علشان المعدل الطبيعى فى بعض التحاليل مش شكل ثابت زى كدا Detection limit 1,5 Low titer 1,5 - 100,000 Moderate 100,000 - 1000,000 High titer >1000,000 في 11/12/2023 at 20:10, safaa salem5 said: انواع الحقول مختلفه وانا عايزه القيمه الاساسيه MEMO علشان المعدل الطبيعى فى بعض التحاليل مش شكل ثابت زى كدا Detection limit 1,5 Low titer 1,5 - 100,000 Moderate 100,000 - 1000,000 High titer >1000,000 Expand لكن 80 فى المائه بالشكل دا (1 - 20) في 11/12/2023 at 20:10, safaa salem5 said: انواع الحقول مختلفه وانا عايزه القيمه الاساسيه MEMO علشان المعدل الطبيعى فى بعض التحاليل مش شكل ثابت زى كدا Detection limit 1,5 Low titer 1,5 - 100,000 Moderate 100,000 - 1000,000 High titer >1000,000 لكن 80 فى المائه بالشكل دا (1 - 20) Expand عايزه يبقى فى اتاحه لكتابة النورمال باى شكل بس فى حالة كتابته بالطريقه المزكوره سابقا يحصل التقسيم
Foksh قام بنشر ديسمبر 11, 2023 قام بنشر ديسمبر 11, 2023 يعني ممكن يكون المحتوى في Reference نصي ورقمي ؟؟
safaa salem5 قام بنشر ديسمبر 11, 2023 الكاتب قام بنشر ديسمبر 11, 2023 (معدل) في 11/12/2023 at 20:15, Foksh said: يعني ممكن يكون المحتوى في Reference نصي ورقمي ؟؟ Expand اه في 11/12/2023 at 20:06, Foksh said: جربي اكتبي القيم بدون الأقواس ، مثلاً 10 - 25 Expand فعلا لما شلت الاقواس اشتغلت بس عايزه اشغلها فى حالة وجود الاقواس او فى حالة عدم وجودها تم تعديل ديسمبر 11, 2023 بواسطه safaa salem5
Foksh قام بنشر ديسمبر 11, 2023 قام بنشر ديسمبر 11, 2023 في 11/12/2023 at 20:16, safaa salem5 said: بس عايزه اضيف الاقواس Expand Private Sub TextBox1_LostFocus() ' التحقق من أن مربع النص ليس فارغًا If Not IsEmpty(Me.TextBox1.Value) Then ' تحويل القيمة إلى عددين بدون الأقواس Dim cleanedValue As String cleanedValue = Replace(Me.TextBox1.Value, "(", "") cleanedValue = Replace(cleanedValue, ")", "") Dim values() As String values = Split(cleanedValue, " - ") ' التحقق من أن هناك قيمتين مفصولتين بفاصلة "-" If UBound(values) = 1 Then ' تحويل القيم إلى أرقام Dim lowValue As Double Dim highValue As Double lowValue = CDbl(values(0)) highValue = CDbl(values(1)) ' تحديث قيم low و high في مربعي النص المستهدفين Me.low.Value = lowValue Me.high.Value = highValue Else ' رسالة تنبيه إذا كان التنسيق غير صحيح MsgBox "يرجى إدخال القيم بالتنسيق الصحيح (على سبيل المثال: 10 - 15)" End If End If End Sub جربي كده مع الأقواس
safaa salem5 قام بنشر ديسمبر 11, 2023 الكاتب قام بنشر ديسمبر 11, 2023 في 11/12/2023 at 20:33, Foksh said: Private Sub TextBox1_LostFocus() ' التحقق من أن مربع النص ليس فارغًا If Not IsEmpty(Me.TextBox1.Value) Then ' تحويل القيمة إلى عددين بدون الأقواس Dim cleanedValue As String cleanedValue = Replace(Me.TextBox1.Value, "(", "") cleanedValue = Replace(cleanedValue, ")", "") Dim values() As String values = Split(cleanedValue, " - ") ' التحقق من أن هناك قيمتين مفصولتين بفاصلة "-" If UBound(values) = 1 Then ' تحويل القيم إلى أرقام Dim lowValue As Double Dim highValue As Double lowValue = CDbl(values(0)) highValue = CDbl(values(1)) ' تحديث قيم low و high في مربعي النص المستهدفين Me.low.Value = lowValue Me.high.Value = highValue Else ' رسالة تنبيه إذا كان التنسيق غير صحيح MsgBox "يرجى إدخال القيم بالتنسيق الصحيح (على سبيل المثال: 10 - 15)" End If End If End Sub جربي كده مع الأقواس Expand تمام الاخيره شغاله فى حالة اقواس اوبدون اقواس بس بيرفض ادخال نص انا عايزه اتاحه ادخال نص لو سمحت هل ممكن استخلاص الارقام فى حالة وجود نص لو عايز اشكال الريفرانس فى حالة وجود نص انا ممكن اجمعهملك تقريبا 3 اشكال
Foksh قام بنشر ديسمبر 11, 2023 قام بنشر ديسمبر 11, 2023 في 11/12/2023 at 20:41, safaa salem5 said: هل ممكن استخلاص الارقام فى حالة وجود نص Expand جربي التعديل الاخير Private Sub TextBox1_LostFocus() ' التحقق من أن مربع النص ليس فارغًا If Not IsEmpty(Me.TextBox1.Value) Then ' التحقق من وجود الأقواس وإزالتها إن وجدت Dim cleanedValue As String cleanedValue = Me.TextBox1.Value If cleanedValue Like "*(*" And cleanedValue Like "*)*" Then cleanedValue = Replace(cleanedValue, "(", "") cleanedValue = Replace(cleanedValue, ")", "") End If ' تحويل القيمة إلى عددين Dim values() As String values = Split(cleanedValue, " - ") ' التحقق من أن هناك قيمتين مفصولتين بفاصلة "-" If UBound(values) = 1 Then ' تحويل القيم إلى أرقام Dim lowValue As Double Dim highValue As Double lowValue = CDbl(values(0)) highValue = CDbl(values(1)) ' تحديث قيم low و high في مربعي النص المستهدفين Me.low.Value = lowValue Me.high.Value = highValue Else ' رسالة تنبيه إذا كان التنسيق غير صحيح MsgBox "يرجى إدخال القيم بالتنسيق الصحيح (على سبيل المثال: 10 - 15)" End If End If End Sub
safaa salem5 قام بنشر ديسمبر 11, 2023 الكاتب قام بنشر ديسمبر 11, 2023 هو شغال تمام بس مش بيسمح بادخال النصوص بسبب الرساله دى Else ' رسالة تنبيه إذا كان التنسيق غير صحيح MsgBox "يرجى إدخال القيم بالتنسيق الصحيح (على سبيل المثال: 10 - 15)" End If End If End Sub
safaa salem5 قام بنشر ديسمبر 11, 2023 الكاتب قام بنشر ديسمبر 11, 2023 لو صعبه موضوع النص مع الرقم خليه بكره تفكر براحتك
Foksh قام بنشر ديسمبر 12, 2023 قام بنشر ديسمبر 12, 2023 في 11/12/2023 at 21:34, safaa salem5 said: لو صعبه موضوع النص مع الرقم خليه بكره تفكر براحتك Expand هي الفكرة مش بصعوبتها ، بقدر ما هي في كمية المشاكل اللي ممكن تحصل أثناء إدخال البيانات . غداً إن كان في العمر بقية نشوف الموضوع 1
Foksh قام بنشر ديسمبر 12, 2023 قام بنشر ديسمبر 12, 2023 أخت @safaa salem5 ، تفضلي هذا التعديل الأخير على الكود ، في Reference Private Sub reference_LostFocus() If Not IsEmpty(Me.reference.Value) Then Dim inputText As String Dim i As Integer Dim currentChar As String Dim currentNumber As String Dim isNumberStarted As Boolean Dim numbersFound As Integer inputText = Me.reference.Value currentNumber = "" isNumberStarted = False numbersFound = 0 For i = 1 To Len(inputText) currentChar = Mid(inputText, i, 1) If IsNumeric(currentChar) Then currentNumber = currentNumber & currentChar isNumberStarted = True ElseIf isNumberStarted Then numbersFound = numbersFound + 1 If numbersFound = 1 Then Me.low.Value = currentNumber ElseIf numbersFound = 2 Then Me.high.Value = currentNumber Exit For End If currentNumber = "" isNumberStarted = False End If Next i If Len(Me.low.Value) = 0 Or Len(Me.high.Value) = 0 Then MsgBox "Error: No valid numeric values found" End If End If End Sub طبعاً هذا الكود بالإفتراض أن القيم الرقمية هي أرقام صحيحة وليست كسرية ! 1
safaa salem5 قام بنشر ديسمبر 12, 2023 الكاتب قام بنشر ديسمبر 12, 2023 في 12/12/2023 at 17:51, Foksh said: أخت @safaa salem5 ، تفضلي هذا التعديل الأخير على الكود ، في Reference Private Sub reference_LostFocus() If Not IsEmpty(Me.reference.Value) Then Dim inputText As String Dim i As Integer Dim currentChar As String Dim currentNumber As String Dim isNumberStarted As Boolean Dim numbersFound As Integer inputText = Me.reference.Value currentNumber = "" isNumberStarted = False numbersFound = 0 For i = 1 To Len(inputText) currentChar = Mid(inputText, i, 1) If IsNumeric(currentChar) Then currentNumber = currentNumber & currentChar isNumberStarted = True ElseIf isNumberStarted Then numbersFound = numbersFound + 1 If numbersFound = 1 Then Me.low.Value = currentNumber ElseIf numbersFound = 2 Then Me.high.Value = currentNumber Exit For End If currentNumber = "" isNumberStarted = False End If Next i If Len(Me.low.Value) = 0 Or Len(Me.high.Value) = 0 Then MsgBox "Error: No valid numeric values found" End If End If End Sub طبعاً هذا الكود بالإفتراض أن القيم الرقمية هي أرقام صحيحة وليست كسرية ! Expand طيب الارقام الكسريه نضيفها ازاى في 12/12/2023 at 18:01, safaa salem5 said: طيب الارقام الكسريه نضيفها ازاى Expand فى حالة ارقام كسريه بينقلها كدا
Foksh قام بنشر ديسمبر 12, 2023 قام بنشر ديسمبر 12, 2023 كنت متوقع ، على العموم تفضلي , ومرفق فيديو للتوضيح Private Sub reference_LostFocus() If Not IsEmpty(Me.reference.Value) Then Dim inputText As String Dim i As Integer Dim currentChar As String Dim currentNumber As String Dim isNumberStarted As Boolean Dim numbersFound As Integer Dim hasDecimal As Boolean inputText = Me.reference.Value currentNumber = "" isNumberStarted = False numbersFound = 0 hasDecimal = False For i = 1 To Len(inputText) currentChar = Mid(inputText, i, 1) If IsNumeric(currentChar) Or currentChar = "." Then If currentChar = "." Then If hasDecimal Then MsgBox "Error: Invalid numeric format" Exit Sub Else hasDecimal = True End If End If currentNumber = currentNumber & currentChar isNumberStarted = True ElseIf isNumberStarted Then numbersFound = numbersFound + 1 If numbersFound = 1 Then Me.low.Value = currentNumber ElseIf numbersFound = 2 Then Me.high.Value = currentNumber Exit For End If currentNumber = "" isNumberStarted = False hasDecimal = False End If Next i If Len(Me.low.Value) = 0 Or Len(Me.high.Value) = 0 Then MsgBox "Error: No valid numeric values found" End If End If End Sub 2023_12_12_210437.zipFetching info... 1
safaa salem5 قام بنشر ديسمبر 12, 2023 الكاتب قام بنشر ديسمبر 12, 2023 بص كمان فى مشكله بسيطه لازم القوس الاخير يتكتب غير كدا الرقم التانى مش بينزل
تمت الإجابة Foksh قام بنشر ديسمبر 12, 2023 تمت الإجابة قام بنشر ديسمبر 12, 2023 أتمنى أن يكون هذا طلبك Private Sub reference_LostFocus() If Not IsEmpty(Me.reference.Value) Then Dim inputText As String Dim i As Integer Dim currentChar As String Dim currentNumber As String Dim isNumberStarted As Boolean Dim numbersFound As Integer Dim hasDecimal As Boolean inputText = Replace(Me.reference.Value, "(", "") inputText = Replace(inputText, ")", "") currentNumber = "" isNumberStarted = False numbersFound = 0 hasDecimal = False For i = 1 To Len(inputText) currentChar = Mid(inputText, i, 1) If IsNumeric(currentChar) Or currentChar = "." Then If currentChar = "." Then If hasDecimal Then MsgBox "Error: Invalid numeric format" Exit Sub Else hasDecimal = True End If End If currentNumber = currentNumber & currentChar isNumberStarted = True ElseIf isNumberStarted Then numbersFound = numbersFound + 1 If numbersFound = 1 Then Me.low.Value = currentNumber ElseIf numbersFound = 2 Then Me.high.Value = currentNumber Exit For End If currentNumber = "" isNumberStarted = False hasDecimal = False End If Next i If numbersFound = 1 Then Me.high.Value = currentNumber End If If Len(Me.low.Value) = 0 Or Len(Me.high.Value) = 0 Then MsgBox "Error: No valid numeric values found" End If End If End Sub هذا الكود يدعم الأقواس أو بدونها ، ويدعم الأرقام الصحيحة والأرقام العشرية ، ويدعم ان كان في الحقل Reference حروف نصية أو لا .
safaa salem5 قام بنشر ديسمبر 12, 2023 الكاتب قام بنشر ديسمبر 12, 2023 في 12/12/2023 at 18:32, Foksh said: أتمنى أن يكون هذا طلبك Private Sub reference_LostFocus() If Not IsEmpty(Me.reference.Value) Then Dim inputText As String Dim i As Integer Dim currentChar As String Dim currentNumber As String Dim isNumberStarted As Boolean Dim numbersFound As Integer Dim hasDecimal As Boolean inputText = Replace(Me.reference.Value, "(", "") inputText = Replace(inputText, ")", "") currentNumber = "" isNumberStarted = False numbersFound = 0 hasDecimal = False For i = 1 To Len(inputText) currentChar = Mid(inputText, i, 1) If IsNumeric(currentChar) Or currentChar = "." Then If currentChar = "." Then If hasDecimal Then MsgBox "Error: Invalid numeric format" Exit Sub Else hasDecimal = True End If End If currentNumber = currentNumber & currentChar isNumberStarted = True ElseIf isNumberStarted Then numbersFound = numbersFound + 1 If numbersFound = 1 Then Me.low.Value = currentNumber ElseIf numbersFound = 2 Then Me.high.Value = currentNumber Exit For End If currentNumber = "" isNumberStarted = False hasDecimal = False End If Next i If numbersFound = 1 Then Me.high.Value = currentNumber End If If Len(Me.low.Value) = 0 Or Len(Me.high.Value) = 0 Then MsgBox "Error: No valid numeric values found" End If End If End Sub هذا الكود يدعم الأقواس أو بدونها ، ويدعم الأرقام الصحيحة والأرقام العشرية ، ويدعم ان كان في الحقل Reference حروف نصية أو لا . Expand انا ممتنه جدا لحضرتك تسلم على كل لحظه من وقتك ربنا يبارك فى عمرك 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.