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

ربط النموذج بملف csv

بدأه lordring في 25 ديسمبر 2012 · 19 رد · 1,081 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم في النموذج المرف سابقا كان ياخذ بياناته من ملف اكسيل مرفق بجانبه بشرط ياخذ بيانات السجل الاخير من ملف الاكسيل دائما

التغير الان اصبح بانه يجب ان ياخذ النموذج بياناته من ملف نوع csv عوضا عن ال xls

فكيف يمكن تعديل الكود ليتناسب مع صيغة الملف الجديد .. مع التقدير

v4.rar

#2
lordring كتب:

السلام عليكم في النموذج المرف سابقا كان ياخذ بياناته من ملف اكسيل مرفق بجانبه بشرط ياخذ بيانات السجل الاخير من ملف الاكسيل دائما

التغير الان اصبح بانه يجب ان ياخذ النموذج بياناته من ملف نوع csv عوضا عن ال xls

فكيف يمكن تعديل الكود ليتناسب مع صيغة الملف الجديد .. مع التقدير

تفضل اخي الكريم

post-15367-082162200 1356430266_thumb.gi

لا تنسانا من التقييم بارك الله بك

za-v4-UP.rar

بالتوفيق

المرفقات
N1.gif
5
#3

جزيل الشكر والتقدير ....

#4

----------------------------------------------------------------------------

تم تعديل هذه المشاركة بواسطة سالم فتحي في 25 ديسمبر 2012 في 15:56

#5

مرحبا مرة اخرى اختي الكريمة

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

عندما قمت الان بالاستبدال ظهر التالي

25-Dec-12%204-15-50%20PM.png

لااعرف اين الاختلاف هل يمكن ان يكون في الملف مع انه ايضا بامتدا csv

وشكرا مقدما ..

الملف المرفق مع ملف ال csv الجديد

za-v4-UP.rar

تم تعديل هذه المشاركة بواسطة lordring في 25 ديسمبر 2012 في 18:25

#6

من خلال مقارنة ملفي ال csv

وجدت ان الاول الذي تم تطبيق المثال عليه هو امتداد csv لكن مخزن بشكل unicode text csv

اما الثتي فهو بامتداد csv لكنه مخزن بشكل comma delimited csv

ارجو ان تساهم هذه المعلومة في حل الاشكال

بمعنى انه يكون المطلوب تعامل النموذج الاكسس مع ملف comma delimited csv

وشكرا ... واتمنى الاجابة للحاجة الماسة لحل هذا الاشكال ..

تم تعديل هذه المشاركة بواسطة lordring في 25 ديسمبر 2012 في 18:52

#7
lordring كتب:

مرحبا مرة اخرى اختي الكريمة

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

عندما قمت الان بالاستبدال ظهر التالي

25-Dec-12%204-15-50%20PM.png

لااعرف اين الاختلاف هل يمكن ان يكون في الملف مع انه ايضا بامتدا csv

وشكرا مقدما ..

الملف المرفق مع ملف ال csv الجديد

اخي الفاضل : lordring

قول آمين ان الله يهديك ويوفقك لكل خير

شوف وانا اختك الملفات مختلفه تنسيقاتها بعضها عن بعض وحتى لو كانت بنفس الإسم ولكن كل ملف له تنسيق خاص

ملف sheet1.csv تنسيقه جدول ثابت وحقوله مفصوله عن بعضها البعض بفاصلة

post-15367-021855300 1356450621_thumb.gi

وملف sheet1.xls ملف اكسيل له اعمده

post-15367-039040600 1356450699_thumb.gi

لأنه لا يمكن بارك الله بك استخدام الكود الذي عملته لك في المشاركة السابقة ان يعمل على الملفين ولكن يعمل على ملف sheet1.csv

اما الملف الثاني sheet1.xls فلابد ان نضيف له كود برنامج الأكسيل لكي يفوم بالإرتباط به

