กระทู้เก่าบอร์ด อ.Yeadram
2,275 7
URL.หัวข้อ /
URL
code ใน report
ในฐานข้อมูลมี ตารางเช่น tbl101 มี
field 102 เป็นคำนำหน้าชื่อ มีค่าเป็น 1, 2, 3, ( แทน นาย นาง นางสาว)
field 103 เป็นชื่อตัว
field 104 เป็นนามสกุล
field 105 เป็นตำแหน่ง มีค่าเป็น 1, 2, 3, 4, (แทน พลเรือน,ตำรวจ,ทหาร,ชาวบ้าน,)
เวลาเราออกรายงานต้องการให้ code มาเป็น นาย ,นาง,นางสาว และตำแหน่งแทนค่าตัวเลข..นะครับ
ผมเขียนลงใน report อย่างนี้นะครับ ในส่วนของ Detail
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([standard_position]) = 1 Then
Text103 = "ตำรวจ¹"
ElseIf Trim([title_id]) = 2 Then
Text103 = "ทหาร"
ElseIf Trim([title_id]) = 3 Then
Text103 = "พลเรือน"
ElseIf Trim([title_id]) = 4 Then
Text103 = "ชาวบ้าน"
Else
End If
End Sub
ปรากฎว่า พำยนพะ แสดงตามที่เราต้องการ..
แต่ผมไม่สามารถเขียน Code เพื่อแสดงคำนำหน้าชื่อได้
ขอท่านผู้รู้ช่วยด้วยครับ...ขอบคุณมากนะครับ
field 102 เป็นคำนำหน้าชื่อ มีค่าเป็น 1, 2, 3, ( แทน นาย นาง นางสาว)
field 103 เป็นชื่อตัว
field 104 เป็นนามสกุล
field 105 เป็นตำแหน่ง มีค่าเป็น 1, 2, 3, 4, (แทน พลเรือน,ตำรวจ,ทหาร,ชาวบ้าน,)
เวลาเราออกรายงานต้องการให้ code มาเป็น นาย ,นาง,นางสาว และตำแหน่งแทนค่าตัวเลข..นะครับ
ผมเขียนลงใน report อย่างนี้นะครับ ในส่วนของ Detail
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([standard_position]) = 1 Then
Text103 = "ตำรวจ¹"
ElseIf Trim([title_id]) = 2 Then
Text103 = "ทหาร"
ElseIf Trim([title_id]) = 3 Then
Text103 = "พลเรือน"
ElseIf Trim([title_id]) = 4 Then
Text103 = "ชาวบ้าน"
Else
End If
End Sub
ปรากฎว่า พำยนพะ แสดงตามที่เราต้องการ..
แต่ผมไม่สามารถเขียน Code เพื่อแสดงคำนำหน้าชื่อได้
ขอท่านผู้รู้ช่วยด้วยครับ...ขอบคุณมากนะครับ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R05580
ขอบคุณครับ..yeadram
คือผมไม่ค่อยแน่นเรื่อง access เท่าไรครับ
คือเขียนหยั่งงี้..มัน ok
คือผมไม่ค่อยแน่นเรื่อง access เท่าไรครับ
คือเขียนหยั่งงี้..มัน ok
3 @R05581
ในส่วนของ detail นะครับ
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([standard_position]) = 1 Then
Text103 = "ตำรวจ¹"
ElseIf Trim([title_id]) = 2 Then
Text103 = "ทหาร"
ElseIf Trim([title_id]) = 3 Then
Text103 = "พลเรือน"
ElseIf Trim([title_id]) = 4 Then
Text103 = "ชาวบ้าน"
Else
End If
End Sub
access แสดงค่าที่เราต้องการครับ
แต่พอเราเพิ่ม โค๊ด เข้าไปอย่างนี้..มันไม่ OK นะ
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([standard_position]) = 1 Then
Text103 = "ตำรวจ¹"
ElseIf Trim([title_id]) = 2 Then
Text103 = "ทหาร"
ElseIf Trim([title_id]) = 3 Then
Text103 = "พลเรือน"
ElseIf Trim([title_id]) = 4 Then
Text103 = "ชาวบ้าน"
Else
End If
End Sub
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([title_id]) = 1 Then
Text102 = " นาย"
ElseIf Trim([title_id]) = 2 Then
Text102 = "นาง"
ElseIf Trim([title_id]) = 3 Then
Text102 = "นางสาว"
Else
End If
มันแสดงข้อความดังนี้ครับ
Ambiguous name detected : detail _format
ขอบคุณที่กรุณาครับ
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([standard_position]) = 1 Then
Text103 = "ตำรวจ¹"
ElseIf Trim([title_id]) = 2 Then
Text103 = "ทหาร"
ElseIf Trim([title_id]) = 3 Then
Text103 = "พลเรือน"
ElseIf Trim([title_id]) = 4 Then
Text103 = "ชาวบ้าน"
Else
End If
End Sub
access แสดงค่าที่เราต้องการครับ
แต่พอเราเพิ่ม โค๊ด เข้าไปอย่างนี้..มันไม่ OK นะ
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([standard_position]) = 1 Then
Text103 = "ตำรวจ¹"
ElseIf Trim([title_id]) = 2 Then
Text103 = "ทหาร"
ElseIf Trim([title_id]) = 3 Then
Text103 = "พลเรือน"
ElseIf Trim([title_id]) = 4 Then
Text103 = "ชาวบ้าน"
Else
End If
End Sub
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Trim([title_id]) = 1 Then
Text102 = " นาย"
ElseIf Trim([title_id]) = 2 Then
Text102 = "นาง"
ElseIf Trim([title_id]) = 3 Then
Text102 = "นางสาว"
Else
End If
มันแสดงข้อความดังนี้ครับ
Ambiguous name detected : detail _format
ขอบคุณที่กรุณาครับ
4 @R05583
ใช้ choose เป็นไหม?
ใช้ choose จะง่ายกว่านะ
เช่น
=choose("นาย","นาง","นางสาว")
ใช้ choose จะง่ายกว่านะ
เช่น
=choose("นาย","นาง","นางสาว")
5 @R05584
เอาทั้งสองงานไว้ใน โปรแกรมย่อยเดียวกันเลยครับ ไม่ต้องเปิดหัวใหม่
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If................... งานสำหรับ field105
........
.......
end if
if .............. งานสำหรับ filed102
........
.......
end if
End sub
เราสามารถใส่งานหลายๆ งานใน Sub หรือ Function (โปรแกรมย่อย) เดียวกันได้ครับ เปิดหัวครั้งเดียว แล้วปิดครั้งเดียวครับ อย่าเปิดซ้ำกันหลายตัวด้วยชื่อเดียวกัน ถ้าเราคิดว่าจะให้สองงาน หรือสามงานหรือ 7-8งาน ทำงานพร้อมกันในเหตุการณ์เดียวกัน ก็จับทั้งหมดใส่รวมกันไปในโปรแกรมย่อยเดียวกันได้เลยครับ
หลักการนี้เป็นพื้นฐานกับทุกๆ ภาษาที่ใช้เขียนโปรแกรมนะครับ ไม่ว่าจะเขียนด้วย VB, VBA, PHP,.Net, Java ฯลฯ
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If................... งานสำหรับ field105
........
.......
end if
if .............. งานสำหรับ filed102
........
.......
end if
End sub
เราสามารถใส่งานหลายๆ งานใน Sub หรือ Function (โปรแกรมย่อย) เดียวกันได้ครับ เปิดหัวครั้งเดียว แล้วปิดครั้งเดียวครับ อย่าเปิดซ้ำกันหลายตัวด้วยชื่อเดียวกัน ถ้าเราคิดว่าจะให้สองงาน หรือสามงานหรือ 7-8งาน ทำงานพร้อมกันในเหตุการณ์เดียวกัน ก็จับทั้งหมดใส่รวมกันไปในโปรแกรมย่อยเดียวกันได้เลยครับ
หลักการนี้เป็นพื้นฐานกับทุกๆ ภาษาที่ใช้เขียนโปรแกรมนะครับ ไม่ว่าจะเขียนด้วย VB, VBA, PHP,.Net, Java ฯลฯ
6 @R05585
เพิ่มเติม เทคนิคครับ
การที่เราใส่หลายๆ งานไว้ในที่เดียวกัน หากต้องการแยกแยะให้ดูง่าย อ่านง่ายหรือเพื่อความสะดวกในการแก้ไขดัดแปลงในภายหลังเราก็ควรใส่บรรทัดคอมเมนต์เอาไว้แยกงานออกเป็นสัดส่วนกัน เช่น
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
'----------เริ่มงานสำหรับ 105 --------------
select case Trim([standard_position])
case 1
Text103 = "ตำรวจ¹"
case 2
Text103 = "ทหาร"
End select
' --------------- จบงาน 105 ---------------
'----------เริ่มงานสำหรับ 102 --------------
select case Trim([title_id])
case 1
Text102 = " นาย"
case 2
Text102 = " นาย"
CaseElse
Text102 = ""
end select
' --------------- จบงาน 102 ---------------
End sub
การที่เราใส่หลายๆ งานไว้ในที่เดียวกัน หากต้องการแยกแยะให้ดูง่าย อ่านง่ายหรือเพื่อความสะดวกในการแก้ไขดัดแปลงในภายหลังเราก็ควรใส่บรรทัดคอมเมนต์เอาไว้แยกงานออกเป็นสัดส่วนกัน เช่น
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
'----------เริ่มงานสำหรับ 105 --------------
select case Trim([standard_position])
case 1
Text103 = "ตำรวจ¹"
case 2
Text103 = "ทหาร"
End select
' --------------- จบงาน 105 ---------------
'----------เริ่มงานสำหรับ 102 --------------
select case Trim([title_id])
case 1
Text102 = " นาย"
case 2
Text102 = " นาย"
CaseElse
Text102 = ""
end select
' --------------- จบงาน 102 ---------------
End sub
7 @R05586
ขอบคุณมากเลย..ท่าน...ชอบใช้ Fuction
ไม่ได้ใช้ access มานาน ตั้งแต่รุ่น 97
มันมี function นี้ เมื่อไรครับ..
ไม่ได้ใช้ access มานาน ตั้งแต่รุ่น 97
มันมี function นี้ เมื่อไรครับ..
Time: 0.4072s
field102 ก็สามารถใช้โค้ดชุดนี้ดัดแปลงเปลี่ยนคำได้เช่นกัน (ตามหลักการนะ)
ยกเว้นว่าคุณเปลี่ยนคำผิด หรือเลือกใช้ชนิดข้อมูลไม่เหมาะสม หรือการวางคำสั่งไม่เหมาะสมกับเหตุการณ์ มีการขัดแย้งลำดับงาน
หรือ มี error ใดๆ แจ้งเหตุ แต่คุณไม่ได้นำมาเล่า เราเลยเดาไม่ได้ครับ
เมื่อไม่รู้สาเหตุที่แท้จริง ย่อมแก้ปัญหาไม่ถูกจุด