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

إضافة بيانات من قاعدة بيانات أخرى

مغلق
بدأه faife في 4 أكتوبر 2006 · 17 رد · 1,360 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي قاعدتي بيانات الأولى باسم case والأخرى بأسم bss وبهما جدول باسم case يحمل نفس البيانات

سؤوالي هو كيف استطيع أن أقوم بإضافة بيانات الجدول من القاعدة bss إلى الجدول في القاعدة cass عن طريق زر امر في نموذج .ومرفق مثال للعمل

cace.rar

#2

عزيزي عند عمل insert query فانه بامكانك اختيار المكان الذي تريد تخزين البيانات به وبامكانك اختيار قاعدة البيانات الحالية او اخرى على جهازك

جرب وان لم ينفع ساحاول

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

اشك ان عضويتي كمشرف حذفت

#3

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

تجد بالمرفقات قاعدة بيانات سوف تساعدك ان شاء الله على تنفيذ نقل بيانات جدول من القاعدة الأولى إلى جدول موجود في القاعدة الثانية ، وعلى ما أظن أنه من تصميم الاستاذ/ أحمد الحربي.

والله الموفق.

_____.rar

ibnmusqat.gif
#4

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

#5

اخوتي الأعزاء لقد قمت بتجربة المثال المرفق لكن للاسف لم يتم اي تغيير على الجداول ولم يتم اضافة السجلات كما هو مطلوب فما الحل؟ ودمتم

#6

إذن أتبع التالي:

أولاً : أضبط المكتبات التالية.

  1. Microsoft ActiveX Data Objects 2.8 Library
  2. Microsoft ADO Ext 2.8 for DDL and Security

طبعاً حسب الأوفيس لديك فليس بالضرورة أن يكون إصدار المكتبة 2.8 واتبع الخطوات التالية :

  • أجعل القاعدة المسماة case في مجلد
  • أفتح النموذج الموجود في القاعدة bss في وضع التصميم
  • أضف لمسميات مربعات النصوص Text كلمة ( Txt ) حتى لا يصير لبس في الكود
  • أضف زر أمر وفي حدث عند النقر ضع الكود التالي

   Dim db As New ADODB.Connection
	Dim rst As New ADODB.Recordset

	db.Provider = "Microsoft.JET.OLEDB.4.0;"
	db.Open CurrentProject.Path & "\case\case.mdb", "Admin"

		rst.Open "[case]", db, adOpenDynamic, adCmdTable

		rst.AddNew

		rst("name") = Me.Txtname
		rst("cla") = Me.Txtcla
		rst("tel") = Me.Txttel

		rst.Update
		rst.Close

شرح الكود حتى تعرف ما تفعله:

Dim db As New ADODB.Connection
للإتصال بقاعدة البيانات case
________________________________

	Dim rst As New ADODB.Recordset
متغير للسجلات

________________________________

	db.Provider = "Microsoft.JET.OLEDB.4.0;"
نعرف الإتصال بكائن JET  أي قاعدة بيانات أكسيس
_______________________________

	db.Open CurrentProject.Path & "\case\case.mdb", "Admin"
نفتح قاعدة البيانات case في الذاكرة لنتمكن من التعامل مع السجلات
_______________________________

		rst.Open "[case]", db, adOpenDynamic, adCmdTable
نفتح الجدول في الذاكرة 
_____________________________

		rst.AddNew
نهيء الجدول على سجل جديد

___________________________

		rst("name") = Me.Txtname
		rst("cla") = Me.Txtcla
		rst("tel") = Me.Txttel
نظيف القيم الموجود في مربعات النصوص إلى الجدول

____________________________
		rst.Update
هذا الأمر يقوم بإضافة البيانات إلى الجدول فكلمة AddNew تهيء الجول و Update تظيف البيانات
____________________________
		rst.Close
نقوم بإغلاق الجدول حتى

ملاحظات هامه

استخدم السطر db.Open CurrentProject.Path & "\case\case.mdb", "Admin" إذا كانت قاعدة البيانات التي تريد الإضافة إليها في نفس مسار القاعدة التي تضيف منها أم إذا أردت أن تكون القاعدة التي تظيف إليها في مسار أخر فلا بد أن تستبدل السطر السابق بمسار قاعدة البيانات كاملاً.

