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

فشلت في الخطوة الثانية !!!

مغلق
بدأه net. في 19 مايو 2003 · 20 رد · 1,268 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

الذي يوقف عملية الحذف عند عدم وجود قاعدة بيانات

if data1.recordset.recordCount = 0 then

command3.enable = false

endif

والأن أريدها ( command3 ) أن تعمل عند إضافة أي حساب جديد

أي بعد الضغط على الكوماند الخاص بـ ( Add New ).

فما هو الحل ؟؟؟

#2
command3.enable=true
#3

شكرا أخي على الرد

ولكن ما زال السؤال قائما

ما هو حدث إدخال البيانات في Data Base

فعند خلو البيانات وحذفها كلها يكون

data1.Recordset.RecordCount = 0

أما عند إدخال المعلومة الأولى (فهذه الحالة) هي ما أريدها لأقوم بعمليات أخرى

فأرجوا من الأخوة المساعدة.

#4

في DAO وهي المطبقه عند استخدام data control استخدام recordcount مباشره لا تعطي عند السجلات الموجوده بشكل صحيح بل يجب اولا التحرك على كل السجلات باتجاه السجل الاخير اولا حتى يمكن الحصول على recordcount صحيح....

هنا يمكن استخدام الكود التالي:

if NOT data1.recordset.eof and not data1.recordset.bof then

data1.recordset.movelast:data1.recordset.movefirst

if data1.recordset.recordcount>0then

command1.enable=true

end if

end if

ولتتجنب الوقوع في اخطاء التشغيل استخدم eofو لاخب قبل الشروع في اي عمليه حذف او تصفح للسجلات...

ارجو ان اكون قد اوضحت و اجبت على سؤالك...

#5

ما زالت المشكلة قائمة

فالبرنامج لم يتعرف على الوضع الجديد أي ( عند إضافة معلومة جديدة لقاعدة البيانات ) .

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

::: هل من الأفضل وضع ( Type ) للعمود Id

AutoNumber

أو عادي Number ??? ( في DataBase )

#6

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

#7

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

عندما وضعت العمود ID

على هيئة Number في Data Type

لأنني أريد عند حذف أي شخص ورقمه فرضا 1 وتسجيل شخص آخر فإنه يأخذ نفس الرقم

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

وقمت بالدخول لقاعدة البيانات وقمت بتجربة

أضفت لها شخصا ما وكان من المفترض أن تظهر لي صفا جديدا تلقائيا

وهذا ما حدث ولكن بنفس رقم الشخص السابق ( وأعتقد أن المشكلة تكمن هنا)

فهل أجد عندكم حلا ؟

#8

السلام عليكم

نعم أخي العزيز فإذا كان نوع الحقل AutoNumber فهو يستخدم مرة واحدة فقط ولا يمكنك استرجاع الرقم المحذوف في ذلك الحقل ابدا ...... !!

الحل في هذه الحالة هو تغيير نوع الحقل من AutoNumber إلى Number عادي .

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

هذا الذي فهمته من سؤالك ، وهنا تقبل تحياتي .

اخوك Visitor_OM .

#9

شكرا أخي

بقي لإكمال المعروف بأن تخبرني كيف يتم ذلك بالكود

#10

حقول القاعدة مثالا : وخصائص كل واحدة ( Data Type )

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

( Filed Name )..........( Data Type )

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

......ID......................Number.......

......Name.......................Text......

.....Telephone............Number......

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

#11

ولا يهمك أخي الكريم إنت تأمر أمر /

تفضل /

أول خطوة تقوم بها هي إضافة الإداة ADO ثم تضع الكود التالي كل حسب المكان المخصص له .

'ضع هذا الكو في قسم التصريحات
 Dim db As New ADODB.Connection
 Dim rs As New ADODB.Recordset
'
'ضع هذا الكود عند تحميل المشروع
'
   db.CursorLocation = adUseClient
   db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & " YourDataBase.mdb"
'
'هذا آخر كود وتضعة في المفتاح الخاص بعملية الإضافة وتضعة بالتحديد قبل كود الإضافة
'
 If rs.State = adStateOpen Then rs.Close
    rs.Open "[اسم الجدول]", db, adOpenForwardOnly, adLockReadOnly
 '
  If rs.RecordCount = 0 Then
         AutoNumber = "1"
     Else
      rs.MoveLast
      AutoNumber = rs!ID
      AutoNumber = AutoNumber + 1
  End If
'
 Label1.Caption = AutoNumber
'
'label1 هو القيمة التي سوف يسندها البرنامج إلى الحقل الخاص بعملة الترقيم
'
'

وتقبل تحياتي .

#12

ألف شكر لك أخوي

ولكم إخواني

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

سؤال أخير شو تعني rs

الموجودة مثلا في rs.RecordCount = 0 Then

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

تعبتك معاي

تعبتكم معاي

فأعذروا المبتدئ

#13

آسف توني إنتبهت عليها

إنسوا السؤال

#14

أخوي الكريم Visitor_OM

بالنسبة لكود الإضافة

فإن البرنامج يظهر لي رسالة الـ Dubbag

الخطأ يتم تضليله عند Adodc1.Recordset.AddNew

فما هو الحل ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#15

أخي الكريم بس ممكن توضح نوع الخطأ او تضع مشروعك هنا لإفادتك بشكل افضل .

على العموم الإخطاء التي قد ترد عند نقطة إضافة سجل جديد كثيرة من ضمنها إنه لا يوجد إتصال بقاعدة البيانات او إن صلاحيات المستخدم الحالي محدوده بحيث لا يمكن للمستخدم إضافة بيانات جديدة أو إنه يوجد خطاء في عملية إدخال البيانات للمرة السابقة . ! على فكرة انا كنت عامل مثال حول إستخدم DBGrid يوجد في المثال طريقة الإضافة والتعديل والبحث والتصفية وترتيب البيانات تجده في المرفقات أمل إن يساعدك في شى .

هذا وتقبل تحياتي .

dbgridpro.zip

#16

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

هل من الممكن تسوي المثال

ولكن باستخدام الكونترول Data

#17

وهذا مثال على الواجهة التي أريد أن يكون عليها البرنامج

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

try.zip

#18

الأمر مهم جدا فأرجو الأ تتأخروا علي

ويعطيكم العافية

#19

وهذه أخرى بطريقتي لاستعمال Adodc1

try_2.zip

#20

أخي العزيز هذا برنامج صغير يشبة طلبك إلى حدا ما ، وقد كانت مشاركة مني لاحد الأخوه في هذا المنتدى وقد بحثت عن الرابط ولم اجده لذا ارفق لك البرنامج .

آمل إن يفي بالغرض .

تفضل /

phone_data.zip

#21

شكرا لك أخي

أعتقد أنني اقتربت من تحقيق الهدف بطريقة ثانية

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

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

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