กระทู้เก่าบอร์ด อ.Yeadram
1,985 3
URL.หัวข้อ /
URL
รบกวนเรื่อง การ Link Database
จาก Code การ Link Database ดังนี้
Me.Caption = "กำลังลิงค์ฐานข้อมูล..."
Dim Table(2) As String
Table(1) = "tblPerson"
Table(2) = "tblSubjects"
Dim i As Integer
For i = 1 To 2
DoCmd.TransferDatabase acLink, "Microsoft Access", "D:\NYK ITF Project\Access_Test_Link_Database\Data.mdb", acTable, Table(i), Table(i), False, True
Next i
DoCmd.OpenForm "FormMain", acNormal
DoCmd.Close acForm, "FormLink"
ประเด็นปัญหาคือ
1. กรณี ถ้าผมต้องการ Link ทุก Table (เนื่องจากมีหลาย Table มาก) ต้องทำอย่างไรครับ
#################################
จาก Code ในการเปิดหา File mdb ปลายทาง ดังนี้
Dim strPictFile As String
Dim strFileType As String, strFileTypeDesc As String
strFileType = "*.mdb, *mde"
strFileTypeDesc = "Pict Files (*.mdb, *mde)"
strPictFile = GetOpenFile(strFileType, strFileTypeDesc)
If strPictFile <> "NoFile" Then
' File has been selected
Caption = strPictFile
Me.PictFile = strPictFile
End If
ประเด็นปัญหาคือ
2. เมื่อ Click ปุ่ม Command จะแสดง Dialog ไปที่ My Document
แต่ผมอยากให้ Default ไปที่ Dir/Folder ปลายทางที่เราต้องการเลย
เช่น D:\NYK ITF Project\Access_Test_Link_Database
รบกวนพี่ๆ แน่ะนำด้วยครับ
ขอบพระคุณมากๆ ครับ
Me.Caption = "กำลังลิงค์ฐานข้อมูล..."
Dim Table(2) As String
Table(1) = "tblPerson"
Table(2) = "tblSubjects"
Dim i As Integer
For i = 1 To 2
DoCmd.TransferDatabase acLink, "Microsoft Access", "D:\NYK ITF Project\Access_Test_Link_Database\Data.mdb", acTable, Table(i), Table(i), False, True
Next i
DoCmd.OpenForm "FormMain", acNormal
DoCmd.Close acForm, "FormLink"
ประเด็นปัญหาคือ
1. กรณี ถ้าผมต้องการ Link ทุก Table (เนื่องจากมีหลาย Table มาก) ต้องทำอย่างไรครับ
#################################
จาก Code ในการเปิดหา File mdb ปลายทาง ดังนี้
Dim strPictFile As String
Dim strFileType As String, strFileTypeDesc As String
strFileType = "*.mdb, *mde"
strFileTypeDesc = "Pict Files (*.mdb, *mde)"
strPictFile = GetOpenFile(strFileType, strFileTypeDesc)
If strPictFile <> "NoFile" Then
' File has been selected
Caption = strPictFile
Me.PictFile = strPictFile
End If
ประเด็นปัญหาคือ
2. เมื่อ Click ปุ่ม Command จะแสดง Dialog ไปที่ My Document
แต่ผมอยากให้ Default ไปที่ Dir/Folder ปลายทางที่เราต้องการเลย
เช่น D:\NYK ITF Project\Access_Test_Link_Database
รบกวนพี่ๆ แน่ะนำด้วยครับ
ขอบพระคุณมากๆ ครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R01571
ผมใช้แบบนี้ครับ
ลบทุก table
Public Sub DelAllTable()
Dim tdTable As TableDef
For Each tdTable In CurrentDb.TableDefs
If Left(tdTable.name, 4) <> "MSys" Then 'filter out System tables
DoCmd.DeleteObject acTable, tdTable.name
End If
Next tdTable
End Sub
Link เข้ามาทุก table
Public Sub LinkAllTables()
Dim tdTable As TableDef, dbDataDB As Database
Dim strMyDataDB As String
strMyDataDB = "C:\MyProg\MyAccess.mdb"
Set dbDataDB = OpenDatabase(strMyDataDB)
For Each tdTable In dbDataDB.TableDefs
If Left(tdTable.name, 4) <> "MSys" Then
DoCmd.TransferDatabase acLink, "Microsoft Access", dbDataDB.name, acTable, tdTable.name, tdTable.name
End If
Next tdTable
End Sub
รู้สึกว่าจะได้ความรู้นี้มาจาก web ของ อ.สุภาพน่ะครับ
ลบทุก table
Public Sub DelAllTable()
Dim tdTable As TableDef
For Each tdTable In CurrentDb.TableDefs
If Left(tdTable.name, 4) <> "MSys" Then 'filter out System tables
DoCmd.DeleteObject acTable, tdTable.name
End If
Next tdTable
End Sub
Link เข้ามาทุก table
Public Sub LinkAllTables()
Dim tdTable As TableDef, dbDataDB As Database
Dim strMyDataDB As String
strMyDataDB = "C:\MyProg\MyAccess.mdb"
Set dbDataDB = OpenDatabase(strMyDataDB)
For Each tdTable In dbDataDB.TableDefs
If Left(tdTable.name, 4) <> "MSys" Then
DoCmd.TransferDatabase acLink, "Microsoft Access", dbDataDB.name, acTable, tdTable.name, tdTable.name
End If
Next tdTable
End Sub
รู้สึกว่าจะได้ความรู้นี้มาจาก web ของ อ.สุภาพน่ะครับ
3 @R01572
===================================================
ประเด็นปัญหาคือ
2. เมื่อ Click ปุ่ม Command จะแสดง Dialog ไปที่ My Document
แต่ผมอยากให้ Default ไปที่ Dir/Folder ปลายทางที่เราต้องการเลย
เช่น D:\NYK ITF Project\Access_Test_Link_Database\
===================================================
ใส่ chdir "D:\NYK ITF Project\Access_Test_Link_Database\" ไว้บรรทัดแรก ๆ เลยครับ
เช่น (ของผมใช้เปิด file .zip นะครับ)
Private Sub GetMemberFileBtn_Click()
ChDir "C:\CSCD_UDC\Inbox"
Dim strMemberFile As String
Dim strFileType As String, strFileTypeDesc As String
strFileType = "*.zip"
strFileTypeDesc = "Zip Files (*.Zip)"
strMemberFile = GetOpenFile(strFileType, strFileTypeDesc)
If strMemberFile <> "NoFile" Then
If Mid(File2ImportName(strMemberFile), 6, 4) <> "CDMB" Then
MsgBox "äÁèãªèá¿éÁ¢éÍÁÙÅÊÁÒªÔ¡·ÕèÃѺÃͧáÅéÇ", vbExclamation, "á¿éÁµÍºÃѺäÁè¶Ù¡µéͧ"
Me.CSCDMembersFile = ""
Exit Sub
Else
Me.CSCDMembersFile = strMemberFile
End If
End If
End Sub
ประเด็นปัญหาคือ
2. เมื่อ Click ปุ่ม Command จะแสดง Dialog ไปที่ My Document
แต่ผมอยากให้ Default ไปที่ Dir/Folder ปลายทางที่เราต้องการเลย
เช่น D:\NYK ITF Project\Access_Test_Link_Database\
===================================================
ใส่ chdir "D:\NYK ITF Project\Access_Test_Link_Database\" ไว้บรรทัดแรก ๆ เลยครับ
เช่น (ของผมใช้เปิด file .zip นะครับ)
Private Sub GetMemberFileBtn_Click()
ChDir "C:\CSCD_UDC\Inbox"
Dim strMemberFile As String
Dim strFileType As String, strFileTypeDesc As String
strFileType = "*.zip"
strFileTypeDesc = "Zip Files (*.Zip)"
strMemberFile = GetOpenFile(strFileType, strFileTypeDesc)
If strMemberFile <> "NoFile" Then
If Mid(File2ImportName(strMemberFile), 6, 4) <> "CDMB" Then
MsgBox "äÁèãªèá¿éÁ¢éÍÁÙÅÊÁÒªÔ¡·ÕèÃѺÃͧáÅéÇ", vbExclamation, "á¿éÁµÍºÃѺäÁè¶Ù¡µéͧ"
Me.CSCDMembersFile = ""
Exit Sub
Else
Me.CSCDMembersFile = strMemberFile
End If
End If
End Sub
Time: 0.3097s
on error resume next
dim sq as string
sq ="SELECT Name From MsysObject where type=6"
' type = 6 หมายถึง ตารางลิงค์
' ถ้าไม่เคยมีตารางลิงค์มาก่อน ให้ใช้ Where type=1 and left(name,4)<>'Msys'
RS.open sq, Conn,1
do while not rs.eof
docmd.deleteobject actable, rs(0) ' ถ้าเคยมีตารางเก่า ให้ลบออกก่อน
docmd.transferdatabase...................rs(0).........
rs.movenext
loop
rs.close
คร่าวๆ นะครับ ลองดู
2. ฟังก์ชั่น GetOpenFile()
มี properties initdir หรือเปล่าครับ ถ้ามีใช้มันเลย
หรือไม่ ก็ลองเข้าไปที่ เครื่องมือ>>ตัวเลือก>>ทั่วไป>>โฟลเดอร์เริ่มต้นของฐานข้อมูล ลองแก้ไขดูครับ
สำหรับผมมักจะ add control เพิ่มเข้ามาสำหรับงานนี้ครับ
COMDLG32.OXC (Microsoft common dialog control 6.0 (SP6) )
ตั้งค่า initdir ไว้รอได้เลยครับ