กระทู้เก่าบอร์ด อ.Yeadram
2,468 8
URL.หัวข้อ /
URL
เพิ่ม Field ให้กับ TABLE ที่ link มา
มีวิธีการไหนไหมครับ ที่จะเพิ่ม Field และ กำหนด โครงสร้างให้กับ TABLE
ที่ link มา โดยไม่ต้องไปเข้าฐานข้อมูลที่เป็น back office
ขอบคุณครับ
ที่ link มา โดยไม่ต้องไปเข้าฐานข้อมูลที่เป็น back office
ขอบคุณครับ
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R03676
เหมือนจะเคยมีที่mailของอาจารย์ yeadram นะครับ
ผมเคยนำไปประยุกต์
แต่ไม่แน่ใจว่าอาจารย์ลบทิ้งยัง
www.gmail.com
userName : accboard
password : accgmail
ผมเคยนำไปประยุกต์
แต่ไม่แน่ใจว่าอาจารย์ลบทิ้งยัง
www.gmail.com
userName : accboard
password : accgmail
3 @R03688
หาไม่เจอครับ คุณ Sorn รบกวน คุณ Sorn บอกเป็นหลักการ ก็ได้ครับ
4 @R03691
ถ้าเราเปลียนตรงปลายทางก็หมายความว่า ต้นทางต้องเปลี่ยนด้วย แน่ใจเหรอครับว่าต้องการทำแบบนั้น
สั่งรัน sql ตามปกติได้เลยครับ
statement ของมันจะขึ้นต้นด้วย Alter table
ลองค้นดูตาม google ครับง่ายดี ใน help ของ access จะมีเรื่องพวกนี้น้อยมากครับ
เช่น การเพิ่มฟิลด์
docmd.setwarnings false
docmd.runsql "Alter table tblnk1 add iden char(15);"
การลบฟิลด์
docmd.setwarnings false
docmd.runsql "Alter table tblnk1 drop iden;"
การขยายความกว้างของฟิลด์
docmd.setwarnings false
docmd.runsql "Alter table tblnk1 modify iden char(20);"
ค้นหา ศึกษา statement ประเภทแก้ไขโครงสร้างได้เพิ่มเติมตาม google ได้ครับ คีย์เวอร์ด "Alter Table"
สั่งรัน sql ตามปกติได้เลยครับ
statement ของมันจะขึ้นต้นด้วย Alter table
ลองค้นดูตาม google ครับง่ายดี ใน help ของ access จะมีเรื่องพวกนี้น้อยมากครับ
เช่น การเพิ่มฟิลด์
docmd.setwarnings false
docmd.runsql "Alter table tblnk1 add iden char(15);"
การลบฟิลด์
docmd.setwarnings false
docmd.runsql "Alter table tblnk1 drop iden;"
การขยายความกว้างของฟิลด์
docmd.setwarnings false
docmd.runsql "Alter table tblnk1 modify iden char(20);"
ค้นหา ศึกษา statement ประเภทแก้ไขโครงสร้างได้เพิ่มเติมตาม google ได้ครับ คีย์เวอร์ด "Alter Table"
5 @R03692
ขอบคุณครับ เดี๋ยวจะลองทำดู แล้วจะกลับมารายงานผลครับ
6 @R03693
ไม่สามารถทำได้ครับ
Runtime error 3611
can not excute defination statements on link datasouce
ผมทดลองดู ถ้า เป็น TABLE ของมันเองก็ OK ครับ
แต่ถ้าเป็น TABLE ที่ link เข้ามามัน จะไม่ยอมครับ
Runtime error 3611
can not excute defination statements on link datasouce
ผมทดลองดู ถ้า เป็น TABLE ของมันเองก็ OK ครับ
แต่ถ้าเป็น TABLE ที่ link เข้ามามัน จะไม่ยอมครับ
7 @R03694
ผมได้หลักการแล้วครับ
1.เปิด Database Back Office ก่อน โดยใช้ คำสั่ง
Set db = OpenDatabase("BackOffice")
แล้วถึงจะทำอย่างอื่นต่อได้
คิดว่าน่าจะทำได้แล้วครับ
1.เปิด Database Back Office ก่อน โดยใช้ คำสั่ง
Set db = OpenDatabase("BackOffice")
แล้วถึงจะทำอย่างอื่นต่อได้
คิดว่าน่าจะทำได้แล้วครับ
8 @R03696
ตัวอย่างที่เคยใช้
Private Sub Command1_Click()
On Error GoTo zxcc:
Dim acc
Dim sql
If MsgBox("ต้องการปรับปรุงโปรแกรม", vbQuestion + vbYesNo, "เตือน) = vbYes Then
Set acc = CreateObject("Access.Application")
acc.OpenCurrentDatabase "C:\ocche\dataocc.mdb"
acc.DoCmd.SetWarnings False
'สร้างตาราง
If CheckTablesT_plagchk = False Then
sql = "CREATE TABLE T_plagchk (idplagchk varchar(3) NOT NULL, " _
& "plagchk varchar(10) NOT NULL, CONSTRAINT tpechk_pk PRIMARY KEY (idplagchk));"
acc.DoCmd.RunSQL sql
End If
'เพิ่มฟิลด์
If CheckFieldsidplagchk = False Then
sql = "ALTER TABLE T_2noise ADD idplagchk char(3);"
acc.DoCmd.RunSQL sql
End If
'นี่ก็เพิ่มฟิลด์
If CheckTablesT_haveplag = False Then
sql = "CREATE TABLE T_haveplag (idhaveplag varchar(3) NOT NULL, " _
& "haveplag varchar(40) NOT NULL, CONSTRAINT tpehp_pk PRIMARY KEY (idhaveplag));"
acc.DoCmd.RunSQL sql
End If
acc.CloseCurrentDatabase
Set acc = Nothing
MsgBox "สงสัยปรับปรุงเรีบนร้อยแล้ว", vbOKOnly, "updateProgram"
End If
zxcc:
Resume Next
End Sub
ไม่ทราบถูกหลักวิชาการหรือเปล่าแต่ใช้อยู่ประมาณตัวอย่างนี้
Private Sub Command1_Click()
On Error GoTo zxcc:
Dim acc
Dim sql
If MsgBox("ต้องการปรับปรุงโปรแกรม", vbQuestion + vbYesNo, "เตือน) = vbYes Then
Set acc = CreateObject("Access.Application")
acc.OpenCurrentDatabase "C:\ocche\dataocc.mdb"
acc.DoCmd.SetWarnings False
'สร้างตาราง
If CheckTablesT_plagchk = False Then
sql = "CREATE TABLE T_plagchk (idplagchk varchar(3) NOT NULL, " _
& "plagchk varchar(10) NOT NULL, CONSTRAINT tpechk_pk PRIMARY KEY (idplagchk));"
acc.DoCmd.RunSQL sql
End If
'เพิ่มฟิลด์
If CheckFieldsidplagchk = False Then
sql = "ALTER TABLE T_2noise ADD idplagchk char(3);"
acc.DoCmd.RunSQL sql
End If
'นี่ก็เพิ่มฟิลด์
If CheckTablesT_haveplag = False Then
sql = "CREATE TABLE T_haveplag (idhaveplag varchar(3) NOT NULL, " _
& "haveplag varchar(40) NOT NULL, CONSTRAINT tpehp_pk PRIMARY KEY (idhaveplag));"
acc.DoCmd.RunSQL sql
End If
acc.CloseCurrentDatabase
Set acc = Nothing
MsgBox "สงสัยปรับปรุงเรีบนร้อยแล้ว", vbOKOnly, "updateProgram"
End If
zxcc:
Resume Next
End Sub
ไม่ทราบถูกหลักวิชาการหรือเปล่าแต่ใช้อยู่ประมาณตัวอย่างนี้
Time: 0.3962s
สำหรับ คนที่อยู่ไกล และแยก Fornt office ออกจาก Backoffice
ถ้าง่ายคือ ให้ เขาส่ง Backoffice กลับมา แล้วผมก็เพิ่ม Field ให้แล้วก็ส่งกลับไป
แต่ผมคิดว่า ส่งแต่ fornt office ก็พอ เดี๋ยว หลังการ Lock in แล้วให้ตรวจดูซิว่า
มี Field A ใน TABLE X หรือไม่ ถ้าไม่ จะ สร้าง field ให้ ถ้ามีแล้วให้ผ่านเลย
แต่ Table ที่มีเป็นการ Link เข้ามา ดังนั้น ไม่น่าจะ Modified ได้
จึงถามดูเผื่อใครมีหลักการ หรือเคยทำแล้ว สามารถทำได้