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

كيف يقوم البرنامج باخيار حقول عشوائية

مغلق
بدأه memoon في 20 يونيو 2007 · 4 رد · 915 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

1- يحصر عدد السجلات في قاعدة البيانات مثال (15 سجل في قاعدة البيانات)

2- يقوم باخيار سجل عشوائياً من بين عدد السجلات المحصورة

3- ان يعرض السجل مرة واحدة ثم لايعرضه بعدها إلا إذا أعاد تشغيل البرنامج

إن شاء الله تكون أسئلتي واضحة

ولكم جزيل الشكر

تم تعديل هذه المشاركة بواسطة memoon في 20 يونيو 2007 في 08:39

من مواضعي

برنامج يتصل بقواعد بيانات MYSQL

طريقة إرسال البيانات من البرنامج إلى الوورد

قاطعوا المنتجات الدنماركية والهولندية لنصرة رسول الله والإسلام

lom024p4owxcwq2.gif

للمراسلة عبر الماسنجر :

#2

لمعرفة عدد السجلات

dim SQL as String

 SQL = "select * from TabelName"
rs.Open SQL, db, adOpenStatic, adLockPessimistic

dim x as Integer
Do while rs.Eof = false
rs.MoveNext
x = x+1
loop

msgbox x

أما الباقي فإبحث عن دوال توليد أرقام عشوائية لأني ماعرفهاش

بس حط الشرط انه يكون محصور من 1 الى X

وبعد توليد الرقم العشوائي وليكن 7 مثلا

هاتكتب

rs.move (7)

حتى تذهب الى السجل رقم 7

بس مش عارف الكود صح 100% ولا لأ

بس هي تبع الخاصية Move

اما حكاية انه مايعرضش السجل غير مرة واحدة

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

عليك بالبحث عنهم او انتظر اخواننا الأعضاء للرد عليك بطريقة صحيحة 100%

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#3

توليد ارقام عشوائية حسب عدد السجلات كما يلي :

Dim RanNo() As Long 
Private Sub RandomizeNumbers(ByVal iFrom As Integer, ByVal iTo As Integer) 
ReDim RanNo(iFrom To iTo) 
For i = iFrom To iTo 
RanNo(i) = i 
Next i 
Randomize (Timer) 
For i = iFrom To iTo 
j = CInt((iTo - iFrom) * Rnd + iFrom) 
tmp = RanNo(i) 
RanNo(i) = RanNo(j) 
RanNo(j) = tmp 
Next i 
End Sub 
Private Sub form_load() 
RandomizeNumbers 0, rs.recordcount-1



End Sub

اصبحت المصفوفة RanNo تحوي على ارقام عشوائية مثلا من 1-15

بعد ذلك لعرض سجل عشوائي استخدم

rs.Move ranNO(0), adBookmarkFirst

لعرض الثاني

rs.Move ranNO(1), adBookmarkFirst

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

#4

السلام عليكم أحبائي/

أشكركم على مشاركاتكم

اقتباس
يحصر عدد السجلات في قاعدة البيانات

أسرع طريقة لمعرفة أي عدد للسجلات هي عن طريق الأمر المبني داخل Access وهو الــــ DCount. وطريقة استخدام الدلة كما يلي:

Dim count as Integer
count = DCount("*","اسم الجدول")

ولكن هذا على مستوى جدول واحد محدد، وقد ذكرت أعلاه السجلات في قاعدة البيانات وهذا يستلزم كودي إضافي لجمع محصلة عدد السجلات في كافة الجداول. تم استبعاد كافة جداول المنشأة من قبل النظام والتي تبدأ بــ MSys، والكود كما يلي:

Function countInAllTables() As Integer
Dim tblDef As TableDef
For Each tblDef In CurrentDb.TableDefs
   If Left$(tblDef.Name, 4) <> "MSys" Then
	countInAllTables = countInAllTables + DCount("*", tblDef.Name)
   End If
Next tblDef
End Function

ويتم استخدام الدلة كما يلي:

Dim countAll  as Integer
countAll = countInAllTables

وقبل القيام بإعداد الكود للحصول على سجلات عشوائية أود معرفة الطريقة التي ستستخدم بها البرنامج، وهل سيكون مصدر السجلات العشوائية من جدول واحد أو عدة جدول؟

ولكن بشكل مبدئي الكود\ سيكون قريب من الأتي:

Int ((upperbound - lowerbound + 1) * Rnd + lowerbound)

حيث upperbound هي أكبر قيمة

و lowerbound أصغر قيمة

وعن الإجابة عن الاستفسار يمكن تطبيق عملية عدم التكرار، وسيتم ذلك هن طريق تعريف قيمة دولية (Global) أو محلية حسب عدد الفورمز التي ستتعامل معها.

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

أخوكم/ فرا س ناصر

تم تعديل هذه المشاركة بواسطة Feras Nasser في 20 يونيو 2007 في 19:08

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

#5

مشكورين وماقصرتو للأعضاء جميعاً إلي ردو

والسلام عليكم

من مواضعي

برنامج يتصل بقواعد بيانات MYSQL

طريقة إرسال البيانات من البرنامج إلى الوورد

قاطعوا المنتجات الدنماركية والهولندية لنصرة رسول الله والإسلام

lom024p4owxcwq2.gif

للمراسلة عبر الماسنجر :

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

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