ข้อสงสัยเรื่องการ split file
กระทู้เก่าบอร์ด อ.Yeadram

 1,389   2
URL.หัวข้อ / URL
ข้อสงสัยเรื่องการ split file

หลังจากที่ไปศึกษาเรื่องการ split file ทำ backend/frontend ก็ทำได้ละครับแต่มีสิ่งที่ต้องทำเพิ่มเติมและสงสัยในบางเรื่องเนื่องจากว่า link ที่ใช้อยู่มี speed ที่ตำมากประมาณ 512 Kbps เท่านั้นขอถามผู้รู้ทุกท่านเลยนะครับ
1. จะเขียน code ยังไงเพื่อทำการตรวจสอบว่า frontend สามรถเชื่อมต่อไปยัง backend ได้
2. การเชื่อมต่อนี้เป็นเพียงแค่เชื่อม link ไว้เท่านั้นหรือเปล่าหรือมีการ load ข้อมูลมาที่ frontend แล้ว ตรงนี้ไม่มั่นใจครับเพราะเปิด table ที่ link ไว้ทีไรก็เห็นข้อมูลทั้งหมด
3. หากเทียบกับการใช้ ADOX ในการเข้าถึงข้อมูลแล้วจะได้ความเร็วในการเข้าถึงข้อมูลที่แตกต่างกันมากไหมครับ
4. ผมไม่แน่ใจนะครับว่าการกำหนด record source ใน property ของ form ไว้ตั้งแต่แรกเป็นเพียงการ bound ชื่อของ object ต่างๆใน form เท่านั้น หรือมีการ load ข้อมูลมาไว้ที่ form ใน frontend ตั้งแต่แรก และหลังจากที่เราเลือกค่าใน combobox แล้วจึงทำการกรองข้อมูลอีกรอบ ข้อสงสัยนี้เกิดจากผมลองกำหนด record source ของ form โดยใช้ event form open เป็น query ประมาณว่า SELECT * FROM Table WHERE ID="" ซึ่งผลที่ได้คือเปิด form ได้เร็วกว่ากันมาก (code ส่วนอื่นเหมือนกันครับ)

2 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04466
1) ลองใช้โค้ดนี้ตรวจสอบดูครับ เทเบิลไหนที่เป็น linked table ( เฉพาะที่ลิงค์ไปยัง .mdb file นะครับ ถ้าลิงค์ไปยัง ODBC data source ต้องใช้ค่าคงที่ dbAttachedODBC แทน dbAttachedTable ) แล้ว refresh ไม่ได้ มันก็น่าาจะหมายถึงว่าหา table ปลายทางไม่พบครับ

Public Sub testlink()
    Dim t As DAO.TableDef
    
    On Error Resume Next
    For Each t In CurrentDb.TableDefs
        If t.Attributes = dbAttachedTable Then
            t.RefreshLink
            If Err <> 0 Then
               MsgBox "table " & t.Name & " can not be checked"
            End If
        End If
    Next t
End Sub

2) มีแต่ลิงค์ครับ ไม่มีการโหลดข้อมูลในเทเบิลมาครับ

3) ผมไม่มีข้อมูลตรงนี้ แต่เท่าที่ไปอ่านหลายๆที่ เขาก็แนะนำว่า ถ้า BE เป็น .mdb อยู่แล้ว ก็ให้ใช้ DAO นั่นแหล่ะเหมาะสมแล้ว แต่ถ้าเป็นแหล่งข้อมูลอื่นๆ เขาแนะนำให้ใช้ ADO ครับ

4) การกำนหด RecordSource property ของฟอร์มเอาไว้ตั้งแต่ในการออกแบบฟอร์ม ไม่ได้ทำให้มีการโหลดข้อมูลของเทเบิลมาเก็บไว้ก่อน เพียงแต่ถ้าเป็น SQL SELECT statement แล้ว Access ก็จะ คอมไพล์ SQL นั้นไว้ก่อน ทำให้เวลาเปิดฟอร์มมาใช้งาน ก็จะไม่เสียเวลาในการคอมไพล์ครับ จริงๆแล้วก็คงไม่เห็นความแตกต่างเพราะมันคงใช้เวลานิดเดียวเท่านั้นเอง แต่ถ้าให้ฟอร์มแสดงข้อมูลได้เร็ว SQL SELECT Statement ของเราก็ควรมี WHERE clause ที่เฉพาะเจาะจงเอาไว้ด้วยครับ
2 @R04472
ขอบคุณครับ คือผมไม่เคยเขียนด้วย DAO นอกจาก ADOx (น่าจะเป็นเพราะมาเริ่มเอาตอน Access 2003)ดูจาก code แล้วผมจะลองแปลงไปใช้ ADOx ได้ผลยังไงจะแจ้งให้ทราบครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.5773s