379
ห้อง MS Access / : ลบไฟล์ที่เลือก
« เมื่อ: 27 ส.ค. 61 , 13:17:51 »
รายละเอียดเพิ่มเติมด้วยครับ ไดอะล็อกบ๊อกซ์มาจากไหน เกี่ยวกับอะไร โค้ดที่ใช้คืออะไร และลบไฟล์ ณ ขั้นตอนไหน ลบในตัวไดอะล็อกบ๊อกซ์เองเลย หรือมาลบที่ไหน
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
DoCmd.SetWarnings False
On Error Resume Next
DoCmd.RunSQL "insert into Tbl_A select * from Tbl_A in 'C:\Sample.mde'"
If Err.Number = 0 Then
DoCmd.RunSQL "insert into Tbl_B select * from Tbl_B in 'C:\Sample.mde'"
DoCmd.RunSQL "insert into Tbl_C select * from Tbl_C in 'C:\Sample.mde'"
DoCmd.RunSQL "insert into Tbl_D select * from Tbl_D in 'C:\Sample.mde'"
DoCmd.RunSQL "insert into Tbl_E select * from Tbl_E in 'C:\Sample.mde'"
DoCmd.RunSQL "insert into Tbl_F select * from Tbl_F in 'C:\Sample.mde'"
End If
DoCmd.SetWarnings True
On Error GoTo 0
Option Compare Database
Option Explicit
Type RecordStructure ' โครงสร้างของ Recordset Object
RSField1 As Variant
RSField2 As Variant
End Type
Dim Ptr As Integer ' เก็บตำแหน่งเรคอร์ดปัจจุบันของ Recordset นี้
Dim RC() As RecordStructure ' ตัวแปร Recordset Object
Private Sub Class_Initialize()
' Procedure จะทำงานโดยอัตโนมัติเมื่อ object ถูกสร้าง
' ตย.โค้ดเช่น เพิ่ม object นี้ลงใน Recordsets Collection (Collection คือ อ็อปเจ็คของกลุ่ม Object อีกที)
End Sub
Private Sub Class_Terminate()
' Procedure จะทำงานโดยอัตโนมัติเมื่อ object ถูกเคลียร์ให้เป็น Nothing
' ตย.โค้ดเช่น นำ object นี้ ออกจาก Recordsets Collection
End Sub
Public Property Let Bookmark(NewPosition As Integer)
' กำหนดตำแหน่งเรคอร์ดปัจจุบันของ Recordset
If NewPosition <= UBound(RC) Then
Ptr = NewPosition
Else
Err.Raise 1234, "Invalid Bookmark"
End If
End Property
Public Property Get RecordCount() As Long
' คืนค่าจำนวนเรคอร์ดทั้งหมดใน Recordset
RecordCount = UBound(RC)
End Property
Public Property Get Fields(Name As String) As Variant
' คืนค่าฟิลด์ตามชื่อฟิลด์ที่ส่งมาในตัวแปร Name
Select Case Name
Case "CustomerID"
Fields = RC(Ptr).RSField1
Case "CustomerName"
Fields = RC(Ptr).RSField2
Case Else
Err.Raise 2589, "Invalid Field Name"
End Select
End Property
Public Property Get EOF() As Boolean
' คืนค่า True เมื่อตำแหน่งเรคอร์ดปัจจุบันเลยเรคอร์ดสุดท้ายไปแล้ว
If Ptr > UBound(RC) Then
EOF = True
Else
EOF = False
End If
End Property
Public Sub MoveNext()
' เลื่อนไปยังเรคอร์ดถัดไปใน Recordset
If Ptr <= UBound(RC) Then
Ptr = Ptr + 1
Else
Err.Raise 7654, "End of file"
End If
End Sub
Private Sub Example()
' โค้ดพิมพ์ CustomerID และ CustomerName จากเทเบิล Customer ตั้งแต่เรคอร์ดที่ 10 เป็นต้นไป
Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("Customer")
' เมื่อ Object ถูกสร้าง จะไปเรียก Class_Initialize procedure มาทำงาน
If RS.RecordCount > 10 Then ' โค้ดใน Property Get RecordCount จะถูกทำงาน
RS.Bookmark = 10 ' โค้ดใน Property Let Bookmark จะถูกทำงาน เป็นการนำค่าเข้าไปใน Property Bookmark
End If
Do Until RS.EOF ' โค้ดใน Property Get EOF จะถูกทำงาน
Debug.Print RS.Fields("CustomerID") & ";" _
& RS.Fields("CustomerName") ' โค้ดใน Property Get Fields จะถูกทำงาน
RS.MoveNext ' โค้ดใน Sub MoveNext จะถูกทำงาน
Loop
Set RS = Nothing
' เมื่อ Object ถูกเคลียร์ จะไปเรียกโค้ดใน Class_Initialize procedure มาทำงาน
End Sub