กระทู้เก่าบอร์ด อ.Yeadram
1,301 7
URL.หัวข้อ /
URL
สอบถาม รันเลขแบบง่ายๆค่ะ
คือหนูมี พอร์มหลัก และพอร์มย่อยแบบ Datasheet ค่ะ
และหนูสร้าง Text1 ว่างๆไว้ในพอร์มย่อยแบบ Datasheet
เพื่อที่หนูต้องการ รันเลขให้ผู้ใช้งานดูว่ามีกี่ตัว เช่นมี 3 แถว ก็จะเป็น 1,2,3 เป็นต้นค่ะ
โดย Text 1 นี้หนูไม่เก็บค่าไดๆค่ะ ไว้ รันเลขให้รู้ว่ามีกี่ตัวนับให้ผู้ใช้ดูค่ะ
หนูต้องเขียนอย่างไรค่ะ หนูดูตัวอย่างพี่ๆแล้วมีแต่คนมาถามเกี่ยวกับเงื่อนไขทั้งนั้นเลย
คือหนูทำตอนที่กำลังจะสั่งพิมพ์ได้ แต่ในพอร์มนึกไม่ออกจิงๆค่ะ
ช่วยรบกวนหน่อยนะค่ะ
ขอบคุณค่ะ
และหนูสร้าง Text1 ว่างๆไว้ในพอร์มย่อยแบบ Datasheet
เพื่อที่หนูต้องการ รันเลขให้ผู้ใช้งานดูว่ามีกี่ตัว เช่นมี 3 แถว ก็จะเป็น 1,2,3 เป็นต้นค่ะ
โดย Text 1 นี้หนูไม่เก็บค่าไดๆค่ะ ไว้ รันเลขให้รู้ว่ามีกี่ตัวนับให้ผู้ใช้ดูค่ะ
หนูต้องเขียนอย่างไรค่ะ หนูดูตัวอย่างพี่ๆแล้วมีแต่คนมาถามเกี่ยวกับเงื่อนไขทั้งนั้นเลย
คือหนูทำตอนที่กำลังจะสั่งพิมพ์ได้ แต่ในพอร์มนึกไม่ออกจิงๆค่ะ
ช่วยรบกวนหน่อยนะค่ะ
ขอบคุณค่ะ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R16672
หนูเข้าไปเจอฟังก์ชั่นมาค่ะ
Public Function Rec2(A As Variant) As Variant
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
If rst.RecordCount > 0 Then
rst.MoveLast
rst.MoveFirst
Else: Exit Function
End If
Do Until rst.EOF
If rst!A_NO = A Then
Rec2 = rst.AbsolutePosition + 1
Exit Function
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
If Me.NewRecord Then GoTo Rec2_Exit
Rec2_Exit:
On Error Resume Next
rst.Close: Set rst = Nothing
End Function
ถามว่าใช้ได้หรือไม่ ใช้ได้ค่ะ แต่มันทำงานช้ามาก คือถ้ามีจำนวนมากกว่า 10 แถว
มันจะช้ามากต้องเอา Mouse ชี้ผ่านText1 มันถึงจะทะงานทันทีค่ะ
มีวิธีที่เขียนง่ายๆกว่านี้หรือไม่ค่ะ
คือความเข้าใจหนูว่าน่าจะมีวิธีที่รันง่ายๆกว่านี้ค่ะ แต่ดู Code ด้านบนโอ่โห
อาจารย์มีวิธีเขียนง่ายๆหรือไม่ค่ะ
ขอบคุณค่ะ
Public Function Rec2(A As Variant) As Variant
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
If rst.RecordCount > 0 Then
rst.MoveLast
rst.MoveFirst
Else: Exit Function
End If
Do Until rst.EOF
If rst!A_NO = A Then
Rec2 = rst.AbsolutePosition + 1
Exit Function
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
If Me.NewRecord Then GoTo Rec2_Exit
Rec2_Exit:
On Error Resume Next
rst.Close: Set rst = Nothing
End Function
ถามว่าใช้ได้หรือไม่ ใช้ได้ค่ะ แต่มันทำงานช้ามาก คือถ้ามีจำนวนมากกว่า 10 แถว
มันจะช้ามากต้องเอา Mouse ชี้ผ่านText1 มันถึงจะทะงานทันทีค่ะ
มีวิธีที่เขียนง่ายๆกว่านี้หรือไม่ค่ะ
คือความเข้าใจหนูว่าน่าจะมีวิธีที่รันง่ายๆกว่านี้ค่ะ แต่ดู Code ด้านบนโอ่โห
อาจารย์มีวิธีเขียนง่ายๆหรือไม่ค่ะ
ขอบคุณค่ะ
3 @R16673
อาจารย์ช่วยตอบหนูหน่อยค่ะ ให้กำลังใจก็ยังดี แง้ๆๆ
บ้านหนูไม่มีเนตค่ะ หนูต้องมาเล่นที่ร้าน ช่วยทำหรือแนะนำก็ได้ค่ะ
ที่ร้านก็มีแต่ผู้ชาย เสียงดัังโวยวาย ช่วยหนูทำหน่อยนะค่ะ
ขอบมากคุณค่ะอาจารย์
บ้านหนูไม่มีเนตค่ะ หนูต้องมาเล่นที่ร้าน ช่วยทำหรือแนะนำก็ได้ค่ะ
ที่ร้านก็มีแต่ผู้ชาย เสียงดัังโวยวาย ช่วยหนูทำหน่อยนะค่ะ
ขอบมากคุณค่ะอาจารย์
4 @R16674
ลองค้นหาคำว่า Running Number หรือ Running Sum ในกระทู้เก่าดูครับ
5 @R16675
Public Function Rec2(A As Variant) As Variant
Dim rst As DAO.Recordset
If Me.NewRecord Then exit function
Set rst = Me.RecordsetClone
rst.findfirst "A_NO = " & A
if not rst.nomatch then Rec2 = rst.AbsolutePosition + 1
rst.close
set rst = Nothing
End Function
Dim rst As DAO.Recordset
If Me.NewRecord Then exit function
Set rst = Me.RecordsetClone
rst.findfirst "A_NO = " & A
if not rst.nomatch then Rec2 = rst.AbsolutePosition + 1
rst.close
set rst = Nothing
End Function
6 @R16686
ขอขอบคุณทุกท่านค่ะลืม มั่วแต่รีบไปทำต่อค่ะ
ได้แล้วค่ะตาม อาจารย์ . ค่ะ
แต่ยังไม่รู้ว่า Reccord เกิน100 แล้วมันจะช้าหรือเปล่าค่ะ
ขอบคุณค่ะ
ได้แล้วค่ะตาม อาจารย์ . ค่ะ
แต่ยังไม่รู้ว่า Reccord เกิน100 แล้วมันจะช้าหรือเปล่าค่ะ
ขอบคุณค่ะ
7 @R16687
ช้าลงแน่นอนแต่แค่ไหนไม่รู้ อีกวิธีก็ต้องสร้างฟิลด์เก็บเลขรันในเทเบิลไปเลย แล้วตอนจะแสดง ก็ค่อยใส่ค่าลงในฟิลด์
Time: 0.2394s
มือใหม่แกะกล่องค่ะ ก็คอยอ่านๆที่พี่ๆเค้าถามๆอาจาร์กัน ฮ่าฮ่าฮ่า
หนูก็มีพิวส์ ID เป็น AutoRun นะค่ะ มีตารางชื่อ TB1 ค่ะ
ขอบคุณค่ะ