กระทู้เก่าบอร์ด อ.Yeadram
1,327 4
URL.หัวข้อ /
URL
เรื่องการเปิด back-forward form
สวัสดีครับอาจารย์
ขอรบครับผม
ใน Access สามารถทำได้เหมือน กับ Internet Explorer หรือเปล่าครับ
คือเปิดฟอร์มขึ้นมา ก็จะมีปุ่ม back---forward
ถ้ามีฟอร์มที่เปิดแล้วปุ่ม back ก็จะแสดงสถานะให้ย้อนกลับได้
ถ้าไม่มีฟอร์มที่เปิดก่อนหน้านนี้แล้วก็จะแสดงสถานะไม่ทำงาน
ปุ่ม forward ก็เหมือนกันครับผม
เรียนด้วยความเคารพครับ
ขอรบครับผม
ใน Access สามารถทำได้เหมือน กับ Internet Explorer หรือเปล่าครับ
คือเปิดฟอร์มขึ้นมา ก็จะมีปุ่ม back---forward
ถ้ามีฟอร์มที่เปิดแล้วปุ่ม back ก็จะแสดงสถานะให้ย้อนกลับได้
ถ้าไม่มีฟอร์มที่เปิดก่อนหน้านนี้แล้วก็จะแสดงสถานะไม่ทำงาน
ปุ่ม forward ก็เหมือนกันครับผม
เรียนด้วยความเคารพครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R09984
- คุณจะเห็นว่าปุ่มคำสั่ง มันเริ่มใช้งานได้ ก็ต่อเมื่อมีการเปิดฟอร์ม ที่สอง เป็นต้นไป (ในแต่ละครั้งที่เปิดโปรแกรม)
- คุณอาจต้องไปปรับแต่งเพิ่มเติม เพื่อให้เข้ากับงานของคุณ หรือเพื่อให้เหมาะสมกับความต้องการ
- โค้ดทั้งหมดใช้เวลาเขียน ทดสอบ แก้ไข แก้บัก อยู่ประมาณ 2 วัน (ในเวลาว่าง) พร้อมทั้งไล่ฆ่า Spam post ไปในเวลาเดียวกัน ทั้งมันส์ ทั้งเหนื่อย อิอิ
ขอให้สนุกกับการประยุกต์ใช้นะครับ
- คุณอาจต้องไปปรับแต่งเพิ่มเติม เพื่อให้เข้ากับงานของคุณ หรือเพื่อให้เหมาะสมกับความต้องการ
- โค้ดทั้งหมดใช้เวลาเขียน ทดสอบ แก้ไข แก้บัก อยู่ประมาณ 2 วัน (ในเวลาว่าง) พร้อมทั้งไล่ฆ่า Spam post ไปในเวลาเดียวกัน ทั้งมันส์ ทั้งเหนื่อย อิอิ
ขอให้สนุกกับการประยุกต์ใช้นะครับ
3 @R10046
ขอบพระคุณเป็นอย่างมากครับอาจารย์
ทุ่มเทมาเลยครับน่าถือจริงๆครับ
ผมจะนำไปใช้ให้เกิดประโยชน์ให้มากที่สุดครับผม
และพยามจะเผยแพร่ความรู้ให้คนอื่นแบบไม่ปิดบังเลยครับ
เพื่อเป็นวิทยาทานครับ
ทุ่มเทมาเลยครับน่าถือจริงๆครับ
ผมจะนำไปใช้ให้เกิดประโยชน์ให้มากที่สุดครับผม
และพยามจะเผยแพร่ความรู้ให้คนอื่นแบบไม่ปิดบังเลยครับ
เพื่อเป็นวิทยาทานครับ
4 @R10047
เรียนอาจารย์ครับ
ผมส่งตัวอย่างให้ดูแล้วนะครับ
accboard@gmail.com
ครับผม
ผมส่งตัวอย่างให้ดูแล้วนะครับ
accboard@gmail.com
ครับผม
Time: 0.3394s
-ฟอร์มทุกฟอร์มที่ต้องการให้มีระบบนี้ ต้องมีปุ่มคำสั่งที่เหมือนกัน ทั้งชื่อและโค้ดในเหตุการณ์ อย่างน้อยสองปุ่มคือ cmdBack และ cmdForward
ปุ่ม cmdBack ให้เขียนในพร้อพเพอร์ตี้ เหตุการณ์ onClick ว่า =GoBack()
ปุ่ม cmdForward ให้เขียนว่า =GoForward()
-ฟอร์มทุกฟอร์มที่ต้องการให้มีระบบนี้ ให้เขียนโค้ดหรือ เพิ่มโค้ด หรือ แทรกโค้ด เข้าไปในเหตุการณ์ onCurrent ดังนี้
fnBckFwd Me.Name, Me.Caption
Me.cmdBack.Enabled = blBack
Me.cmdBack.ControlTipText = stBack
Me.cmdForward.Enabled = blForward
Me.cmdForward.ControlTipText = stForward
-สุดท้าย ให้สร้างโมดูลมาใหม่ 1อัน เอาโค้ดทั้งหมดนี่ ไปวาง
(โปรดสำรวจอีกครั้งให้แน่ใจว่า ชื่อตัวแปรในโค้ดนี้ ชื่อฟังก์ชั่นในโค้ดนี้ ไม่ได้ซ้ำกับชื่อใดๆ ในโปรเจคคุณ)
Option Compare Database
Public BckFwd() As String
Public blBack As Integer
Public blForward As Integer
Public stBack As String
Public stForward As String
Public Function Goback()
For i = UBound(BckFwd, 2) - 1 To 0 Step -1
If stBack = BckFwd(1, i) Then
DoCmd.OpenForm BckFwd(0, i)
DoCmd.Close acForm, BckFwd(0, i + 1), acSaveYes
Exit For
End If
Next
End Function
Public Function GoForward()
For i = 1 To UBound(BckFwd, 2)
If stForward = BckFwd(1, i) Then
DoCmd.OpenForm BckFwd(0, i)
DoCmd.Close acForm, BckFwd(0, i - 1), acSaveYes
Exit For
End If
Next
End Function
Public Function fnBckFwd(frmName As String, frmDescription As String)
Dim x, y, z As Integer
If IsEmpty(blBack) Then
blBack = False
stBack = ""
End If
If IsEmpty(blForward) Then
blForward = False
stForward = ""
End If
On Error Resume Next
x = UBound(BckFwd, 2)
If Err.Number = 9 Then
Err.Clear
x = 0
ReDim BckFwd(1, 0)
BckFwd(0, 0) = frmName
BckFwd(1, 0) = frmDescription
Exit Function
End If
On Error GoTo 0
y = 0
For z = 0 To x
If BckFwd(0, z) = frmName Then
y = 1
Exit For
End If
Next
If y = 0 Then
ReDim Preserve BckFwd(1, x + 1)
BckFwd(0, x + 1) = frmName
BckFwd(1, x + 1) = frmDescription
blBack = True
stBack = BckFwd(1, x)
blForward = False
Else
If z > 0 Then
blBack = True
stBack = BckFwd(1, z - 1)
Else
blBack = False
End If
If z < x Then
blForward = True
stForward = BckFwd(1, z + 1)
Else
blForward = False
End If
End If
End Function