تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
استعمال ال index
#1
السلام عليكم

كيف نستعمل الindex خارج المصفوفة

حيث لدي مصفوفة فيها 100 تكست1 و لدي كوماند1 و تكست 2 ليس مصفوفة

فكيف اكتب تعليمة انه في التكست 2 اكتب رقم اندكس التكست1 الذي اريد ان تظهر فيه قيمة هي 12000

اي في تكست 2 اكتب 12

فيظهر لي التكست1 ذو الاندكس 12 و فيه القيمة 12000
الرد }}}}
تم الشكر بواسطة:
#2
صاير الكود بهذا الشكل :

كود :
p = Text1.Text
Text1.Text = p
On Error Resume Next
Data1.Recordset.OpenRecordset
Data1.Recordset.MoveLast
Text16.Text = Data1.Recordset.RecordCount
zzr = Text4.Text - 1
a1 = 0 + p
a2 = 25 + p

For v = a1 To a2
On Error Resume Next
Data1.Recordset.OpenRecordset
Data1.Recordset.MoveFirst
Data1.Recordset.Move (v)

i = Data1.Recordset.Fields!no
If i = v Then
Label3(v).Visible = True
Label4(v).Visible = True
Label3(v).Caption = Data1.Recordset.Fields!a
Label4(v).Caption = Data1.Recordset.Fields!b
Text2(v).Text = Data1.Recordset.Fields!a
Text3(v).Text = Data1.Recordset.Fields!b
Command2(v).Visible = True
Command3(v).Visible = True
e = e + 1
End If
If e = 26 Then
Command5.Visible = True
Command6.Visible = False
End If
Next v
الرد }}}}
تم الشكر بواسطة:
#3
السلام عليكم

- إذا كنت تريد إظهار التكست الذي تريد وضع فيه القيمه فقط والباقيه تكون مخفيه , فأستعمل الكود التالي :

كود :
Dim I as Integer

For I = 0 To 100
Text1(I).Visible = False
Next

Text1(Val(Text2.Text)).Visible = True
Text1(Val(Text2.Text)).Text = "12000"

- أما إذا أردت وضع القيمة مباشرة من غير إخفاء أو إظهار للتكستات , فهذا يكفي :

كود :
Text1(Val(Text2.Text)).Text = "12000"

- تحياتي .
الرد }}}}
تم الشكر بواسطة:
#4
يعني هنا ضمن الفور يوجد تعامل مع قاعدة البيانات و مع مصفوفات العناصر
الرد }}}}
تم الشكر بواسطة:
#5
VB_Coder كتب :السلام عليكم

- إذا كنت تريد إظهار التكست الذي تريد وضع فيه القيمه فقط والباقيه تكون مخفيه , فأستعمل الكود التالي :

كود :
Dim I as Integer

For I = 0 To 100
Text1(I).Visible = False
Next

Text1(Val(Text2.Text)).Visible = True
Text1(Val(Text2.Text)).Text = "12000"

- أما إذا أردت وضع القيمة مباشرة من غير إخفاء أو إظهار للتكستات , فهذا يكفي :

كود :
Text1(Val(Text2.Text)).Text = "12000"

- تحياتي .

اذا ما قمنا داخل الفور بقراءة قاعدة بيانات

فكانه لم يتعرف على قيمة الاندكس و هي Val(Text2.Text) في مثالك
الرد }}}}
تم الشكر بواسطة:
#6
السلام عليكم

- مالذي تريده بالضبط ، أو ماهي فكرة الكود لكي نعرف ماذا تريد ، ممكن نعطيك كود أفضل أو مختصر .
- تحياتي .
الرد }}}}
تم الشكر بواسطة:
#7
VB_Coder كتب :السلام عليكم

- مالذي تريده بالضبط ، أو ماهي فكرة الكود لكي نعرف ماذا تريد ، ممكن نعطيك كود أفضل أو مختصر .
- تحياتي .


هذه هي فكرة الكود
كود :
a1=0
a2=25

For v = a1 To a2
On Error Resume Next
Data1.Recordset.OpenRecordset
Data1.Recordset.MoveFirst
Data1.Recordset.Move (v)

i = Data1.Recordset.Fields!no
If i = v Then
Label3(v).Visible = True
Label4(v).Visible = True
Label3(v).Caption = Data1.Recordset.Fields!a
Label4(v).Caption = Data1.Recordset.Fields!b
Text2(v).Text = Data1.Recordset.Fields!a
Text3(v).Text = Data1.Recordset.Fields!b
Command2(v).Visible = True
Command3(v).Visible = True
e = e + 1
End If
If e = 26 Then
Command5.Visible = True
Command6.Visible = False
End If
Next v

و هذا الكود ينفذ بشكل خاطئ

شرحه انه 26 مرة افتح قاعدة بيانات و انتقل الى رقم السجل الذي يمثله v في كل مرة

ثم اخذ البيانات المطلوبة و عمل التالي :

كود :
Label3(v).Visible = True
Label4(v).Visible = True
Label3(v).Caption = Data1.Recordset.Fields!a
Label4(v).Caption = Data1.Recordset.Fields!b
Text2(v).Text = Data1.Recordset.Fields!a
Text3(v).Text = Data1.Recordset.Fields!b
Command2(v).Visible = True
Command3(v).Visible = True
الرد }}}}
تم الشكر بواسطة:
#8
آسف أتعبتكم معي و قد وجدت الحل و هو تغيير اول شرط و استبداله ب

If Data1.Recordset.EOF Then
Exit For
Else
الرد }}}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم