วิธีการจำลองแบบแถบความคืบหน้าในแบบฟอร์มโดยไม่ใช้ตัวควบคุม ActiveX ใน Access 2002

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 304581 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

บทความนี้แสดงวิธีการจำลองแบบแถบความคืบหน้าบนแบบฟอร์ม โดยใช้ตัวควบคุมรูปสี่เหลี่ยมในกล่องเครื่องมือในการเข้าถึงของ Microsoft ในตัวอย่างนี้ คุณต้องสร้างฟอร์มที่ใช้ข้อมูลการเข้าถึงวัตถุ (DAO) หรือวัตถุข้อมูล ActiveX ของ Microsoft (ADO) เพื่อที่อ่านข้อมูลในตารางลูกค้า ตามการเข้าถึงแต่ละระเบียนที่อ่าน รหัสในแบบฟอร์มการกรอกข้อมูลหมากอื่นของแถบความคืบหน้า

หมายเหตุ:
: ถ้าคุณตัดสินใจที่จะใช้ ADO อ่านเร็กคอร์ด คุณต้องมีอย่างใดอย่างหนึ่ง Microsoft Data Engine (MSDE) หรือติดตั้ง Microsoft SQL Server นอกจากนี้ คุณต้องมี Northwind หรือ NorthwindCS ที่ติดตั้งอยู่บน MSDE หรือ SQL Server ของคุณ

สร้างฐานข้อมูลของการเข้าถึงใหม่ และนำเข้าตารางลูกค้า

  1. การเริ่มการทำงานการเข้าถึงของ Microsoft
  2. สร้างฐานข้อมูลใหม่ และกำหนดชื่อดังกล่าวProgressbar.
  3. ในการแฟ้ม:เมนู ให้ชี้ไปที่รับข้อมูลจากภายนอกแล้ว คลิกนำเข้า.
  4. ในการนำเข้าค้นหา Northwind.mdb กล่องโต้ตอบ และจากนั้น คลิกนำเข้า.
  5. ในการนำเข้าวัตถุกล่องโต้ตอบ คลิกการลูกค้าตาราง แล้วคลิกตกลง.

สร้างฟอร์ม

  1. เปิดฐานข้อมูล Progressbar ที่คุณสร้างไว้ก่อนหน้านี้
  2. ในการมุมมองเมนู ให้ชี้ไปที่วัตถุฐานข้อมูลแล้ว คลิกแบบฟอร์ม.
  3. คลิกใหม่. ในการฟอร์มใหม่กล่องโต้ตอบกล่อง การตรวจสอบให้แน่ใจว่ามุมมองออกแบบมีเลือก และจากนั้น คลิกตกลง.
  4. เพิ่มวัตถุต่อไปนี้ให้กับฟอร์ม และการตั้งค่าคุณสมบัติต่อไปนี้:
       Form: frmProgressBar
       -------------------------
       Caption: Progress Bar Form
       Width: 6.333"
       General Declarations: 
    Dim lCounter As Long
       OnOpen:
     
    ' Make sure, when the form is initially opened, that the status caption reads READY.
    Me.Status.Caption = "Ready"
       Detail
       ------------
       Height: 1.5"
    
       Label: Status
       ----------------
       Caption: Reading
       Left: 0.0833"
       Top: 0.4167"
       Width: 0.4583"
       Height: 0.1667"
    
       Text Box: CurrentRecordID
       -------------------------
       Left: 0.5833"
       Top: 0.4167"
       Width: 0.9167"
       Height: 0.1667"
    
       Rectangle
       ----------------------
       Name: ProgressBarA
       Left: 0.0833"
       Top: 0.7083"
       Width: 4.7917"
       Height: 0.1667"
       Special Effect: Sunken
    
       Rectangle
       -------------------------
       Name: ProgressBarB
       Left: 0.0833"
       Top: 0.7083"
       Width: 0"
       Height: 0.1458"
       Back Style: Normal
       Back Color: 10040115
       Special Effect: Flat
       Border Style: Transparent
    
       Command Button
       --------------
       Name: Read
       Caption: Read
       Left: 2.9167"
       Top: 0.3333"
       Width: 1.0"
       Height: 0.25"
       OnClick: 
    					

    วิธีการ ado

    ตัวอย่างรหัสนี้ใช้ ADO พิมพ์ หรือวางขั้นตอนต่อไปนี้:
    ' As soon as you click the command button, start reading records.
    ' Because you've started reading records, update the status caption to
    ' READING.
    
    Me.Status.Caption = "Reading"
    
    ' For the currently open form, display a busy/hourglass mouse icon.
    
    Screen.MousePointer = 11
    
    ' Dimension the connection and recordset objects for using ADO.
    
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    
    ' Set the connection properties. 
    ' ==================================================================
    ' BEGIN - Using ADO connection to local table.
    ' ==================================================================
    ' Use Set cn = CurrentProject.Connection to connect to a local table 
    ' using ADO. 
       
    Set cn = CurrentProject.Connection
     
    ' ==================================================================
    ' END - Using ADO connection to local table.
    ' ==================================================================
    
    ' ==================================================================
    ' BEGIN - Using new ADO connection to SQL Server.
    ' ==================================================================
    ' If you want to connect to a SQL Server using ADO, then uncomment these 
    ' lines of code and comment out the "Using ADO connection to local 
    ' table" code above. 
    
    ' With cn
    ' .Provider = "SQLOLEDB"
    
    ' Change the Data Source name to your SQL Server.
    ' The current connection string specifies integrated 
    ' security. You may have to change this.
    '.ConnectionString = "Data Source=TestSQL; Integrated Security=SSPI;Initial Catalog=Northwind"
    
    ' Open the connection.
    '.Open
    'End With
    
    ' ==================================================================
    ' END - Using new ADO connection to SQL Server.
    ' ==================================================================
    
    ' Set the recordset object to the Customers table.     
           
    Set rs = New ADODB.Recordset
    With rs
    Set .ActiveConnection = cn
    .CursorLocation = adUseClient
    .Source = "Customers"
    .Open
    
    ' While there are still records to be read, display the current customer 
    ' ID number and fill the progress bar to the current record's location, 
    ' based on the total number of records in the Customers recordset. 
    
    While Not .EOF
    
    ' Set the form's record ID number text box equal to the current record 
    ' being read.
    
    CurrentRecordID = .Fields("CustomerID")
    
    ' Set the width of the visible (or top) progress bar rectangle. 
            
    ProgressBarB.Width = (ProgressBarA.Width / .RecordCount) * .AbsolutePosition
    
    ' Repaint the current form.
    Me.Repaint
    ' Move to the next record.
    .MoveNext
    For lCounter = 1 To 750000: Next
        Wend
    End With
    
    ' If you're at the end of the Customers recordset, then fill the 
    ' progress bar completely and repaint the form.
    
    If rs.EOF Then
    ProgressBarB.Width = rs.RecordCount
    Me.Repaint
    
    ' Clear any customer ID information from the form because you're finished.
    ' Set the caption for the Status label to DONE.   
    
    CurrentRecordID = ""
    Me.Status.Caption = "Done"
       
    ' Set the progress bar's width to zero. Repaint the form.
    ProgressBarB.Width = 0
    Me.Repaint
        
    End If
        
    ' Close the recordset.
    rs.Close
    
    ' Close the connection.
    cn.Close
    
    ' Clear the recordset and database objects.
    Set rs = Nothing
    Set cn = Nothing
    
    ' Set the form's mouse pointer back to the default mouse pointer.
    Screen.MousePointer = 0

    วิธีการ dao

    ตัวอย่างรหัสนี้ใช้ DAO เพื่อให้โค้ดนี้ทำงานอย่างเหมาะสม คุณต้องอ้างอิงไลบรารีวัตถุ Microsoft DAO 3.6 โดยให้ทำตามขั้นตอนต่อไปนี้:

    • ในการมุมมองเมนู ให้ชี้ไปที่วัตถุฐานข้อมูลแล้ว คลิกโมดูล. คลิกใหม่.
    • ในการเครื่องมือเมนู คลิกอ้างอิง:. ค้นหาไลบรารีวัตถุ Microsoft DAO เลือกการการไลบรารีวัตถุ Microsoft DAO 3.6กล่องกาเครื่องหมาย และจากนั้น คลิกตกลง.
    • โมดูลใหม่ โดยไม่มีการบันทึกปิด
    พิมพ์ หรือวางขั้นตอนต่อไปนี้:
    ' As soon as you click the command button, start reading records. Because
    ' you've started reading records, update the status caption to READING.
    Me.Status.Caption = "Reading"
    
    ' For the currently open form, display a busy/hourglass mouse icon.
    Screen.MousePointer = 11
    
    ' Dimension the database and recordset objects for using DAO.  
      
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    ' Set the database object to the currently opened database.
    ' Set the recordset object to the Customers table.        
    Set db = CurrentDb
    Set rs = db.OpenRecordset("Customers", dbOpenSnapshot)
    
    ' Go to the first record in the Customers recordset/table.
    rs.MoveFirst
    
    ' While there are still records to be read, display the current customer 
    ' ID number and fill the progress bar to the current record's location, 
    ' based on the total number of records in the Customers recordset/table. 
    
    While Not rs.EOF
        
    ' Set the form's record ID number text box equal to the current record 
    ' being read.
    
    CurrentRecordID = rs!CustomerID
    ' Set the width of the visible (or top) progress bar rectangle.                   
    ProgressBarB.Width = (ProgressBarA.Width / rs.RecordCount) * rs.AbsolutePosition
    
    ' Repaint the current form.
    Me.Repaint
    
    ' Go to the next record in the Customers recordset/form.
    rs.MoveNext
    For lCounter = 1 To 750000: Next
    Wend
    
    ' If you're at the end of the Customers recordset/form, then fill the 
    ' progress bar completely and repaint the form.
    
    If rs.EOF Then
    ProgressBarB.Width = rs.RecordCount
    Me.Repaint
    
    ' Clear any customer ID information from the form because you're finished.
    CurrentRecordID = ""
    
    ' Set the caption for the Status label to DONE.
    Me.Status.Caption = "Done"
    
    ' Set the progress bar's width to zero. Repaint the form.
    ProgressBarB.Width = 0
    Me.Repaint
        
    End If
        
    ' Close the recordset.
    rs.Close
    
    ' Clear the recordset and database objects.
    Set rs = Nothing
    Set db = Nothing
    
    ' Set the form's mouse pointer back to the default mouse pointer.
    Screen.MousePointer = 0
  5. เอาป้ายชื่อสำหรับกล่องข้อความ CurrentRecordID
  6. ตรวจสอบให้แน่ใจว่าProgressBarAปรากฏขึ้นโดยตรงผ่านProgressBarBในแบบฟอร์ม เมื่อต้องการตรวจสอบให้แน่ใจว่า ซึ่งเกิด คลิกProgressBarAแล้ว คลิกส่งไปไว้ข้างหลังสุดในการรูปแบบ:เมนู จากนั้น คลิกProgressBarBคลิกนำไปไว้ข้างหน้าสุดในการรูปแบบ:เมนู
  7. การคอมไพล์รหัส และจากนั้น ให้บันทึกแบบฟอร์ม
  8. เปิดแบบฟอร์มในมุมมองฟอร์ม โปรดสังเกตว่า "Ready" ปรากฏในป้ายชื่อของสถานะ
  9. คลิกการReadปุ่ม'และ'บันทึกย่อที่ป้ายชื่อสถานะเปลี่ยนเป็น "อ่าน" หลังจากที่เรกคอร์ดทั้งหมดได้รับการประมวลผล แถบความคืบหน้าทั้งหมดถูกกรอกจากซ้ายไปขวา และ "เสร็จเรียบร้อย" ปรากฏอยู่ในสถานะป้ายชื่อ


คุณสมบัติ

หมายเลขบทความ (Article ID): 304581 - รีวิวครั้งสุดท้าย: 17 กันยายน 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Access 2002 Standard Edition
Keywords: 
kbprogramming kbvba kbhowtomaster kbmt KB304581 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:304581

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com