กระทู้เก่าบอร์ด อ.Yeadram
1,243 7
URL.หัวข้อ /
URL
ตรวจสอบว่ามี Table อยู่หรือไม่ มีกี่วิธี
บ่อยครั้งที่เราเขียนสร้าง table หรือ import table เข้ามาไม่ได้เพราะมี table เดิมอยู่แล้ว
อยากถามว่าท่านอื่นใช้วิธีตรวจสอบว่ามี table... นี้อยู่หรือไม่อย่างไรกันบ้างครับ
อยากขอแชร์วิธีการ
สำหรับผมแล้วใช้วิธี
If Dcount("*","msysObjects","[Name] = 'Table...') Then
...
End If
ท่านอื่นหละครับ ใช้แบบผมหรือไม่
อยากถามว่าท่านอื่นใช้วิธีตรวจสอบว่ามี table... นี้อยู่หรือไม่อย่างไรกันบ้างครับ
อยากขอแชร์วิธีการ
สำหรับผมแล้วใช้วิธี
If Dcount("*","msysObjects","[Name] = 'Table...') Then
...
End If
ท่านอื่นหละครับ ใช้แบบผมหรือไม่
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R19524
เท่าที่นึกออกก็มี 3 วิธีสำหรับการดูชื่อตาราง คือ แบบ
1. ดูในตารางระบบ msysObjects
2. ดูโดยใช้ DAO
3. ดูโดยใช้ ADO
ซึ่งแบบ 2 กับ 3 จะคล้ายกันเพียงแต่เป็นคนละภาษา แต่จะความสามารถในการดูชื่อตารางจากไฟล์ภายนอกได้ด้วย
ปล. แบบของ อ.สันติสุข น่าจะดูชื่อฟอร์มนะครับ
1. ดูในตารางระบบ msysObjects
2. ดูโดยใช้ DAO
3. ดูโดยใช้ ADO
ซึ่งแบบ 2 กับ 3 จะคล้ายกันเพียงแต่เป็นคนละภาษา แต่จะความสามารถในการดูชื่อตารางจากไฟล์ภายนอกได้ด้วย
ปล. แบบของ อ.สันติสุข น่าจะดูชื่อฟอร์มนะครับ
3 @R19525
อ้าว ตาลายแล้วผม
4 @R19526
Dim DB as DAO.Database
Dim T as DAO.TableDef
Dim Found as Boolean
Found = False
Set DB = CurrentDB
For Each T in DB.TableDefs
If T.Name = "ชื่อที่ต้องการค้นหา" Then
Found = True
Exit For
End If
Next
Dim T as DAO.TableDef
Dim Found as Boolean
Found = False
Set DB = CurrentDB
For Each T in DB.TableDefs
If T.Name = "ชื่อที่ต้องการค้นหา" Then
Found = True
Exit For
End If
Next
5 @R19532
ทำไมถึงไม่ให้ไปยิ่งกับ system table หละครับ
6 @R19533
ถ้าทาง Microsoft แก้ไข system table Microsoft ก็ไม่จำเป็นต้องแจ้งผู้พัฒนาว่าฉันจะแก้ไข system table แล้วนะ (และเชื่อว่าจะไม่แน่นอน) เพราะมันเป็นเทเบิลที่ใช้โดยระบบ Microsoft Access เอง เขาไม่ได้ออกแบบมาเพื่อให้ผู้พัฒนาเข้าถึงส่วนนี้โดยตรง เขามีฟังก์ชั่นเพื่อให้เราทำงานตรงนี้อยู่แล้ว และเราก็จะไม่ต้องมานั่งปวดหัวแก้โปรแกรมเมื่อ system table เปลี่ยนไปด้วยครับ
7 @R19534
ออ... ขอบคุณครับ
ผมใช้ซะเยอะเลย
ทั้งใช้ตรวจสอบว่ามี table นั้นอยู่หรือไม่
ใช้ query หา 3 table ล่าสุด
ผมว่ามันสะดวกดี ^^
อย่างตอน query หา 3 table ล่าสุด
ตอนแรกก็คิดแบบ For Each T in DB.TableDefs
แต่ก็คิดไม่ออก
เอ๊ะ นี่ต้องลิสท์ table ทั้งหมดมาเก็บไว้ก่อน
แล้วค่อย sort หา 3 รายการล่าสุด
...พอดีนึกขึ้นได้ว่ามี msysobjects ก็เลยเข้าไป query เอาเลย
ผมใช้ซะเยอะเลย
ทั้งใช้ตรวจสอบว่ามี table นั้นอยู่หรือไม่
ใช้ query หา 3 table ล่าสุด
ผมว่ามันสะดวกดี ^^
อย่างตอน query หา 3 table ล่าสุด
ตอนแรกก็คิดแบบ For Each T in DB.TableDefs
แต่ก็คิดไม่ออก
เอ๊ะ นี่ต้องลิสท์ table ทั้งหมดมาเก็บไว้ก่อน
แล้วค่อย sort หา 3 รายการล่าสุด
...พอดีนึกขึ้นได้ว่ามี msysobjects ก็เลยเข้าไป query เอาเลย
Time: 0.3696s
วิธีคือ
Dim F as Form
Dim Found as Boolean
Found = False
For Each F in CurrentProject.AllForms
If F.Name = "ชื่อที่ต้องการค้นหา" Then
Found = True
Exit For
End If
Next
ถ้าตัวแปร Found ให้ค่า True ก็แปลว่ามีชื่อเทเบิลที่ต้องการครับ