الآن وضعت لك الكودين في حدث عند تحميل النموذج بحيث يكون هناك ملف واحد فقط في مجلد القاعدة ( الملف الذي تريد استخدامه ضعه مع مجلد القاعدة والملف الثاني قم بإخراجه من المجلد حتى يعمل معك الكود لكل ملف على حده )

فإن كان موجود فقط ملف sheet1.csv فسيتم الإرتباط به ويكون هو مصدر النموذج

واذا لم يكن موجود ولكن الملف الثاني sheet1.xls موجود فسيتم الإرتباط به ويكون هو مصدر النموذج ولهذا لا تضع الملفين في نفس مجلد القاعدة ولكن يوضع واحد فقط والآخر الغير مستخدم يتم اخراجه خارج مجلد القاعدة .

post-15367-020640100 1356451510_thumb.gi

post-15367-004180100 1356451717_thumb.gi

لا تنسانا من التقييم بارك الله بك

za-v4-END.rar

بالتوفيق

المرفقات
SH2.gifSH1.gifsh3.gifsh4.gif

تم تعديل هذه المشاركة بواسطة zahrah في 25 ديسمبر 2012 في 19:11

3
#8

اختي العزيزة.. شكرا مرة اخرى

كل ماتفضلتي به هو معلومات قيمة جزيل الشكر لك عليها ..حاليا لا حتاج الى ملف الاكسيل لان الذي ياتيني هو ملف csv

مثلا الان ازلت ملفي الاكسيل والcsv في تعديلك الاخير ووضعت الملف المرفق التالي الذي اتاني من جهة التحديث

المشكلة انه الذي ترفقيه لي شغال 100% .. لكن عندما يأتيني التحديث بملف csv جديد واقوم باضافته الى جنب القاعدة كما موضح

25-Dec-12%207-59-16%20PM.png

وافتح النموذج تظهر المشكلة الموضحة بالصورة

25-Dec-12%207-59-44%20PM.png

هذا رابط ملف ال csv الذ اقوم باستبداله والاستبدال هو دوري بشكل يومي

الرابط الخاص بي

وشكرا ..كما اتمنى ان تتحملي كثرة اسئلتي وذلك لثقتي باني ساجد الحل لديك ان شاء الله

#9

اخي الفاضل

اتبع الطريقة التالية ولا تحاول تغييرها

1. ضع مجلد القاعدة والملف Sheet1.csv في مكان محدد من القرص C

يعني ليس في كل مره تغير المكان بل اجعله في مكان واحد وثابت لقد وضعتها لك في المسار C:\V4

2. الآن بعد ان تفك الضغط عن الملف ضع المجلد في محرك الأقراص C

post-15367-059273100 1356460500_thumb.gi

3. اذا قمت بتغيير مسار المجلد او الملف يجب ان تقوم بتحديث رابط الملف من ادارة الجداول المرتبطة .

4. اذا كان موقع المجلد دائما ثابت وفتحت القاعدة وظهرت لك المعلومات في الجدول والبيانات في النموذج فلا تغير اي شيء في قاعدة البيانات

5. يبقى لديك الآن مهمة واحده فقط لا غير وهي حذف ملف Sheet1.csv القديم من مجلد القاعدة واستبداله بالجديد في كل مره تريد التغيير اذا حصلت على ملف آخر

v4.rar

بالتوفيق

المرفقات
V1.gif
2
#10

شكرا اختي الكريمة ...

طيب اذا اعتمدنا الطريقة الاخيرة هل يمكن توفير زر في واجهة النموذج لكي تؤدي عملية تحديث مسار الملف عند تغير مكانه

اي اظهار العملية التالية من خلال واجهة النموذج نفسه

post-15367-059273100%201356460500.gif

وشكرا مقدما

1
#11

تفضل اخي الكريم

التعديل النهائي على الملف

