الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]اريد تقسيم اسم كامل الى اسم اول واسم اخير

بدأه Micro0x0 في 13 مايو 2008 · 11 رد · 2,060 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

سلامى لكل مشرفى واعضاء المنتدى الكرام

موضوعى هو انى عندى قاعدة بيانات بها جدول به اسماء كامله مثال

post-140824-1210627602_thumb.jpg

اريد عمل فورم بها زر يقوم بعمل تقسيم للاسماء الكاملة جميعاً بالجدول اعلاه وتكون مثل هذا

post-140824-1210627608_thumb.jpg

برجاء الافادة :wacko:

اخوكم مصطفى

#2

السلام عليكم

دائما حاول أرفاق مثالك .. أخي الكريم

الحل مش مشكلة لكن المشكلة أني لا أجد الوقت في إنشاء قاعدة

ثم جدول ثم بيانات .. هل من الممكن ارفاق مثالك وإن شاء الله خير

اكسيرالحياة

#3

اسف اخى اكسير وشكرا للمتايعة

هذا هو المثال

Name.rar

شكرا لك على التعاون

#4

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

تحية معطرة الى استاذنا الكبير أكسير الحياة

وتحية للأخ Micro0x0

لدي مثال لما طلبت قديم وهو يقوم بارجاع الكلمة الأولى أو الثانية أو حتى الأخيرة من الحقل باستخدام وظيفة Function

وطريقة استخدام الوظيفة هي كالآتي:

تقوم بكتابة الوظيفة ملحوقه بالعدد 1 وتعني الكلمة الاولى و2 تعني الكلمة الثانية الخ...

أو تقوم بكتابة -1 وتعني آخر كلمة -2 وتعني ثاني آخر كلمة الخ...

مثال اذا كان لدينا حقل اسمه txt وفيه الاسم التالي " أكسير الحياة"

ونريد ارجاع الكلمة الاولى

word([txt];1)

الناتج يكون

"أكسير"

طيب اذا قمنا بكتابة سالب 1

تكون النتيجة

"الحياة"

اتركك مع الكود والمرفق

Function Word(varPhrase As Variant, ByVal iWordNum As Integer, Optional strDelimiter As String = " ", _
	Optional bRemoveLeadingDelimiters As Boolean, Optional bIgnoreDoubleDelimiters As Boolean) As Variant
On Error GoTo Err_Handler
	Dim varArray As Variant
	Dim strPhrase As String
	Dim strResult As String
	Dim lngLen As Long
	Dim lngLenDelimiter As Long
	Dim bCancel As Boolean

	If IsError(varPhrase) Then
		bCancel = True
	Else
		strPhrase = Nz(varPhrase, vbNullString)
		If strPhrase = vbNullString Then
			bCancel = True
		End If
	End If
	If iWordNum = 0 And Not bCancel Then
		strResult = strPhrase
		bCancel = True
	End If
	If Not bCancel Then
		lngLenDelimiter = Len(strDelimiter)
		If lngLenDelimiter = 0& Then
			bCancel = True
		End If
	End If
	If Not bCancel Then
		strPhrase = varPhrase
		If bRemoveLeadingDelimiters Then
			strPhrase = Nz(varPhrase, vbNullString)
			Do While Left$(strPhrase, lngLenDelimiter) = strDelimiter
				strPhrase = Mid(strPhrase, lngLenDelimiter + 1&)
			Loop
		End If
		If bIgnoreDoubleDelimiters Then
			Do
				lngLen = Len(strPhrase)
				strPhrase = Replace(strPhrase, strDelimiter & strDelimiter, strDelimiter)
			Loop Until Len(strPhrase) = lngLen
		End If
		If Len(strPhrase) = 0& Then
			bCancel = True
		End If
	End If

	If Not bCancel Then
		varArray = Split(strPhrase, strDelimiter)
		If UBound(varArray) >= 0 Then
			If iWordNum > 0 Then
				iWordNum = iWordNum - 1
				If iWordNum <= UBound(varArray) Then
					strResult = varArray(iWordNum)
				End If
			Else
				iWordNum = UBound(varArray) + iWordNum + 1
				If iWordNum >= 0 Then
					strResult = varArray(iWordNum)
				End If
			End If
		End If
	End If
	If strResult <> vbNullString Then
		Word = strResult
	Else
		Word = Null
	End If

Exit_Handler:
	Exit Function

Err_Handler:
	Resume Exit_Handler
End Function

أخوك مشكاة

Name_UP.rar

تم تعديل هذه المشاركة بواسطة Mishkat ibrahim في 13 مايو 2008 في 02:48

1
#5

السلام عليكم

بسم الله .. ماشاء الله .. تسلم أخي مشكاة

حل رائع .. ولا عطر ,, بعد عروس

#6

أخي واستاذي الكبير / اكسير الحياة ..المحترم

أشكرك على تشجيعك وإن شاء الله أكون عند حسن ضن الطيبين و لا أنسى أبدا الأمثلة التي أخذتها منك وتعلمت منها الكثير

فلك مني خالص التحيات والتقدير..

أخوك مشكاة

#7

الف شكر اخى مشكاه

وشكرا لمتابعتك اخى اكسير

اخوكم مصطفى

#8

بسم الله الرحمن الرحيم

تمت الإجابة على الموضوع

إدارة الفريق العربي للبرمجة

#9

الله يعطيكم العافية ماشاء الله يجعلة اللع فى ميزان حسناتكم

post-81435-1216566110_thumb.jpg

#10

مشكور يا استاذنا الغالي

والله خوش دالة مفيده جداً وهذه داله اخرى للارجاع عدد معين من الاحرف وصيغتها

Right(string, length)

left(string, length)

وكل واحده بالاتجاه المشار اليه بالترتيب حيث يمكن وضع [اسم الحقل ] في جزء ال String ومن ثم تحديد عدد الخطوات المطلوبة

#11

ما شاء الله صراحة فكرة رائعة

كما أود أن أنبهكم لمشكلة لو وجدتم لها حل يكون أفضل

وهي مشكلة الأسماء المركبة أو الأسماء التي تتكون من جزئين مثل:

عبد الله - عبد الرحمن - عبد الكريم ... الخ

أعرف أنه يمكن حل هذه المشكلة بالصاق الجزئين مع بعضهما دون وضع مسافة لكن أحياناً نجد أسماء لا تنفع معها هذه الطريقة

ولو تم إيجاد حل يكون أفضل.

ويمكن الاستفادة من برنامج دليل الهاتف الموجود في برنامج الأوت لوك تبع مايكروسوفت

أتمنى أن أكون وفقت في تنبيهكم لنصل معاً إلى حلول فريدة ومميزة نخدم بها منتدانا الجميل

والله ولي التوفيق

#12

باؤك الله فيك خيو مصطفي وجزالك الله كل خير

مواضيع مشابهة