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

تقليل المسافات في تصدير الى ملف نصي

بدأه orphan94 في 28 يناير 2009 · 15 رد · 1,124 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني

ارجو من الجميع مساعدتي في هذا الموضوع

لدي ملف اكسس اريد تحويله الى ملف نصي ولكن حين اتحويل اجد مسافات بين في بدايه اصفحه وبين البينات اريد حذفها

كما اريد حذف انقطة الموجوده في اترقيم اي اريد اترقيم ولكن بدون انقطة وتم ارفاق مثال كما تم ارفاق الملف انصي الذي اريده

_________.zip

#2

اخوتي هل من مجيب

#3

اخوتي ارجو الرد على موضوعي في اسرع وقت انا في حاجه له

#4

اخوتي ارجو الرد علي ارجوكم

#5

أما الفراغات فهي بسبب تصميم التقرير والذي وضعت بين حقوله فراغات !!!

أما النقطة عند الترقيم فلم أجدها أتمنى أن توضح أكثر ؟؟

#6

خي الكريم

انقطه موجوده حين التصدير الى ملف نصي قد عرفت سببها وهي الموجوده في القيمه الفتراضيه

ارجو حل مشكلة الفراقات بين السطور اي اريدها السطور متتاليه ولا اريد بينها اي فرغات

وشكرا

تم تعديل هذه المشاركة بواسطة orphan94 في 30 يناير 2009 في 03:34

#7

ولكنى أجبتك سابقاً بأن هذا بسبب تصميمك أنت للتقرير ، غير تصميمك لتحصل على مرادك !!!!!!!!!!!!!!!!؟

#8

اشكرك

ولكن كيف اغير اتصميم حيث اني حاولت ولم استطيع

اريده بنفس اترتيب

هل من الممكن المساعده

#9

هل من حل للمشكلة

.............

#10

نعم يوجد حل لمشكلتك .. بس وضح أكثر عن غرض الاستخدام حتى أوصلك للمطلوب بأحسن صورة

راجع هذه المشاركة يمكن تفيدك

/index.ph...&pid=886524

#11

اشكرك على هذه المشاركه وانا اريد عمل اتقرير نفس هذه اطريقه

ارجو منك اخي الكريم مثال لكي اعمل نفس هذا اشي

وشكرا لك

#12

طيب اكتب لي سطر بيانات متكامل حتى أعمل عليه المطلوب، لأن المثال المرفق لم استطع فهمه

اكتب لي مثلا..

- الغرض من تحويل البيانات إلى ملف نصي

- طول السطر المطلوب

- نوع وطول الفراغ المطلوب بين حقول البيانات

- أي معطيات تفيد في معالجة تلك البيانات

- أي بيانات تريد إضافتها غير ما ذكر

#13

الغرض هو لشخص يعمل في دائره حكوميه ويريد المساعده وانا اريد مساعدته

لا يهم اطول

طول الفراق المطلوب 20 ( مسافه ) بين كل مجموعه

نفس المثال المرفق في المشاركه الاول

لا اريد اظافه شي اخر

تم تعديل هذه المشاركة بواسطة orphan94 في 1 فبراير 2009 في 23:53

#14

إجابة مقتضبة لم تشفِ الغليل، والتقرير مبني على استعلام مشوش في حقوله وبياناته..

- على حسب ما ظهر لي أنك لجأت إلى ترحيل البيانات عن طريق التقرير من أجل أعطاء أسطر البيانات أرقاماً متسلسلة (1..2..3.. إلخ)، وقد تكون هناك أغراض أخري لكن لم تكن واضحة بالنسبة لي، كما إنك لم توضحا لي حين طلبت ذلك منك.

- أما إذا كان الغرض هو ترحيل بيانات الاستعلام إلى ملف نصي وحسب؛ فإنه بالإمكان عمل ذلك بالتأشير على الاستعلام ومن ثم اختيار (تصدير) من قائمة الأدوات (ملف) ثم من مربع الحوار نختار (التصدير إلى ملف نصي) وسوف تري أن مربح الحوار يقدم خيارات متعددة للتصدير.

- على كل حال سأعرض لك كيفية ترحيل البيانات إلى ملف نصيبطريقة مخصصة، وسوف تقوم أنت بدورك بتركيب البيانات في سطر كتابة البيانات إلى الملف على حسب ما يتلائم مع متطلباتك.

- قاعدة البيانات المثال فيها جدول يتكون من حقلين للبيانات من أجل التمثيل.

- يتكون المثال من دالتين:

-- الدالة الأولى: إنشاء الملف النصي وحفظه : SaveTextFile

