กระทู้เก่าบอร์ด อ.Yeadram
1,246 3
URL.หัวข้อ /
URL
ช่วยลดขนาดคำสั่งด้วยครับ
คือเป็นคำสั่งที่ ให้นำวันที่จากเริ่ม จนจบไป ลงในช่องวันของแต่ละเดือน แต่เขียนแบบย่อกว่านี้ไม่เป็นครับ
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim I As Integer
a = S1.Value
b = S2.Value + 1
c = b - a
d = S3.Value
e = S4.Value
If d = e And d = 1 Then
For I = 1 To c
Form_1.Controls("C" & a).Value = True
Form_1.Controls("L" & a).BackStyle = 1
Form_1.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 2 Then
For I = 1 To c
Form_2.Controls("C" & a).Value = True
Form_2.Controls("L" & a).BackStyle = 1
Form_2.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 3 Then
For I = 1 To c
Form_3.Controls("C" & a).Value = True
Form_3.Controls("L" & a).BackStyle = 1
Form_3.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 4 Then
For I = 1 To c
Form_4.Controls("C" & a).Value = True
Form_4.Controls("L" & a).BackStyle = 1
Form_4.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 5 Then
For I = 1 To c
Form_5.Controls("C" & a).Value = True
Form_5.Controls("L" & a).BackStyle = 1
Form_5.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 6 Then
For I = 1 To c
Form_6.Controls("C" & a).Value = True
Form_6.Controls("L" & a).BackStyle = 1
Form_6.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 7 Then
For I = 1 To c
Form_7.Controls("C" & a).Value = True
Form_7.Controls("L" & a).BackStyle = 1
Form_7.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 8 Then
For I = 1 To c
Form_8.Controls("C" & a).Value = True
Form_8.Controls("L" & a).BackStyle = 1
Form_8.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 9 Then
For I = 1 To c
Form_9.Controls("C" & a).Value = True
Form_9.Controls("L" & a).BackStyle = 1
Form_9.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 10 Then
For I = 1 To c
Form_10.Controls("C" & a).Value = True
Form_10.Controls("L" & a).BackStyle = 1
Form_10.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 11 Then
For I = 1 To c
Form_11.Controls("C" & a).Value = True
Form_11.Controls("L" & a).BackStyle = 1
Form_11.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 12 Then
For I = 1 To c
Form_12.Controls("C" & a).Value = True
Form_12.Controls("L" & a).BackStyle = 1
Form_12.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
End If
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim I As Integer
a = S1.Value
b = S2.Value + 1
c = b - a
d = S3.Value
e = S4.Value
If d = e And d = 1 Then
For I = 1 To c
Form_1.Controls("C" & a).Value = True
Form_1.Controls("L" & a).BackStyle = 1
Form_1.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 2 Then
For I = 1 To c
Form_2.Controls("C" & a).Value = True
Form_2.Controls("L" & a).BackStyle = 1
Form_2.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 3 Then
For I = 1 To c
Form_3.Controls("C" & a).Value = True
Form_3.Controls("L" & a).BackStyle = 1
Form_3.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 4 Then
For I = 1 To c
Form_4.Controls("C" & a).Value = True
Form_4.Controls("L" & a).BackStyle = 1
Form_4.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 5 Then
For I = 1 To c
Form_5.Controls("C" & a).Value = True
Form_5.Controls("L" & a).BackStyle = 1
Form_5.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 6 Then
For I = 1 To c
Form_6.Controls("C" & a).Value = True
Form_6.Controls("L" & a).BackStyle = 1
Form_6.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 7 Then
For I = 1 To c
Form_7.Controls("C" & a).Value = True
Form_7.Controls("L" & a).BackStyle = 1
Form_7.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 8 Then
For I = 1 To c
Form_8.Controls("C" & a).Value = True
Form_8.Controls("L" & a).BackStyle = 1
Form_8.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 9 Then
For I = 1 To c
Form_9.Controls("C" & a).Value = True
Form_9.Controls("L" & a).BackStyle = 1
Form_9.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 10 Then
For I = 1 To c
Form_10.Controls("C" & a).Value = True
Form_10.Controls("L" & a).BackStyle = 1
Form_10.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 11 Then
For I = 1 To c
Form_11.Controls("C" & a).Value = True
Form_11.Controls("L" & a).BackStyle = 1
Form_11.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
ElseIf d = 12 Then
For I = 1 To c
Form_12.Controls("C" & a).Value = True
Form_12.Controls("L" & a).BackStyle = 1
Form_12.Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
End If
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R14974
ขอบคุณ TTT ครับ
มีปัญหาที่การอ้างชื่อฟอร์มครับไม่ทราบต้องแก้ยังไง
debug ที่ Forms("Form_" & d)("C" & a).Value = True
run-time error '2450' microsoft office access can't find the form 'Form_1' referred to in a macro expression or Visual Basic code.
มีปัญหาที่การอ้างชื่อฟอร์มครับไม่ทราบต้องแก้ยังไง
debug ที่ Forms("Form_" & d)("C" & a).Value = True
run-time error '2450' microsoft office access can't find the form 'Form_1' referred to in a macro expression or Visual Basic code.
3 @R14975
ที่จริงแล้วคุณตั้งชื่อ Form ไว้อย่างไรครับ
ใช่ Form 1 (มี space) หรือเปล่า?
ถ้าใช่ ให้แก้เป็น
Forms("Form " & d) แทนนะครับ
ใช่ Form 1 (มี space) หรือเปล่า?
ถ้าใช่ ให้แก้เป็น
Forms("Form " & d) แทนนะครับ
Time: 0.3182s
ตัวอย่าง Forms("ชื่อฟอร์ม")
For I = 1 To c
Forms("Form_" & d).Controls("C" & a).Value = True
Forms("Form_" & d).Controls("L" & a).BackStyle = 1
Forms("Form_" & d).Controls("L" & a).BackColor = 5026082
a = a + 1
Next I
หรือ Forms("ชื่อฟอร์ม")("ชื่อคอนโทรล") ก็พอ
For I = 1 To c
Forms("Form_" & d)("C" & a).Value = True
Forms("Form_" & d)("L" & a).BackStyle = 1
Forms("Form_" & d)("L" & a).BackColor = 5026082
a = a + 1
Next I
คุณจะได้ชื่อฟอร์ม Form_1,2,3... ตามค่าตัวแปร d โดยไม่ต้องเขียนตัวเลข และไม่ต้องใช้เงื่อนไข ElseIf
ประมาณนี้ ลองปรับใช้ดูครับ