قم بنقل المجلد الذي يحتوي ( القاعدة + الملف ) الى اي مكان تريده وسوف تتم عملية الربط مباشرة عند فتح قاعدة البيانات

اذا ظهرت لك اي مشكلة ابلغني بها

za-v4-LAST.rar

بالتوفيق

1
#12
zahrah كتب:

ت

اذا ظهرت لك اي مشكلة ابلغني بها

za-v4-LAST.rar

بالتوفيق

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

#13
lordring كتب:

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

post-15367-080638400 1356523105_thumb.gi

za-v4-LAST2.rar

بالتوفيق

المرفقات
TT1.gif
2
#14

اختي الكريمة شكرا جزيلا الان الامور افضل بكثير ساقوم غدام بالتجربة النهائية عندما يردني ملف التحديث

وساوافيك بالنتيجة ان شاء الله

فقط احببت ان اوضح انه

لو تلاحظين في المرفق الاخير وفي الصورة بان النموذج لم يذهب الى السجل الاخير وانما يقراء السجل الاول

وحسب ملف ال csv المرفق ...

لذلك قمت باضافة عبارة

DoCmd.GoToRecord , , acLast

الى نهاية الكود الموجود في حدث عند التحميل .... واصبح يقراء السجل الاخير فهل الاجراء صحيح ..؟

مع فائق التقدير

#15
lordring كتب:

اختي الكريمة شكرا جزيلا الان الامور افضل بكثير ساقوم غدام بالتجربة النهائية عندما يردني ملف التحديث

وساوافيك بالنتيجة ان شاء الله

فقط احببت ان اوضح انه

لو تلاحظين في المرفق الاخير وفي الصورة بان النموذج لم يذهب الى السجل الاخير وانما يقراء السجل الاول

وحسب ملف ال csv المرفق ...

لذلك قمت باضافة عبارة

DoCmd.GoToRecord , , acLast

الى نهاية الكود الموجود في حدث عند التحميل .... واصبح يقراء السجل الاخير فهل الاجراء صحيح ..؟

مع فائق التقدير

بارك الله بك اخي الكريم

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

وبما انك نقلته الى آخر الكود فهذا جميل ولا يوجد به اي مشكله

لأن آلية عمل البرنامج تتم كالتالي :

1. يتم فتح قاعدة البيانات

2. يتم فتح نموذج البدء ( النموذج الأسود )

3. من خلال الماكرو المضمن يتم فتح نموذج البيانات

4. عند تحميل نموذج البيانات يبدأ الكود بالعمل بحيث يقوم بإلإرتباط بالملف ثم يجعل مصدر بيانات النموذج الملف المرتبط

5. في آخر الكود يتم الذهاب الى آخر سجل من السجلات .

بالتوفيق

2
#16

اختي الفاضلة

اسف لاني لم افرد السؤال في موضوع جديد لان نقاطي لاتكفي ولان السؤال متعلق بالموضوع ايضا

في حال اني اردت تغير اسم sheet1 لسبب من الاسباب الى اي اسم اخر ... اين يتم التغير بالبرنامج للحفاظ على عمله مع التسمية الجديدة

غيرت في الكود واستبدلت الاسم sheet1 بتسمية 1 على سبيل المثال لكن البرنامج لم يعمل ..فهل هاك خطوات اضافية يجب عملها

مع فائق التقدير ...وشكرا

#17
lordring كتب:

اختي الفاضلة

اسف لاني لم افرد السؤال في موضوع جديد لان نقاطي لاتكفي ولان السؤال متعلق بالموضوع ايضا

في حال اني اردت تغير اسم sheet1 لسبب من الاسباب الى اي اسم اخر ... اين يتم التغير بالبرنامج للحفاظ على عمله مع التسمية الجديدة

غيرت في الكود واستبدلت الاسم sheet1 بتسمية 1 على سبيل المثال لكن البرنامج لم يعمل ..فهل هاك خطوات اضافية يجب عملها

مع فائق التقدير ...وشكرا