-- الدالة الثانية : كتابة البيانات ترحيل اليانات إلى الملف النصي: WriteToTextFile

- الدالة المهمة هنا هي التي تعتني بكتابة البيانات إلى الملف النصي، وسردها في ما يلي.

'**' write data to text file

Function WriteToTextFile(TextFileName)
Dim fso, f, counterx

'- make object to create textfile
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(TextFileName, True)

'- declare recordset object
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("ECC") ' determine recordset

'- make loop for recordset
With rs
	.MoveFirst '- goto first record

	'- wrie column header
	'!!! activate this line if is necessary
	' f.WriteLine "Counterx" & Chr(9) & "Code" & Chr(9) & "Description" 
	Do Until .EOF
		counterx = counterx + 1 ' make counter for lines

		'- write the data to textfile
		f.WriteLine counterx & Chr(9) & !Code & Chr(9) & !Description
		'Debug.Print counterx, !Code, !Description ' write the data to immediate window to test
		.MoveNext
	Loop
	' colse the files and popup 'Done' msgbox
	If .EOF Then
	 .Close
	 f.Close
	 MsgBox "Done!"
	End If
End With

End Function

- بيان هذه الدالة التفصيلي في التالي.

-- المقطع التالي يتكون من اسم الدالة: وهي [WriteToTextFile] والعبارة الممررة: وهي اسم الملف [TextFileName]

وسيتم تمرير اسم الملف عن طريق طريق دالة إنشاء الملف.

Function WriteToTextFile(TextFileName)

-- السطر الأول لتكوين وتهئية كائن إنشاء ملفات النظام؛ ومنها الملفات النصية

-- السطرالثاني لتكوين وتهئية كائن إنشاء الملف النصي

'- make object to create textfile
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(TextFileName, True)

-- السطر التالي لتكوين وتهئية مصدر سجل البيانات

يمكنك تغيير مصدر السجل "ECC " بما يتوافق مع متطلباتك

'- declare  and use recordset object
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("ECC") ' determine recordset

-- السطر التالي الذهاب إلى أو سجل في مصدر البيانات

وذلك للتأكد من أن الكتابة للملف النصي تبدأ من أو سجل

'- goto first record
rs.MoveFirst

-- السطر التالي لكتابة رؤوس أعمدة البيانات في الملف النصي

مع ملاحظة أن كتابة هذا السطر خارج الدوارة (لأنه لا يتكرر)

!! اختياري وهو في هذا المثال غير مفعل (أزل إشارة التوثيق لتفعيله)

'- wrie column headers
'!!! activate this line if is necessary
' f.WriteLine "Counterx" & Chr(9) & "Code" & Chr(9) & "Description"

-- السطر التالي من أجل عمل دوارة تتنقل بين السجلات

ابتداءً من أول سطر حتى آخر سطر في مصدر البيانات

'- make loop for recordset
Do Until .EOF

-- السطر التالي متغير يكون ترقيم تسلسلي للأسطر

يزيد مع كل دورة رقما واحد (1..2..3..)

	' make counter for lines
	Dim counterx
	counterx = counterx + 1

-- السطر التالي هو لكتابة البيانات إلى الملف النصي

ويلاحظ أن البيانات فصلت عن بعضها بالدالة (9)Chr

والتي تقوم بعمل المفتاح (Tab) في لوحة المفاتيح

	'- write the data to textfile
	f.WriteLine counterx & Chr(9) & rs!Code & Chr(9) & rs!Description

-- السطر التالي من أجل الانتقال إلى السطر التالي في مصدر البيانات

بعد كل دورة طبعاً

	'- goto next record
	rs.MoveNext

-- السطر التالي هو دليل عمل الدالة الدوارة

'- loop director
Loop

-- السطر التالي يتضمن إجراء شرطي

عند الوصول إلى آخر سجل في مصدر البيانات يقوم بعمل التالي

إغلاق سجل البيانات

إغلاق الملف النصي

إعطاء رسالة بإنهاء عملية كتابة البيانات إلى الملف النصي

' colse the files and popup 'Done' msgbox
If rs.EOF Then
 rs.Close
 f.Close
 MsgBox "Done!"
End If

-- السطر التالي يشير إلى نهاية الدالة

End Function

أعتقد أنني بالغت في التفصيل أكثر من اللازم

على كل حال اكتب الدالة SaveTextFile تحت أي زر أمر وقم بتنفيذها

وهذا مرفق المثال:

WriteToTxtFile.zip

بالتوفيق

#15

اشكرك اخي العزيز وسوف اطبق شرحك وان شاء الله اوافيك بانتيجه

#16

اخي العزيز

اشكرك ولكني لم اجد الحل

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…