إذا كانت قاعدة البيانات في نفس المجلد فسيصبح السطر السابق كما يلي db.Open CurrentProject.Path & "\case.mdb", "Admin"

أي بدون اسم المجلد.

أرجو لك التوفيق وأي استفسار لالالالالالالالالالالالالالالالالالالالالالا مشكلة تفضل.

وهذا المثال مرفق جرب

cace.rar

#7

بارك الله فيك استاذنا وخبيرنا مصلح على هذا الشرح الوافي والمثال الرائع

بالتوفيق

#8

زادك الله علماً أستاذي مصلح الحريصي ونفع بك الإسلام والمسلمين .

تحياتي ..

#9

أولا بارك الله فيك أخي الحريصي وأشكرك على هذا التفصيل ولعلمك أنا من جبل فيفا قريب منكم

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

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

وأخيرا اشكر للجميع هذا التواصل والذي ليس بغريب عليهم في هذا المنتدى فجزاكم الله الف خير

#10

مشرفينا الكرام فهد __ زهرة

شكراً لكم على الإطراءما أنا إلا واحد من تللاميذكم الذين يعدون بالملايين وما قدمت إلا من بعض ما عندكم .

أخي faife

مرحباً بالجار

جرب وأخبرنا بما يحدث معك

#11

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

بصراحة شي مو عادي والشرح كافي ووافي في شرك الكود

استاذي الفاضل _______ مصلح ___________

اذا كانت قاعدة البيانات على قرص مرن كيف يتم نقل البيانات إلى القاعدة على الجهاز الخاص بي مع العلم أن القاعدة تعمل نفس العمل كما في المثال المرفق

ولكن في المثال أن القاعدتنين على نفس الجهاز والامر الآخر هذه عملية تصدير كيف اقوم بعملية استيراد هذا خو سؤال

والسلام ختام

#12

بارك الله فيك

مثااااااااال رائع بكل جدارة

=======

ريح من الزفرات تعصف في الحشى &&& و ورائها مطر من العبرات

ابو حسن

#13
السرااج كتب:
السلام عليكم ورحمة الله وبركاته

بصراحة شي مو عادي والشرح كافي ووافي في شرك الكود

استاذي الفاضل _______ مصلح ___________

اذا كانت قاعدة البيانات على قرص مرن كيف يتم نقل البيانات إلى القاعدة على الجهاز الخاص بي مع العلم أن القاعدة تعمل نفس العمل كما في المثال المرفق

ولكن في المثال أن القاعدتنين على نفس الجهاز والامر الآخر هذه عملية تصدير كيف اقوم بعملية استيراد هذا خو سؤال

والسلام ختام

بعد اذن اخي الكريم مصلح الحريصي

يا اخ السرااج يقول لك الاخ مصلح استبدل هذا السطر

db.Open CurrentProject.Path & "\case\case.mdb", "Admin"

بعنوان او مسار القاعدة التي تريد ارسال السجل لها ولتكن على القرص D داخل مجلد اسمه case فيصبح السطر

   db.Open "D:\case\case.mdb"

ريح من الزفرات تعصف في الحشى &&& و ورائها مطر من العبرات

ابو حسن

#14

شكرا أخي_________ المبرمج 2003__________ على سرعة الاستجابة والتوضيح

اخي الكريم لم اقصد ما قمت بتوضيحه

ولكني قصدت اني اذا كنت أعمل على قاعدة اردت استيراد بيانات إليها وليس كما في المثال السابق الذي قام

بوضعه الأخ الكريم ____ مصلح ____

لأن المثال يقوم بتصدير البيانات وليس استيرادها

والسلام ختام

#15

أخي المبرمج2003

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

أخي السرااج

لماذا لا تستخدم التناسخ ( النسخ المماثلة ) فهي ميزة رائعه في الأكسيس على سبيل المثال .