اخي الفاضل

اذا غيرت اسم الملف مثلا الى 1 فيجب عليك ايضا تغيير ذلك في الكود البرمجي بهذه الطريقة

Private Sub Form_Load()
Dim db As DAO.Database
Dim strPathFile As String
Set db = CurrentDb
On Error Resume Next
strPathFile = Application.CurrentProject.Path & "\1.csv"
db.TableDefs.Delete "1"
On Error GoTo 0
db.TableDefs.Refresh
DoCmd.TransferText acLinkDelim, "zahrah", "1", strPathFile, True
db.TableDefs.Refresh
db.Close
Set db = Nothing
Me.RecordSource = "1"
DoCmd.GoToRecord , , acLast
End Sub

za-v4-LAST3.rar

بالتوفيق

1
#18

رائع جدا تم التغير وبكفائة

ممكن اعرف مالمقصود ب "zahrah" داخل الكود

DoCmd.TransferText acLinkDelim, "zahrah", "1", strPathFile, True

وشكرا

#19
lordring كتب:

رائع جدا تم التغير وبكفائة

ممكن اعرف مالمقصود ب "zahrah" داخل الكود

DoCmd.TransferText acLinkDelim, "zahrah", "1", strPathFile, True

وشكرا

اخي الفاضل

بما انك قمت بتغيير الملف السابق الى صيغة CSV نصيه ويتم فتحه عن طريق الأكسيل ويكون على شكل اعمده فلا بد لنا من عمل مواصفة خاصة بهذا الملف وهي هنا ( عمود جدوله ) لذا انتبه معي للشرح

1. عندما نريد الإرتباط بملف نصي فإننا نختار من القوائم العلوية للأكسيس ( بيانات خارجية )

2. نختار ملف نصي

3. عند اختيار وتحديد الملف النصي الذي بصيغة CSV نختار من النافذة الإختيار السفلي وهو ارتباط .

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

5. ستفتح لنا نافذة جديده وستشاهد جميع بيانات الملف CSV اصبحت على شكل اعمدة كل حقل في عمود واسماء الحقول ستكون في الأعلى

6. الآن ركز معي لو اخترنا موافق مباشرة فلن نحصل على نتيجة ولن يتم قبول الملف في برنامج الأكسيس وسيظهر لك جدول فارغ به حقل واحد

ولهذا لتجنب هذه المشكلة سنجد اسفل اللوحة ( خيارات متقدمة ) نقوم بالضغط عليها وهي خاصة بالمواصفات وفي هذه الحالة نريد مواصفة علامة الجدولة حتى تظهر لنا جميع بيانات الملف على شكل اعمدة يقبلها برنامج الأكسيس

وسنجد في جانب اللوحة نفسها عدة ازرار من ضمنها ( حفظ المواصفة ) نقوم بالضغط عليها ونحفظ هذه المواصفة والتي هي علامة الجدوله بأي اسم نريده مثلا انا سميتها ( zahrah ) وبإمكانك انت عندما تقوم بهذه الخطوات حتى وصولك الى حفظ المواصفة ان تحفظها بأي اسم تريده وستكون هذه المواصفة ثابته مع قاعدة البيانات والملف الذي تم عمل مواصفه له .

اما اذا اتيت بقاعدة ثانية غير هذه القاعدة واستبدلتها فلا ينفع وسيظهر لك خطأ يطالبك بإسم المواصفة التي تم عملها لقاعدة البيانات والملف اثناء الإرتباط .

ارأيت كلمة zahrah كم يحتاج لها من شرح :)

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 27 ديسمبر 2012 في 01:18

#20

شكرا اختي الكريمة على الشرح الوافي .. اسأل الله ان يبدل كل كلمة في هذه المشاركة بحسنة في ميزان حسناتك ..

يستحق الاسم zahrah ان يثبت كعلامة لها امتيازها في عالم البرمجة ..

تحياتي

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