لو لديك شركة ولها فروع ولديك برنامج خاص بالمبيعات ولا يوجد شكبة بين الشركة وفروعها وأردت أن تكون لديك كل سجلات المبيعات في الفروع فتعمل نسخه مماثلة للبرنامج وترسل لكل فرع نسخة من البرنامج وتطلب منهم إرسال لك البرنامج بعد أن يتم تسجيل المبيعات وعند وصول البرنامج إليك تفتح البرنامج الرئيسي لديك ومن قائمة أدوات تختار نسخ مماثلة وتختار ( تزامن الأن وسوف يظهر لك مربع حوار يطلب منك تحديد مكان النسخة التي تريد التزامن معها تحدد القاعدة الموجودة في القرص المرن وستجد جميع البيانات الموجودة في القرص المرن أصبحة في الجداول في البرنامج الأساسي .

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

#16

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

اخي ........ المبرمج............ ارجوا انك ما زعلت لاني شفت انك ما رديت

اخي العزيز --- مصلح ----

ارجو المعذرة لكثرة الاسئلة ....

ليست الطريقة لم تروق لي بل اريد أن اضع زر يقوم باستراد البيانات كم في المثال يقوم بتصدير المعلومات واذا كان لدي اكثر من جدول معلومات كيف يدون ذلك

بدلا من الطريقة السابقة

وسؤالي هو لأثراء النقاش وزيادة المعلومات

والعلم ينال بلسان سؤول وقلب عقول

وآسف على الازعاج

والسلام ختام

تم تعديل هذه المشاركة بواسطة السرااج في 8 أكتوبر 2006 في 01:56

#17

الأخ السرااج

ترى ما نسيتك وهذا مثال أخر على إلحاق البيانات من أي قاعدة إلى القاعدة التي تعمل عليها .

 

On Error Resume Next
	Dim DataPath As String
	DataPath = Me.Application.CodeProject.Path & "\case\case.mdb"

	DoCmd.SetWarnings False 

		If MsgBox("ÓæÝ íÊã ÅáÍÇÞ ÇáÈíÇäÇÊ åá ÊÑíÏ Ðáß ÝÚáÇð", vbMsgBoxRight + vbInformation + vbYesNo + vbDefaultButton2, "") = vbNo Then
		Exit Sub
		Else

		DoCmd.RunSQL ("INSERT INTO case ( num, name, cla, tel )" _
		& " SELECT case.num, case.name, case.cla,case.tel FROM case IN '" & DataPath & "'")
		MsgBox "áÞÏ Êã ÅáÍÇÞ ÇáÈíÇäÇÊ ÈäÌÇÍ", vbMsgBoxRight + vbInformation, ""
		End If
	DoCmd.SetWarnings True

ولكن لا تنسى يجب أن تتحقق الشروط التالية :

  1. لابد من توافق اسماء الجداول.
  2. لابد من توافق اسماء الحقول.
  3. لابد من توافق البيانات.
  4. لا يمكن إلحاق سجل مكرر إذا كان هناك مفتاح أساسي

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

لم أشرح الكود إختصاراً للوقت وهو قصير وواضح مع أن هناك نص عربي في الرسالة ما أدري لم تغير لأنني نسخة الكود من الوحدة المنطية بدلاً من إعادة كتابته

وإذا صعب عليك شيء لا تتردد في الاستفسار.

نسيت هذا المثال مرفق

cace.rar

تم تعديل هذه المشاركة بواسطة مصلح الحريصي في 13 أكتوبر 2006 في 23:26

#18

السلام عليكم

الأستاذ : مصلح

شكرا وآسف على الإزعاج ان كنت أخذ من وقتك الكثير فوقتك من ذهب فارجوا اني لم استقطع الكثير من جهدك ووقت ..

لكن تعرف نحن في العشر والأخيرة من رمضان والجلوس على النت والجهاز و قد يكون معدوم

فاسف على التأخير في الرد

ولكن أي استفسار لن اتردد لما رأيت من سعة في الصدر وحب للخير ونفع الناس

وارجو أن تكون ممن قال فيهم الرسول صلى الله عليه وسلم "" احب الخلق إلى الله انفعهم للخلق "" أو كما قال صلى الله عليه وسلم

والسلام ختام

تم تعديل هذه المشاركة بواسطة السرااج في 14 أكتوبر 2006 في 00:10

هذا الموضوع مغلق.

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

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

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

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

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